ERC-20
Overview
Max Total Supply
1,000,000,000 TUF
Holders
471
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
7.366487828558428768 TUFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TUFToken
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-25 */ // SPDX-License-Identifier: MIT /** ############ ######################## ############ ########### ######## ######## ####### ####### ###### ### ###### ##### ######## ###### ##### # ###### ###### ##### #### ##### ##### ##### ###### #### ##### ###### ############# ##### ##### ##### ###### ###### ###### ##### #### ###### ###### # ###### ###### ####### ######## ####### ######### ########## ########################## ################ TUF Sniper Bot (TUF) 💬TG: https://t.me/TUFTokenPortal 💬TG: https://t.me/TUFReloadedPortal 🕸Website: https://tufext.com/ */ pragma solidity ^0.8.17; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function 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 ); } interface IUniswapV2Pair { function sync() external; } contract TUFToken is IERC20Metadata, Ownable { //Constants string private constant _name = "TUF Token"; string private constant _symbol = "TUF"; uint8 private constant _decimals = 18; uint256 internal constant _totalSupply = 1_000_000_000 * 10**_decimals; uint32 private constant percent_helper = 100 * 10**2; //Settings limits uint32 private constant max_fee = 30.00 * 10**2; uint32 private constant min_maxes = 0.50 * 10**2; uint32 private constant burn_limit = 10.00 * 10**2; //OpenTrade bool public trade_open; bool public limits_active = true; //Fee bool public early_sell = true; address public team_wallet; uint32 public fee_buy = 8.00 * 10**2; uint32 public fee_sell = 8.00 * 10**2; /* 0-10 min - 30% (Team 22.5% LP 7.5%) 10-20 min - 25% (Team 18.75% LP 6.25%) 20-30 min - 20% (Team 15% LP 5%) 30-40 min - 15% (Team 11.25% LP 3.75%) 40-50 min - 10% (Team 7.5% LP 2.5%) 50- min - 8% */ uint32 public fee_early_sell = 30.00 * 10**2; uint32 public lp_percent = 25.00 * 10**2; //Ignore fee mapping(address => bool) public ignore_fee; //Burn uint256 public burn_cooldown = 30 minutes; uint256 public burn_last; //Maxes uint256 public max_tx = 7_500_000 * 10**_decimals; //0.75% uint256 public max_wallet = 10_000_000 * 10**_decimals; //1.00% uint256 public swap_at_amount = 1_000_000 * 10**_decimals; //0.10% //ERC20 mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) private _allowances; //Router IUniswapV2Router02 private uniswapV2Router; address public pair_addr; bool public swap_enabled = true; //Percent calculation helper function CalcPercent(uint256 _input, uint256 _percent) private pure returns (uint256) { return (_input * _percent) / percent_helper; } bool private inSwap = false; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor(address _team_wallet) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; pair_addr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair( address(this), _uniswapV2Router.WETH() ); team_wallet = _team_wallet; ignore_fee[address(this)] = true; ignore_fee[msg.sender] = true; _balances[msg.sender] = _totalSupply; //Initial supply emit Transfer(address(0), msg.sender, _totalSupply); } //Set buy, sell fee function SetFee(uint32 _fee_buy, uint32 _fee_sell) public onlyOwner { require(_fee_buy <= max_fee && _fee_sell <= max_fee, "Too high fee"); fee_buy = _fee_buy; fee_sell = _fee_sell; } //Set max tx, wallet function SetMaxes(uint256 _max_tx, uint256 _max_wallet) public onlyOwner { require( _max_tx >= min_maxes && _max_wallet >= min_maxes, "Too low max" ); max_tx = CalcPercent(_totalSupply, _max_tx); max_wallet = CalcPercent(_totalSupply, _max_wallet); } function SetTokenSwap( uint256 _amount, uint32 _lp_percent, bool _enabled ) public onlyOwner { swap_at_amount = _amount; lp_percent = _lp_percent; swap_enabled = _enabled; } //Set fee wallet function SetFeeWallet(address _team_wallet) public onlyOwner { team_wallet = _team_wallet; } //Add fee ignore to wallets function SetIgnoreFee(address[] calldata _input, bool _enabled) public onlyOwner { unchecked { for (uint256 i = 0; i < _input.length; i++) { ignore_fee[_input[i]] = _enabled; } } } function TransferEx(address[] calldata _input, uint256 _amount) public onlyOwner { address _from = owner(); unchecked { for (uint256 i = 0; i < _input.length; i++) { address addr = _input[i]; require( addr != address(0), "ERC20: transfer to the zero address" ); _transferTokens(_from, addr, _amount); } } } function BurnLiquidityTokens(uint256 _amount) external onlyOwner { require( block.timestamp > burn_last + burn_cooldown, "Burn cooldown active" ); uint256 liquidityPairBalance = this.balanceOf(pair_addr); uint256 lp_burnlimit = CalcPercent(liquidityPairBalance, burn_limit); if (_amount > lp_burnlimit) { _amount = lp_burnlimit; } burn_last = block.timestamp; if (_amount > 0) { _transferTokens(pair_addr, address(0xdead), _amount); } IUniswapV2Pair pair = IUniswapV2Pair(pair_addr); pair.sync(); } function ManualSwap() public onlyOwner { HandleFees(); } function SetLimits(bool _enable) public onlyOwner { limits_active = _enable; } function SetEarlySellFee(bool _enable, uint32 _sell_fee) public onlyOwner { require(_sell_fee <= max_fee, "Too high fee"); early_sell = _enable; fee_early_sell = _sell_fee; } function OpenTrade(bool _enable) public onlyOwner { trade_open = _enable; } function TUF(uint256 code) public onlyOwner { trade_open = code == 10; } //ERC20 function _transfer( address from, address to, uint256 amount ) internal { 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"); //If it's the owner, do a normal transfer if (from == owner() || to == owner() || from == address(this)) { _transferTokens(from, to, amount); return; } //Check if trading is enabled require(trade_open, "Trading is disabled"); uint256 fee_amount = 0; bool isbuy = from == pair_addr; if (!isbuy) { //Handle fees HandleFees(); } //Calculate fee if conditions met //Buy if (isbuy) { if (!ignore_fee[to]) { fee_amount = CalcPercent(amount, fee_buy); } } //Sell else { if (!ignore_fee[from]) { fee_amount = CalcPercent( amount, early_sell ? fee_early_sell : fee_sell ); } } //Fee tokens unchecked { require(amount >= fee_amount, "fee exceeds amount"); amount -= fee_amount; } //Disable maxes if (limits_active) { //Check maxes require(amount <= max_tx, "Max TX reached"); //Exclude lp pair if (to != pair_addr) { require( _balances[to] + amount <= max_wallet, "Max wallet reached" ); } } //Transfer fee tokens to contract if (fee_amount > 0) { _transferTokens(from, address(this), fee_amount); } //Transfer tokens _transferTokens(from, to, amount); } function HandleFees() private { uint256 token_balance = balanceOf(address(this)); bool can_swap = token_balance >= swap_at_amount; if (can_swap && !inSwap && swap_enabled) { SwapTokensForEth(swap_at_amount); uint256 eth_balance = address(this).balance; if (eth_balance > 0 ether) { SendETHToFee(address(this).balance); } } } function SwapTokensForEth(uint256 _amount) private lockTheSwap { uint256 eth_am = CalcPercent(_amount, percent_helper - lp_percent); uint256 liq_am = _amount - eth_am; uint256 balance_before = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), _amount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( eth_am, 0, path, address(this), block.timestamp ); uint256 liq_eth = address(this).balance - balance_before; AddLiquidity(liq_am, CalcPercent(liq_eth, lp_percent)); } function SendETHToFee(uint256 _amount) private { (bool success, ) = team_wallet.call{value: _amount}(new bytes(0)); require(success, "TransferFail"); } function AddLiquidity(uint256 _amount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), _amount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), _amount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0), block.timestamp ); } //ERC20 function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _transferTokens( address from, address to, uint256 amount ) internal virtual { uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); } // Function to receive Ether. msg.data must be empty receive() external payable {} // Fallback function is called when msg.data is not empty fallback() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_team_wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BurnLiquidityTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"OpenTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"uint32","name":"_sell_fee","type":"uint32"}],"name":"SetEarlySellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_fee_buy","type":"uint32"},{"internalType":"uint32","name":"_fee_sell","type":"uint32"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team_wallet","type":"address"}],"name":"SetFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_input","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetIgnoreFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"SetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_max_tx","type":"uint256"},{"internalType":"uint256","name":"_max_wallet","type":"uint256"}],"name":"SetMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_lp_percent","type":"uint32"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"code","type":"uint256"}],"name":"TUF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_input","type":"address[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"TransferEx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn_cooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn_last","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"early_sell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_buy","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_early_sell","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_sell","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ignore_fee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits_active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp_percent","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair_addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swap_at_amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"team_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trade_open","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000805461ffff60a81b191661010160a81b179055600180546001600160a01b03167d0bb800000320000003200000000000000000000000000000000000000000179055600280546109c463ffffffff199091161790556107086004556200006f6012600a620004ce565b6200007e90627270e0620004e6565b6006556200008f6012600a620004ce565b6200009e9062989680620004e6565b600755620000af6012600a620004ce565b620000be90620f4240620004e6565b600855600c805461ffff60a01b1916600160a01b179055348015620000e257600080fd5b50604051620023e5380380620023e5833981016040819052620001059162000500565b620001103362000369565b600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000176573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019c919062000500565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000210919062000500565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000284919062000500565b600c80546001600160a01b03199081166001600160a01b03938416179091556001805490911691841691909117815530600090815260036020526040808220805460ff199081168517909155338352912080549091169091179055620002ed6012600a620004ce565b620002fd90633b9aca00620004e6565b33600081815260096020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003406012600a620004ce565b6200035090633b9aca00620004e6565b60405190815260200160405180910390a350506200052b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000410578160001904821115620003f457620003f4620003b9565b808516156200040257918102915b93841c9390800290620003d4565b509250929050565b6000826200042957506001620004c8565b816200043857506000620004c8565b81600181146200045157600281146200045c576200047c565b6001915050620004c8565b60ff841115620004705762000470620003b9565b50506001821b620004c8565b5060208310610133831016604e8410600b8410161715620004a1575081810a620004c8565b620004ad8383620003cf565b8060001904821115620004c457620004c4620003b9565b0290505b92915050565b6000620004df60ff84168362000418565b9392505050565b8082028115828204841417620004c857620004c8620003b9565b6000602082840312156200051357600080fd5b81516001600160a01b0381168114620004df57600080fd5b611eaa806200053b6000396000f3fe6080604052600436106102275760003560e01c80638e26bbe411610122578063ba414b10116100a5578063dd62ed3e1161006c578063dd62ed3e146106f9578063e717fc301461073f578063f2fde38b14610755578063f4a2ebf714610775578063f5a27e861461079557005b8063ba414b1014610648578063bd186c4c14610668578063bd4f1dc614610688578063c9d9159d146106ac578063d11fcb85146106c957005b80639bfe8df7116100e95780639bfe8df7146105b1578063a1780c18146105d1578063a20adf86146105e6578063a9059cbb14610607578063ac9358341461062757005b80638e26bbe41461050f57806391d88b951461052f57806391f18b7c1461054557806395d89b411461056557806396418d4d1461059157005b806363126e17116101aa578063715018a611610171578063715018a6146104775780637971fca71461048c5780637aab5d9b146104b05780638bf67ad0146104d15780638da5cb5b146104f157005b806363126e17146103bd578063685e838e146103dd5780636ea79583146103f357806370a082311461042b57806370fbc7121461046157005b80633d21e5a2116101ee5780633d21e5a21461030357806349dc859c14610323578063581d30f8146103435780635bc05f3c146103635780636264300e1461038457005b806306fdde0314610230578063095ea7b31461027457806318160ddd146102a457806323b872dd146102c7578063313ce567146102e757005b3661022e57005b005b34801561023c57600080fd5b506040805180820190915260098152682a2aa3102a37b5b2b760b91b60208201525b60405161026b91906118a6565b60405180910390f35b34801561028057600080fd5b5061029461028f3660046118ee565b6107ab565b604051901515815260200161026b565b3480156102b057600080fd5b506102b96107c5565b60405190815260200161026b565b3480156102d357600080fd5b506102946102e236600461191a565b6107e6565b3480156102f357600080fd5b506040516012815260200161026b565b34801561030f57600080fd5b5061022e61031e36600461195b565b61080a565b34801561032f57600080fd5b5061022e61033e366004611978565b610834565b34801561034f57600080fd5b5061022e61035e3660046119ba565b6109ae565b34801561036f57600080fd5b5060005461029490600160b01b900460ff1681565b34801561039057600080fd5b506001546103a890600160c01b900463ffffffff1681565b60405163ffffffff909116815260200161026b565b3480156103c957600080fd5b5061022e6103d8366004611a39565b610a3f565b3480156103e957600080fd5b506102b960085481565b3480156103ff57600080fd5b50600154610413906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561043757600080fd5b506102b961044636600461195b565b6001600160a01b031660009081526009602052604090205490565b34801561046d57600080fd5b506102b960065481565b34801561048357600080fd5b5061022e610ab4565b34801561049857600080fd5b506001546103a890600160a01b900463ffffffff1681565b3480156104bc57600080fd5b5060005461029490600160a01b900460ff1681565b3480156104dd57600080fd5b5061022e6104ec366004611a8d565b610ac8565b3480156104fd57600080fd5b506000546001600160a01b0316610413565b34801561051b57600080fd5b5061022e61052a366004611ac0565b610b0f565b34801561053b57600080fd5b506102b960045481565b34801561055157600080fd5b50600c54610413906001600160a01b031681565b34801561057157600080fd5b506040805180820190915260038152622a2aa360e91b602082015261025e565b34801561059d57600080fd5b5061022e6105ac366004611adb565b610b35565b3480156105bd57600080fd5b5061022e6105cc366004611af7565b610bd8565b3480156105dd57600080fd5b5061022e610c7c565b3480156105f257600080fd5b5060005461029490600160a81b900460ff1681565b34801561061357600080fd5b506102946106223660046118ee565b610c8c565b34801561063357600080fd5b50600c5461029490600160a01b900460ff1681565b34801561065457600080fd5b5061022e610663366004611b19565b610c9a565b34801561067457600080fd5b5061022e610683366004611ac0565b610d25565b34801561069457600080fd5b506001546103a890600160e01b900463ffffffff1681565b3480156106b857600080fd5b506002546103a89063ffffffff1681565b3480156106d557600080fd5b506102946106e436600461195b565b60036020526000908152604090205460ff1681565b34801561070557600080fd5b506102b9610714366004611b65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561074b57600080fd5b506102b960075481565b34801561076157600080fd5b5061022e61077036600461195b565b610d4b565b34801561078157600080fd5b5061022e610790366004611978565b610dc4565b3480156107a157600080fd5b506102b960055481565b6000336107b9818585610deb565b60019150505b92915050565b60006107d36012600a611c98565b6107e190633b9aca00611ca7565b905090565b6000336107f4858285610f0f565b6107ff858585610f9b565b506001949350505050565b610812611336565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61083c611336565b60045460055461084c9190611cbe565b42116108965760405162461bcd60e51b81526020600482015260146024820152734275726e20636f6f6c646f776e2061637469766560601b60448201526064015b60405180910390fd5b600c546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa1580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109059190611cd1565b90506000610915826103e8611390565b905080831115610923578092505b42600555821561094657600c54610946906001600160a01b031661dead856113b0565b600c546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b5050505050505050565b6109b6611336565b610bb863ffffffff821611156109fd5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161088d565b60008054921515600160b01b0260ff60b01b19909316929092179091556001805463ffffffff909216600160e01b026001600160e01b03909216919091179055565b610a47611336565b60005b82811015610aae578160036000868685818110610a6957610a69611cea565b9050602002016020810190610a7e919061195b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610a4a565b50505050565b610abc611336565b610ac66000611496565b565b610ad0611336565b6008929092556002805463ffffffff90921663ffffffff19909216919091179055600c8054911515600160a01b0260ff60a01b19909216919091179055565b610b17611336565b60008054911515600160a01b0260ff60a01b19909216919091179055565b610b3d611336565b610bb863ffffffff831611801590610b5d5750610bb863ffffffff821611155b610b985760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161088d565b6001805467ffffffffffffffff60a01b1916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b610be0611336565b60328210801590610bf2575060328110155b610c2c5760405162461bcd60e51b815260206004820152600b60248201526a0a8dede40d8deee40dac2f60ab1b604482015260640161088d565b610c4f610c3b6012600a611c98565b610c4990633b9aca00611ca7565b83611390565b600655610c75610c616012600a611c98565b610c6f90633b9aca00611ca7565b82611390565b6007555050565b610c84611336565b610ac66114e6565b6000336107b9818585610f9b565b610ca2611336565b600080546001600160a01b0316905b83811015610d1e576000858583818110610ccd57610ccd611cea565b9050602002016020810190610ce2919061195b565b90506001600160a01b038116610d0a5760405162461bcd60e51b815260040161088d90611d00565b610d158382866113b0565b50600101610cb1565b5050505050565b610d2d611336565b60008054911515600160a81b0260ff60a81b19909216919091179055565b610d53611336565b6001600160a01b038116610db85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088d565b610dc181611496565b50565b610dcc611336565b6000805460ff60a01b1916600a92909214600160a01b02919091179055565b6001600160a01b038316610e4d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161088d565b6001600160a01b038216610eae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161088d565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600a60209081526040808320938616835292905220546000198114610aae5781811015610f8e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161088d565b610aae8484848403610deb565b6001600160a01b038316610fff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161088d565b6001600160a01b0382166110255760405162461bcd60e51b815260040161088d90611d00565b600081116110875760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161088d565b6000546001600160a01b03848116911614806110b057506000546001600160a01b038381169116145b806110c357506001600160a01b03831630145b156110d8576110d38383836113b0565b505050565b600054600160a01b900460ff166111275760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b604482015260640161088d565b600c546000906001600160a01b0385811691161480611148576111486114e6565b8015611191576001600160a01b03841660009081526003602052604090205460ff1661118c57600154611189908490600160a01b900463ffffffff16611390565b91505b6111fc565b6001600160a01b03851660009081526003602052604090205460ff166111fc576000546111f9908490600160b01b900460ff166111dd57600154600160c01b900463ffffffff166111ee565b600154600160e01b900463ffffffff165b63ffffffff16611390565b91505b818310156112415760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b604482015260640161088d565b6000549282900392600160a81b900460ff161561131a5760065483111561129b5760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b604482015260640161088d565b600c546001600160a01b0385811691161461131a576007546001600160a01b0385166000908152600960205260409020546112d7908590611cbe565b111561131a5760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b604482015260640161088d565b811561132b5761132b8530846113b0565b610d1e8585856113b0565b6000546001600160a01b03163314610ac65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088d565b600061271061139f8385611ca7565b6113a99190611d43565b9392505050565b6001600160a01b038316600090815260096020526040902054818110156114285760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161088d565b6001600160a01b0380851660008181526009602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114889086815260200190565b60405180910390a350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b30600090815260096020526040902054600854811080159081906115145750600c54600160a81b900460ff16155b80156115295750600c54600160a01b900460ff165b156115495761153960085461154d565b4780156110d3576110d34761172c565b5050565b600c805460ff60a81b1916600160a81b17905560025460009061157e9083906111ee9063ffffffff16612710611d65565b9050600061158c8284611d89565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106115c6576115c6611cea565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561161f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116439190611d9c565b8160018151811061165657611656611cea565b6001600160a01b039283166020918202929092010152600b5461167c9130911687610deb565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116b5908790600090869030904290600401611db9565b600060405180830381600087803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b50505050600082476116f59190611d89565b60025490915061171790859061171290849063ffffffff16611390565b6117d8565b5050600c805460ff60a81b1916905550505050565b6001546040805160008082526020820192839052926001600160a01b031691849161175691611e2a565b60006040518083038185875af1925050503d8060008114611793576040519150601f19603f3d011682016040523d82523d6000602084013e611798565b606091505b50509050806115495760405162461bcd60e51b815260206004820152600c60248201526b151c985b9cd9995c91985a5b60a21b604482015260640161088d565b600b546117f09030906001600160a01b031684610deb565b600b5460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561185d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d1e9190611e46565b60005b8381101561189d578181015183820152602001611885565b50506000910152565b60208152600082518060208401526118c5816040850160208701611882565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610dc157600080fd5b6000806040838503121561190157600080fd5b823561190c816118d9565b946020939093013593505050565b60008060006060848603121561192f57600080fd5b833561193a816118d9565b9250602084013561194a816118d9565b929592945050506040919091013590565b60006020828403121561196d57600080fd5b81356113a9816118d9565b60006020828403121561198a57600080fd5b5035919050565b803580151581146119a157600080fd5b919050565b803563ffffffff811681146119a157600080fd5b600080604083850312156119cd57600080fd5b6119d683611991565b91506119e4602084016119a6565b90509250929050565b60008083601f8401126119ff57600080fd5b50813567ffffffffffffffff811115611a1757600080fd5b6020830191508360208260051b8501011115611a3257600080fd5b9250929050565b600080600060408486031215611a4e57600080fd5b833567ffffffffffffffff811115611a6557600080fd5b611a71868287016119ed565b9094509250611a84905060208501611991565b90509250925092565b600080600060608486031215611aa257600080fd5b83359250611ab2602085016119a6565b9150611a8460408501611991565b600060208284031215611ad257600080fd5b6113a982611991565b60008060408385031215611aee57600080fd5b6119d6836119a6565b60008060408385031215611b0a57600080fd5b50508035926020909101359150565b600080600060408486031215611b2e57600080fd5b833567ffffffffffffffff811115611b4557600080fd5b611b51868287016119ed565b909790965060209590950135949350505050565b60008060408385031215611b7857600080fd5b8235611b83816118d9565b91506020830135611b93816118d9565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bef578160001904821115611bd557611bd5611b9e565b80851615611be257918102915b93841c9390800290611bb9565b509250929050565b600082611c06575060016107bf565b81611c13575060006107bf565b8160018114611c295760028114611c3357611c4f565b60019150506107bf565b60ff841115611c4457611c44611b9e565b50506001821b6107bf565b5060208310610133831016604e8410600b8410161715611c72575081810a6107bf565b611c7c8383611bb4565b8060001904821115611c9057611c90611b9e565b029392505050565b60006113a960ff841683611bf7565b80820281158282048414176107bf576107bf611b9e565b808201808211156107bf576107bf611b9e565b600060208284031215611ce357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082611d6057634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff828116828216039080821115611d8257611d82611b9e565b5092915050565b818103818111156107bf576107bf611b9e565b600060208284031215611dae57600080fd5b81516113a9816118d9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e095784516001600160a01b031683529383019391830191600101611de4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008251611e3c818460208701611882565b9190910192915050565b600080600060608486031215611e5b57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204d6dcf02822f87318d6885cfd2e8a308d0b8e82c40be004391602794e312504364736f6c634300081100330000000000000000000000002af1ba1647471ece27f864eb8df36115e3931003
Deployed Bytecode
0x6080604052600436106102275760003560e01c80638e26bbe411610122578063ba414b10116100a5578063dd62ed3e1161006c578063dd62ed3e146106f9578063e717fc301461073f578063f2fde38b14610755578063f4a2ebf714610775578063f5a27e861461079557005b8063ba414b1014610648578063bd186c4c14610668578063bd4f1dc614610688578063c9d9159d146106ac578063d11fcb85146106c957005b80639bfe8df7116100e95780639bfe8df7146105b1578063a1780c18146105d1578063a20adf86146105e6578063a9059cbb14610607578063ac9358341461062757005b80638e26bbe41461050f57806391d88b951461052f57806391f18b7c1461054557806395d89b411461056557806396418d4d1461059157005b806363126e17116101aa578063715018a611610171578063715018a6146104775780637971fca71461048c5780637aab5d9b146104b05780638bf67ad0146104d15780638da5cb5b146104f157005b806363126e17146103bd578063685e838e146103dd5780636ea79583146103f357806370a082311461042b57806370fbc7121461046157005b80633d21e5a2116101ee5780633d21e5a21461030357806349dc859c14610323578063581d30f8146103435780635bc05f3c146103635780636264300e1461038457005b806306fdde0314610230578063095ea7b31461027457806318160ddd146102a457806323b872dd146102c7578063313ce567146102e757005b3661022e57005b005b34801561023c57600080fd5b506040805180820190915260098152682a2aa3102a37b5b2b760b91b60208201525b60405161026b91906118a6565b60405180910390f35b34801561028057600080fd5b5061029461028f3660046118ee565b6107ab565b604051901515815260200161026b565b3480156102b057600080fd5b506102b96107c5565b60405190815260200161026b565b3480156102d357600080fd5b506102946102e236600461191a565b6107e6565b3480156102f357600080fd5b506040516012815260200161026b565b34801561030f57600080fd5b5061022e61031e36600461195b565b61080a565b34801561032f57600080fd5b5061022e61033e366004611978565b610834565b34801561034f57600080fd5b5061022e61035e3660046119ba565b6109ae565b34801561036f57600080fd5b5060005461029490600160b01b900460ff1681565b34801561039057600080fd5b506001546103a890600160c01b900463ffffffff1681565b60405163ffffffff909116815260200161026b565b3480156103c957600080fd5b5061022e6103d8366004611a39565b610a3f565b3480156103e957600080fd5b506102b960085481565b3480156103ff57600080fd5b50600154610413906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561043757600080fd5b506102b961044636600461195b565b6001600160a01b031660009081526009602052604090205490565b34801561046d57600080fd5b506102b960065481565b34801561048357600080fd5b5061022e610ab4565b34801561049857600080fd5b506001546103a890600160a01b900463ffffffff1681565b3480156104bc57600080fd5b5060005461029490600160a01b900460ff1681565b3480156104dd57600080fd5b5061022e6104ec366004611a8d565b610ac8565b3480156104fd57600080fd5b506000546001600160a01b0316610413565b34801561051b57600080fd5b5061022e61052a366004611ac0565b610b0f565b34801561053b57600080fd5b506102b960045481565b34801561055157600080fd5b50600c54610413906001600160a01b031681565b34801561057157600080fd5b506040805180820190915260038152622a2aa360e91b602082015261025e565b34801561059d57600080fd5b5061022e6105ac366004611adb565b610b35565b3480156105bd57600080fd5b5061022e6105cc366004611af7565b610bd8565b3480156105dd57600080fd5b5061022e610c7c565b3480156105f257600080fd5b5060005461029490600160a81b900460ff1681565b34801561061357600080fd5b506102946106223660046118ee565b610c8c565b34801561063357600080fd5b50600c5461029490600160a01b900460ff1681565b34801561065457600080fd5b5061022e610663366004611b19565b610c9a565b34801561067457600080fd5b5061022e610683366004611ac0565b610d25565b34801561069457600080fd5b506001546103a890600160e01b900463ffffffff1681565b3480156106b857600080fd5b506002546103a89063ffffffff1681565b3480156106d557600080fd5b506102946106e436600461195b565b60036020526000908152604090205460ff1681565b34801561070557600080fd5b506102b9610714366004611b65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561074b57600080fd5b506102b960075481565b34801561076157600080fd5b5061022e61077036600461195b565b610d4b565b34801561078157600080fd5b5061022e610790366004611978565b610dc4565b3480156107a157600080fd5b506102b960055481565b6000336107b9818585610deb565b60019150505b92915050565b60006107d36012600a611c98565b6107e190633b9aca00611ca7565b905090565b6000336107f4858285610f0f565b6107ff858585610f9b565b506001949350505050565b610812611336565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61083c611336565b60045460055461084c9190611cbe565b42116108965760405162461bcd60e51b81526020600482015260146024820152734275726e20636f6f6c646f776e2061637469766560601b60448201526064015b60405180910390fd5b600c546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa1580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109059190611cd1565b90506000610915826103e8611390565b905080831115610923578092505b42600555821561094657600c54610946906001600160a01b031661dead856113b0565b600c546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b5050505050505050565b6109b6611336565b610bb863ffffffff821611156109fd5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161088d565b60008054921515600160b01b0260ff60b01b19909316929092179091556001805463ffffffff909216600160e01b026001600160e01b03909216919091179055565b610a47611336565b60005b82811015610aae578160036000868685818110610a6957610a69611cea565b9050602002016020810190610a7e919061195b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610a4a565b50505050565b610abc611336565b610ac66000611496565b565b610ad0611336565b6008929092556002805463ffffffff90921663ffffffff19909216919091179055600c8054911515600160a01b0260ff60a01b19909216919091179055565b610b17611336565b60008054911515600160a01b0260ff60a01b19909216919091179055565b610b3d611336565b610bb863ffffffff831611801590610b5d5750610bb863ffffffff821611155b610b985760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b604482015260640161088d565b6001805467ffffffffffffffff60a01b1916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b610be0611336565b60328210801590610bf2575060328110155b610c2c5760405162461bcd60e51b815260206004820152600b60248201526a0a8dede40d8deee40dac2f60ab1b604482015260640161088d565b610c4f610c3b6012600a611c98565b610c4990633b9aca00611ca7565b83611390565b600655610c75610c616012600a611c98565b610c6f90633b9aca00611ca7565b82611390565b6007555050565b610c84611336565b610ac66114e6565b6000336107b9818585610f9b565b610ca2611336565b600080546001600160a01b0316905b83811015610d1e576000858583818110610ccd57610ccd611cea565b9050602002016020810190610ce2919061195b565b90506001600160a01b038116610d0a5760405162461bcd60e51b815260040161088d90611d00565b610d158382866113b0565b50600101610cb1565b5050505050565b610d2d611336565b60008054911515600160a81b0260ff60a81b19909216919091179055565b610d53611336565b6001600160a01b038116610db85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088d565b610dc181611496565b50565b610dcc611336565b6000805460ff60a01b1916600a92909214600160a01b02919091179055565b6001600160a01b038316610e4d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161088d565b6001600160a01b038216610eae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161088d565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600a60209081526040808320938616835292905220546000198114610aae5781811015610f8e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161088d565b610aae8484848403610deb565b6001600160a01b038316610fff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161088d565b6001600160a01b0382166110255760405162461bcd60e51b815260040161088d90611d00565b600081116110875760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161088d565b6000546001600160a01b03848116911614806110b057506000546001600160a01b038381169116145b806110c357506001600160a01b03831630145b156110d8576110d38383836113b0565b505050565b600054600160a01b900460ff166111275760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b604482015260640161088d565b600c546000906001600160a01b0385811691161480611148576111486114e6565b8015611191576001600160a01b03841660009081526003602052604090205460ff1661118c57600154611189908490600160a01b900463ffffffff16611390565b91505b6111fc565b6001600160a01b03851660009081526003602052604090205460ff166111fc576000546111f9908490600160b01b900460ff166111dd57600154600160c01b900463ffffffff166111ee565b600154600160e01b900463ffffffff165b63ffffffff16611390565b91505b818310156112415760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b604482015260640161088d565b6000549282900392600160a81b900460ff161561131a5760065483111561129b5760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b604482015260640161088d565b600c546001600160a01b0385811691161461131a576007546001600160a01b0385166000908152600960205260409020546112d7908590611cbe565b111561131a5760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b604482015260640161088d565b811561132b5761132b8530846113b0565b610d1e8585856113b0565b6000546001600160a01b03163314610ac65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088d565b600061271061139f8385611ca7565b6113a99190611d43565b9392505050565b6001600160a01b038316600090815260096020526040902054818110156114285760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161088d565b6001600160a01b0380851660008181526009602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114889086815260200190565b60405180910390a350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b30600090815260096020526040902054600854811080159081906115145750600c54600160a81b900460ff16155b80156115295750600c54600160a01b900460ff165b156115495761153960085461154d565b4780156110d3576110d34761172c565b5050565b600c805460ff60a81b1916600160a81b17905560025460009061157e9083906111ee9063ffffffff16612710611d65565b9050600061158c8284611d89565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106115c6576115c6611cea565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561161f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116439190611d9c565b8160018151811061165657611656611cea565b6001600160a01b039283166020918202929092010152600b5461167c9130911687610deb565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116b5908790600090869030904290600401611db9565b600060405180830381600087803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b50505050600082476116f59190611d89565b60025490915061171790859061171290849063ffffffff16611390565b6117d8565b5050600c805460ff60a81b1916905550505050565b6001546040805160008082526020820192839052926001600160a01b031691849161175691611e2a565b60006040518083038185875af1925050503d8060008114611793576040519150601f19603f3d011682016040523d82523d6000602084013e611798565b606091505b50509050806115495760405162461bcd60e51b815260206004820152600c60248201526b151c985b9cd9995c91985a5b60a21b604482015260640161088d565b600b546117f09030906001600160a01b031684610deb565b600b5460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561185d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d1e9190611e46565b60005b8381101561189d578181015183820152602001611885565b50506000910152565b60208152600082518060208401526118c5816040850160208701611882565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610dc157600080fd5b6000806040838503121561190157600080fd5b823561190c816118d9565b946020939093013593505050565b60008060006060848603121561192f57600080fd5b833561193a816118d9565b9250602084013561194a816118d9565b929592945050506040919091013590565b60006020828403121561196d57600080fd5b81356113a9816118d9565b60006020828403121561198a57600080fd5b5035919050565b803580151581146119a157600080fd5b919050565b803563ffffffff811681146119a157600080fd5b600080604083850312156119cd57600080fd5b6119d683611991565b91506119e4602084016119a6565b90509250929050565b60008083601f8401126119ff57600080fd5b50813567ffffffffffffffff811115611a1757600080fd5b6020830191508360208260051b8501011115611a3257600080fd5b9250929050565b600080600060408486031215611a4e57600080fd5b833567ffffffffffffffff811115611a6557600080fd5b611a71868287016119ed565b9094509250611a84905060208501611991565b90509250925092565b600080600060608486031215611aa257600080fd5b83359250611ab2602085016119a6565b9150611a8460408501611991565b600060208284031215611ad257600080fd5b6113a982611991565b60008060408385031215611aee57600080fd5b6119d6836119a6565b60008060408385031215611b0a57600080fd5b50508035926020909101359150565b600080600060408486031215611b2e57600080fd5b833567ffffffffffffffff811115611b4557600080fd5b611b51868287016119ed565b909790965060209590950135949350505050565b60008060408385031215611b7857600080fd5b8235611b83816118d9565b91506020830135611b93816118d9565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bef578160001904821115611bd557611bd5611b9e565b80851615611be257918102915b93841c9390800290611bb9565b509250929050565b600082611c06575060016107bf565b81611c13575060006107bf565b8160018114611c295760028114611c3357611c4f565b60019150506107bf565b60ff841115611c4457611c44611b9e565b50506001821b6107bf565b5060208310610133831016604e8410600b8410161715611c72575081810a6107bf565b611c7c8383611bb4565b8060001904821115611c9057611c90611b9e565b029392505050565b60006113a960ff841683611bf7565b80820281158282048414176107bf576107bf611b9e565b808201808211156107bf576107bf611b9e565b600060208284031215611ce357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082611d6057634e487b7160e01b600052601260045260246000fd5b500490565b63ffffffff828116828216039080821115611d8257611d82611b9e565b5092915050565b818103818111156107bf576107bf611b9e565b600060208284031215611dae57600080fd5b81516113a9816118d9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e095784516001600160a01b031683529383019391830191600101611de4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008251611e3c818460208701611882565b9190910192915050565b600080600060608486031215611e5b57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204d6dcf02822f87318d6885cfd2e8a308d0b8e82c40be004391602794e312504364736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002af1ba1647471ece27f864eb8df36115e3931003
-----Decoded View---------------
Arg [0] : _team_wallet (address): 0x2Af1BA1647471eCE27f864EB8df36115E3931003
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002af1ba1647471ece27f864eb8df36115e3931003
Deployed Bytecode Sourcemap
9182:13155:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18981:100;;;;;;;;;;-1:-1:-1;19068:5:0;;;;;;;;;;;;-1:-1:-1;;;19068:5:0;;;;18981:100;;;;;;;:::i;:::-;;;;;;;;20364:242;;;;;;;;;;-1:-1:-1;20364:242:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;20364:242:0;1126:187:1;19309:108:0;;;;;;;;;;;;;:::i;:::-;;;1464:25:1;;;1452:2;1437:18;19309:108:0;1318:177:1;19852:295:0;;;;;;;;;;-1:-1:-1;19852:295:0;;;;;:::i;:::-;;:::i;19201:100::-;;;;;;;;;;-1:-1:-1;19201:100:0;;9382:2;2103:36:1;;2091:2;2076:18;19201:100:0;1961:184:1;12835:106:0;;;;;;;;;;-1:-1:-1;12835:106:0;;;;;:::i;:::-;;:::i;13764:656::-;;;;;;;;;;-1:-1:-1;13764:656:0;;;;;:::i;:::-;;:::i;14606:206::-;;;;;;;;;;-1:-1:-1;14606:206:0;;;;;:::i;:::-;;:::i;9816:29::-;;;;;;;;;;-1:-1:-1;9816:29:0;;;;-1:-1:-1;;;9816:29:0;;;;;;9928:37;;;;;;;;;;-1:-1:-1;9928:37:0;;;;-1:-1:-1;;;9928:37:0;;;;;;;;;3351:10:1;3339:23;;;3321:42;;3309:2;3294:18;9928:37:0;3177:192:1;12982:269:0;;;;;;;;;;-1:-1:-1;12982:269:0;;;;;:::i;:::-;;:::i;10622:57::-;;;;;;;;;;;;;;;;9852:26;;;;;;;;;;-1:-1:-1;9852:26:0;;;;-1:-1:-1;;;;;9852:26:0;;;;;;-1:-1:-1;;;;;4420:32:1;;;4402:51;;4390:2;4375:18;9852:26:0;4256:203:1;19425:177:0;;;;;;;;;;-1:-1:-1;19425:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;19576:18:0;19544:7;19576:18;;;:9;:18;;;;;;;19425:177;10489:49;;;;;;;;;;;;;;;;4049:103;;;;;;;;;;;;;:::i;9885:36::-;;;;;;;;;;-1:-1:-1;9885:36:0;;;;-1:-1:-1;;;9885:36:0;;;;;;9735:22;;;;;;;;;;-1:-1:-1;9735:22:0;;;;-1:-1:-1;;;9735:22:0;;;;;;12568:237;;;;;;;;;;-1:-1:-1;12568:237:0;;;;;:::i;:::-;;:::i;3401:87::-;;;;;;;;;;-1:-1:-1;3447:7:0;3474:6;-1:-1:-1;;;;;3474:6:0;3401:87;;14820:89;;;;;;;;;;-1:-1:-1;14820:89:0;;;;;:::i;:::-;;:::i;10395:41::-;;;;;;;;;;;;;;;;10901:24;;;;;;;;;;-1:-1:-1;10901:24:0;;;;-1:-1:-1;;;;;10901:24:0;;;19089:104;;;;;;;;;;-1:-1:-1;19178:7:0;;;;;;;;;;;;-1:-1:-1;;;19178:7:0;;;;19089:104;;11994:215;;;;;;;;;;-1:-1:-1;11994:215:0;;;;;:::i;:::-;;:::i;12243:317::-;;;;;;;;;;-1:-1:-1;12243:317:0;;;;;:::i;:::-;;:::i;14428:70::-;;;;;;;;;;;;;:::i;9764:32::-;;;;;;;;;;-1:-1:-1;9764:32:0;;;;-1:-1:-1;;;9764:32:0;;;;;;19610:234;;;;;;;;;;-1:-1:-1;19610:234:0;;;;;:::i;:::-;;:::i;10932:31::-;;;;;;;;;;-1:-1:-1;10932:31:0;;;;-1:-1:-1;;;10932:31:0;;;;;;13259:497;;;;;;;;;;-1:-1:-1;13259:497:0;;;;;:::i;:::-;;:::i;14506:92::-;;;;;;;;;;-1:-1:-1;14506:92:0;;;;;:::i;:::-;;:::i;10214:44::-;;;;;;;;;;-1:-1:-1;10214:44:0;;;;-1:-1:-1;;;10214:44:0;;;;;;10265:40;;;;;;;;;;-1:-1:-1;10265:40:0;;;;;;;;10332:42;;;;;;;;;;-1:-1:-1;10332:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20155:201;;;;;;;;;;-1:-1:-1;20155:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;20321:18:0;;;20289:7;20321:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20155:201;10553:54;;;;;;;;;;;;;;;;4307:238;;;;;;;;;;-1:-1:-1;4307:238:0;;;;;:::i;:::-;;:::i;14917:86::-;;;;;;;;;;-1:-1:-1;14917:86:0;;;;;:::i;:::-;;:::i;10443:24::-;;;;;;;;;;;;;;;;20364:242;20483:4;2165:10;20544:32;2165:10;20560:7;20569:6;20544:8;:32::i;:::-;20594:4;20587:11;;;20364:242;;;;;:::o;19309:108::-;19370:7;9448:13;9382:2;9448;:13;:::i;:::-;9432:29;;:13;:29;:::i;:::-;19390:19;;19309:108;:::o;19852:295::-;19983:4;2165:10;20041:38;20057:4;2165:10;20072:6;20041:15;:38::i;:::-;20090:27;20100:4;20106:2;20110:6;20090:9;:27::i;:::-;-1:-1:-1;20135:4:0;;19852:295;-1:-1:-1;;;;19852:295:0:o;12835:106::-;3287:13;:11;:13::i;:::-;12907:11:::1;:26:::0;;-1:-1:-1;;;;;;12907:26:0::1;-1:-1:-1::0;;;;;12907:26:0;;;::::1;::::0;;;::::1;::::0;;12835:106::o;13764:656::-;3287:13;:11;:13::i;:::-;13892::::1;;13880:9;;:25;;;;:::i;:::-;13862:15;:43;13840:113;;;::::0;-1:-1:-1;;;13840:113:0;;8411:2:1;13840:113:0::1;::::0;::::1;8393:21:1::0;8450:2;8430:18;;;8423:30;-1:-1:-1;;;8469:18:1;;;8462:50;8529:18;;13840:113:0::1;;;;;;;;;14010:9;::::0;13995:25:::1;::::0;-1:-1:-1;;;13995:25:0;;-1:-1:-1;;;;;14010:9:0;;::::1;13995:25;::::0;::::1;4402:51:1::0;13964:28:0::1;::::0;13995:4:::1;::::0;:14:::1;::::0;4375:18:1;;13995:25:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13964:56:::0;-1:-1:-1;14031:20:0::1;14054:45;13964:56:::0;9696:13:::1;14054:11;:45::i;:::-;14031:68;;14124:12;14114:7;:22;14110:77;;;14163:12;14153:22;;14110:77;14209:15;14197:9;:27:::0;14241:11;;14237:96:::1;;14285:9;::::0;14269:52:::1;::::0;-1:-1:-1;;;;;14285:9:0::1;14304:6;14313:7:::0;14269:15:::1;:52::i;:::-;14380:9;::::0;14401:11:::1;::::0;;-1:-1:-1;;;;;;14401:11:0;;;;-1:-1:-1;;;;;14380:9:0;;::::1;::::0;;;14401::::1;::::0;:11:::1;::::0;;::::1;::::0;14343:19:::1;::::0;14401:11;;;;;;;14343:19;14380:9;14401:11;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13829:591;;;13764:656:::0;:::o;14606:206::-;3287:13;:11;:13::i;:::-;9584::::1;14699:20;::::0;::::1;;;14691:45;;;::::0;-1:-1:-1;;;14691:45:0;;8949:2:1;14691:45:0::1;::::0;::::1;8931:21:1::0;8988:2;8968:18;;;8961:30;-1:-1:-1;;;9007:18:1;;;9000:42;9059:18;;14691:45:0::1;8747:336:1::0;14691:45:0::1;14747:10;:20:::0;;;::::1;;-1:-1:-1::0;;;14747:20:0::1;-1:-1:-1::0;;;;14747:20:0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;14778:26:0;;::::1;::::0;;::::1;-1:-1:-1::0;;;14778:26:0::1;-1:-1:-1::0;;;;;14778:26:0;;::::1;::::0;;;::::1;::::0;;14606:206::o;12982:269::-;3287:13;:11;:13::i;:::-;13127:9:::1;13122:111;13142:17:::0;;::::1;13122:111;;;13209:8;13185:10;:21;13196:6;;13203:1;13196:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13185:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13185:21:0;:32;;-1:-1:-1;;13185:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13161:3:0::1;13122:111;;;;12982:269:::0;;;:::o;4049:103::-;3287:13;:11;:13::i;:::-;4114:30:::1;4141:1;4114:18;:30::i;:::-;4049:103::o:0;12568:237::-;3287:13;:11;:13::i;:::-;12704:14:::1;:24:::0;;;;12739:10:::1;:24:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;12739:24:0;;::::1;::::0;;;::::1;::::0;;12774:12:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;12774:23:0::1;-1:-1:-1::0;;;;12774:23:0;;::::1;::::0;;;::::1;::::0;;12568:237::o;14820:89::-;3287:13;:11;:13::i;:::-;14881:10:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;14881:20:0::1;-1:-1:-1::0;;;;14881:20:0;;::::1;::::0;;;::::1;::::0;;14820:89::o;11994:215::-;3287:13;:11;:13::i;:::-;9584::::1;12081:19;::::0;::::1;;::::0;::::1;::::0;:43:::1;;-1:-1:-1::0;9584:13:0::1;12104:20;::::0;::::1;;;12081:43;12073:68;;;::::0;-1:-1:-1;;;12073:68:0;;8949:2:1;12073:68:0::1;::::0;::::1;8931:21:1::0;8988:2;8968:18;;;8961:30;-1:-1:-1;;;9007:18:1;;;9000:42;9059:18;;12073:68:0::1;8747:336:1::0;12073:68:0::1;12152:7;:18:::0;;-1:-1:-1;;;;12181:20:0;-1:-1:-1;;;12152:18:0::1;::::0;;::::1;;-1:-1:-1::0;;;;12181:20:0;;-1:-1:-1;;;12181:20:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;11994:215::o;12243:317::-;3287:13;:11;:13::i;:::-;9640:12:::1;12349:20:::0;::::1;::::0;::::1;::::0;:48:::1;;-1:-1:-1::0;9640:12:0::1;12373:24:::0;::::1;;12349:48;12327:109;;;::::0;-1:-1:-1;;;12327:109:0;;9422:2:1;12327:109:0::1;::::0;::::1;9404:21:1::0;9461:2;9441:18;;;9434:30;-1:-1:-1;;;9480:18:1;;;9473:41;9531:18;;12327:109:0::1;9220:335:1::0;12327:109:0::1;12456:34;9448:13;9382:2;9448;:13;:::i;:::-;9432:29;::::0;:13:::1;:29;:::i;:::-;12482:7;12456:11;:34::i;:::-;12447:6;:43:::0;12514:38:::1;9448:13;9382:2;9448;:13;:::i;:::-;9432:29;::::0;:13:::1;:29;:::i;:::-;12540:11;12514;:38::i;:::-;12501:10;:51:::0;-1:-1:-1;;12243:317:0:o;14428:70::-;3287:13;:11;:13::i;:::-;14478:12:::1;:10;:12::i;19610:234::-:0;19725:4;2165:10;19786:28;2165:10;19803:2;19807:6;19786:9;:28::i;13259:497::-;3287:13;:11;:13::i;:::-;13374::::1;3474:6:::0;;-1:-1:-1;;;;;3474:6:0;;13433:305:::1;13453:17:::0;;::::1;13433:305;;;13496:12;13511:6;;13518:1;13511:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13496:24:::0;-1:-1:-1;;;;;;13569:18:0;::::1;13539:127;;;;-1:-1:-1::0;;;13539:127:0::1;;;;;;;:::i;:::-;13685:37;13701:5;13708:4;13714:7;13685:15;:37::i;:::-;-1:-1:-1::0;13472:3:0::1;;13433:305;;;;13363:393;13259:497:::0;;;:::o;14506:92::-;3287:13;:11;:13::i;:::-;14567::::1;:23:::0;;;::::1;;-1:-1:-1::0;;;14567:23:0::1;-1:-1:-1::0;;;;14567:23:0;;::::1;::::0;;;::::1;::::0;;14506:92::o;4307:238::-;3287:13;:11;:13::i;:::-;-1:-1:-1;;;;;4410:22:0;::::1;4388:110;;;::::0;-1:-1:-1;;;4388:110:0;;10166:2:1;4388:110:0::1;::::0;::::1;10148:21:1::0;10205:2;10185:18;;;10178:30;10244:34;10224:18;;;10217:62;-1:-1:-1;;;10295:18:1;;;10288:36;10341:19;;4388:110:0::1;9964:402:1::0;4388:110:0::1;4509:28;4528:8;4509:18;:28::i;:::-;4307:238:::0;:::o;14917:86::-;3287:13;:11;:13::i;:::-;14972:10:::1;:23:::0;;-1:-1:-1;;;;14972:23:0::1;14993:2;14985:10:::0;;;::::1;-1:-1:-1::0;;;14972:23:0::1;::::0;;;::::1;::::0;;14917:86::o;20614:380::-;-1:-1:-1;;;;;20750:19:0;;20742:68;;;;-1:-1:-1;;;20742:68:0;;10573:2:1;20742:68:0;;;10555:21:1;10612:2;10592:18;;;10585:30;10651:34;10631:18;;;10624:62;-1:-1:-1;;;10702:18:1;;;10695:34;10746:19;;20742:68:0;10371:400:1;20742:68:0;-1:-1:-1;;;;;20829:21:0;;20821:68;;;;-1:-1:-1;;;20821:68:0;;10978:2:1;20821:68:0;;;10960:21:1;11017:2;10997:18;;;10990:30;11056:34;11036:18;;;11029:62;-1:-1:-1;;;11107:18:1;;;11100:32;11149:19;;20821:68:0;10776:398:1;20821:68:0;-1:-1:-1;;;;;20902:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20954:32;;1464:25:1;;;20954:32:0;;1437:18:1;20954:32:0;;;;;;;20614:380;;;:::o;21002:502::-;-1:-1:-1;;;;;20321:18:0;;;21137:24;20321:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;21204:37:0;;21200:297;;21304:6;21284:16;:26;;21258:117;;;;-1:-1:-1;;;21258:117:0;;11381:2:1;21258:117:0;;;11363:21:1;11420:2;11400:18;;;11393:30;11459:31;11439:18;;;11432:59;11508:18;;21258:117:0;11179:353:1;21258:117:0;21419:51;21428:5;21435:7;21463:6;21444:16;:25;21419:8;:51::i;15024:2006::-;-1:-1:-1;;;;;15147:18:0;;15139:68;;;;-1:-1:-1;;;15139:68:0;;11739:2:1;15139:68:0;;;11721:21:1;11778:2;11758:18;;;11751:30;11817:34;11797:18;;;11790:62;-1:-1:-1;;;11868:18:1;;;11861:35;11913:19;;15139:68:0;11537:401:1;15139:68:0;-1:-1:-1;;;;;15226:16:0;;15218:64;;;;-1:-1:-1;;;15218:64:0;;;;;;;:::i;:::-;15310:1;15301:6;:10;15293:64;;;;-1:-1:-1;;;15293:64:0;;12145:2:1;15293:64:0;;;12127:21:1;12184:2;12164:18;;;12157:30;12223:34;12203:18;;;12196:62;-1:-1:-1;;;12274:18:1;;;12267:39;12323:19;;15293:64:0;11943:405:1;15293:64:0;3447:7;3474:6;-1:-1:-1;;;;;15423:15:0;;;3474:6;;15423:15;;:32;;-1:-1:-1;3447:7:0;3474:6;-1:-1:-1;;;;;15442:13:0;;;3474:6;;15442:13;15423:32;:57;;;-1:-1:-1;;;;;;15459:21:0;;15475:4;15459:21;15423:57;15419:144;;;15497:33;15513:4;15519:2;15523:6;15497:15;:33::i;:::-;15024:2006;;;:::o;15419:144::-;15620:10;;-1:-1:-1;;;15620:10:0;;;;15612:42;;;;-1:-1:-1;;;15612:42:0;;12555:2:1;15612:42:0;;;12537:21:1;12594:2;12574:18;;;12567:30;-1:-1:-1;;;12613:18:1;;;12606:49;12672:18;;15612:42:0;12353:343:1;15612:42:0;15719:9;;15665:18;;-1:-1:-1;;;;;15711:17:0;;;15719:9;;15711:17;;15741:78;;15795:12;:10;:12::i;:::-;15891:5;15887:382;;;-1:-1:-1;;;;;15918:14:0;;;;;;:10;:14;;;;;;;;15913:97;;15986:7;;15966:28;;15978:6;;-1:-1:-1;;;15986:7:0;;;;15966:11;:28::i;:::-;15953:41;;15913:97;15887:382;;;-1:-1:-1;;;;;16072:16:0;;;;;;:10;:16;;;;;;;;16067:191;;16185:10;;16122:120;;16156:6;;-1:-1:-1;;;16185:10:0;;;;:38;;16215:8;;-1:-1:-1;;;16215:8:0;;;;16185:38;;;16198:14;;-1:-1:-1;;;16198:14:0;;;;16185:38;16122:120;;:11;:120::i;:::-;16109:133;;16067:191;16344:10;16334:6;:20;;16326:51;;;;-1:-1:-1;;;16326:51:0;;12903:2:1;16326:51:0;;;12885:21:1;12942:2;12922:18;;;12915:30;-1:-1:-1;;;12961:18:1;;;12954:48;13019:18;;16326:51:0;12701:342:1;16326:51:0;16463:13;;16392:20;;;;;-1:-1:-1;;;16463:13:0;;;;16459:345;;;16538:6;;16528;:16;;16520:43;;;;-1:-1:-1;;;16520:43:0;;13250:2:1;16520:43:0;;;13232:21:1;13289:2;13269:18;;;13262:30;-1:-1:-1;;;13308:18:1;;;13301:44;13362:18;;16520:43:0;13048:338:1;16520:43:0;16619:9;;-1:-1:-1;;;;;16613:15:0;;;16619:9;;16613:15;16609:184;;16705:10;;-1:-1:-1;;;;;16679:13:0;;;;;;:9;:13;;;;;;:22;;16695:6;;16679:22;:::i;:::-;:36;;16649:128;;;;-1:-1:-1;;;16649:128:0;;13593:2:1;16649:128:0;;;13575:21:1;13632:2;13612:18;;;13605:30;-1:-1:-1;;;13651:18:1;;;13644:48;13709:18;;16649:128:0;13391:342:1;16649:128:0;16861:14;;16857:95;;16892:48;16908:4;16922;16929:10;16892:15;:48::i;:::-;16989:33;17005:4;17011:2;17015:6;16989:15;:33::i;3566:132::-;3447:7;3474:6;-1:-1:-1;;;;;3474:6:0;2165:10;3630:23;3622:68;;;;-1:-1:-1;;;3622:68:0;;13940:2:1;3622:68:0;;;13922:21:1;;;13959:18;;;13952:30;14018:34;13998:18;;;13991:62;14070:18;;3622:68:0;13738:356:1;11006:180:0;11110:7;9509:11;11143:17;11152:8;11143:6;:17;:::i;:::-;11142:36;;;;:::i;:::-;11135:43;11006:180;-1:-1:-1;;;11006:180:0:o;21512:626::-;-1:-1:-1;;;;;21663:15:0;;21641:19;21663:15;;;:9;:15;;;;;;21711:21;;;;21689:109;;;;-1:-1:-1;;;21689:109:0;;14523:2:1;21689:109:0;;;14505:21:1;14562:2;14542:18;;;14535:30;14601:34;14581:18;;;14574:62;-1:-1:-1;;;14652:18:1;;;14645:36;14698:19;;21689:109:0;14321:402:1;21689:109:0;-1:-1:-1;;;;;21834:15:0;;;;;;;:9;:15;;;;;;21852:20;;;21834:38;;22052:13;;;;;;;;;;:23;;;;;;22104:26;;;;;;21866:6;1464:25:1;;1452:2;1437:18;;1318:177;22104:26:0;;;;;;;;21630:508;21512:626;;;:::o;4705:191::-;4779:16;4798:6;;-1:-1:-1;;;;;4815:17:0;;;-1:-1:-1;;;;;;4815:17:0;;;;;;4848:40;;4798:6;;;;;;;4848:40;;4779:16;4848:40;4768:128;4705:191;:::o;17038:436::-;17121:4;17079:21;19576:18;;;:9;:18;;;;;;17171:14;;17154:31;;;;;;;17202:19;;-1:-1:-1;17215:6:0;;-1:-1:-1;;;17215:6:0;;;;17214:7;17202:19;:35;;;;-1:-1:-1;17225:12:0;;-1:-1:-1;;;17225:12:0;;;;17202:35;17198:269;;;17254:32;17271:14;;17254:16;:32::i;:::-;17323:21;17363;;17359:97;;17405:35;17418:21;17405:12;:35::i;17198:269::-;17068:406;;17038:436::o;17482:784::-;11262:6;:13;;-1:-1:-1;;;;11262:13:0;-1:-1:-1;;;11262:13:0;;;17611:10:::1;::::0;11262:13;;17573:49:::1;::::0;17585:7;;17594:27:::1;::::0;17611:10:::1;;9509:11;17594:27;:::i;17573:49::-;17556:66:::0;-1:-1:-1;17633:14:0::1;17650:16;17556:66:::0;17650:7;:16:::1;:::i;:::-;17760;::::0;;17774:1:::1;17760:16:::0;;;;;::::1;::::0;;17633:33;;-1:-1:-1;17702:21:0::1;::::0;17677:22:::1;::::0;17760:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17760:16:0::1;17736:40;;17805:4;17787;17792:1;17787:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17787:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17831:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;17831:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;17787:7;;17831:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17821:4;17826:1;17821:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17821:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;17896:15:::1;::::0;17864:58:::1;::::0;17881:4:::1;::::0;17896:15:::1;17914:7:::0;17864:8:::1;:58::i;:::-;17933:15;::::0;:191:::1;::::0;-1:-1:-1;;;17933:191:0;;-1:-1:-1;;;;;17933:15:0;;::::1;::::0;:66:::1;::::0;:191:::1;::::0;18014:6;;17933:15:::1;::::0;18051:4;;18078::::1;::::0;18098:15:::1;::::0;17933:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18135:15;18177:14;18153:21;:38;;;;:::i;:::-;18246:10;::::0;18135:56;;-1:-1:-1;18204:54:0::1;::::0;18217:6;;18225:32:::1;::::0;18135:56;;18246:10:::1;;18225:11;:32::i;:::-;18204:12;:54::i;:::-;-1:-1:-1::0;;11298:6:0;:14;;-1:-1:-1;;;;11298:14:0;;;-1:-1:-1;;;;17482:784:0:o;18274:174::-;18351:11;;18384:12;;;18333;18384;;;;;;;;;;18333;-1:-1:-1;;;;;18351:11:0;;18375:7;;18351:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18332:65;;;18416:7;18408:32;;;;-1:-1:-1;;;18408:32:0;;16908:2:1;18408:32:0;;;16890:21:1;16947:2;16927:18;;;16920:30;-1:-1:-1;;;16966:18:1;;;16959:42;17018:18;;18408:32:0;16706:336:1;18456:504:0;18632:15;;18600:58;;18617:4;;-1:-1:-1;;;;;18632:15:0;18650:7;18600:8;:58::i;:::-;18701:15;;:251;;-1:-1:-1;;;18701:251:0;;18773:4;18701:251;;;17388:34:1;17438:18;;;17431:34;;;18701:15:0;17481:18:1;;;17474:34;;;17524:18;;;17517:34;;;17567:19;;;17560:44;18926:15:0;17620:19:1;;;17613:35;-1:-1:-1;;;;;18701:15:0;;;;:31;;18740:9;;17322:19:1;;18701:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:315;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1500:456::-;1577:6;1585;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:31;1745:5;1720:31;:::i;:::-;1770:5;-1:-1:-1;1827:2:1;1812:18;;1799:32;1840:33;1799:32;1840:33;:::i;:::-;1500:456;;1892:7;;-1:-1:-1;;;1946:2:1;1931:18;;;;1918:32;;1500:456::o;2150:247::-;2209:6;2262:2;2250:9;2241:7;2237:23;2233:32;2230:52;;;2278:1;2275;2268:12;2230:52;2317:9;2304:23;2336:31;2361:5;2336:31;:::i;2402:180::-;2461:6;2514:2;2502:9;2493:7;2489:23;2485:32;2482:52;;;2530:1;2527;2520:12;2482:52;-1:-1:-1;2553:23:1;;2402:180;-1:-1:-1;2402:180:1:o;2587:160::-;2652:20;;2708:13;;2701:21;2691:32;;2681:60;;2737:1;2734;2727:12;2681:60;2587:160;;;:::o;2752:163::-;2819:20;;2879:10;2868:22;;2858:33;;2848:61;;2905:1;2902;2895:12;2920:252;2984:6;2992;3045:2;3033:9;3024:7;3020:23;3016:32;3013:52;;;3061:1;3058;3051:12;3013:52;3084:26;3100:9;3084:26;:::i;:::-;3074:36;;3129:37;3162:2;3151:9;3147:18;3129:37;:::i;:::-;3119:47;;2920:252;;;;;:::o;3374:367::-;3437:8;3447:6;3501:3;3494:4;3486:6;3482:17;3478:27;3468:55;;3519:1;3516;3509:12;3468:55;-1:-1:-1;3542:20:1;;3585:18;3574:30;;3571:50;;;3617:1;3614;3607:12;3571:50;3654:4;3646:6;3642:17;3630:29;;3714:3;3707:4;3697:6;3694:1;3690:14;3682:6;3678:27;3674:38;3671:47;3668:67;;;3731:1;3728;3721:12;3668:67;3374:367;;;;;:::o;3746:505::-;3838:6;3846;3854;3907:2;3895:9;3886:7;3882:23;3878:32;3875:52;;;3923:1;3920;3913:12;3875:52;3963:9;3950:23;3996:18;3988:6;3985:30;3982:50;;;4028:1;4025;4018:12;3982:50;4067:70;4129:7;4120:6;4109:9;4105:22;4067:70;:::i;:::-;4156:8;;-1:-1:-1;4041:96:1;-1:-1:-1;4210:35:1;;-1:-1:-1;4241:2:1;4226:18;;4210:35;:::i;:::-;4200:45;;3746:505;;;;;:::o;4464:320::-;4537:6;4545;4553;4606:2;4594:9;4585:7;4581:23;4577:32;4574:52;;;4622:1;4619;4612:12;4574:52;4658:9;4645:23;4635:33;;4687:37;4720:2;4709:9;4705:18;4687:37;:::i;:::-;4677:47;;4743:35;4774:2;4763:9;4759:18;4743:35;:::i;4789:180::-;4845:6;4898:2;4886:9;4877:7;4873:23;4869:32;4866:52;;;4914:1;4911;4904:12;4866:52;4937:26;4953:9;4937:26;:::i;4974:256::-;5040:6;5048;5101:2;5089:9;5080:7;5076:23;5072:32;5069:52;;;5117:1;5114;5107:12;5069:52;5140:28;5158:9;5140:28;:::i;5235:248::-;5303:6;5311;5364:2;5352:9;5343:7;5339:23;5335:32;5332:52;;;5380:1;5377;5370:12;5332:52;-1:-1:-1;;5403:23:1;;;5473:2;5458:18;;;5445:32;;-1:-1:-1;5235:248:1:o;5488:505::-;5583:6;5591;5599;5652:2;5640:9;5631:7;5627:23;5623:32;5620:52;;;5668:1;5665;5658:12;5620:52;5708:9;5695:23;5741:18;5733:6;5730:30;5727:50;;;5773:1;5770;5763:12;5727:50;5812:70;5874:7;5865:6;5854:9;5850:22;5812:70;:::i;:::-;5901:8;;5786:96;;-1:-1:-1;5983:2:1;5968:18;;;;5955:32;;5488:505;-1:-1:-1;;;;5488:505:1:o;5998:388::-;6066:6;6074;6127:2;6115:9;6106:7;6102:23;6098:32;6095:52;;;6143:1;6140;6133:12;6095:52;6182:9;6169:23;6201:31;6226:5;6201:31;:::i;:::-;6251:5;-1:-1:-1;6308:2:1;6293:18;;6280:32;6321:33;6280:32;6321:33;:::i;:::-;6373:7;6363:17;;;5998:388;;;;;:::o;6391:127::-;6452:10;6447:3;6443:20;6440:1;6433:31;6483:4;6480:1;6473:15;6507:4;6504:1;6497:15;6523:422;6612:1;6655:5;6612:1;6669:270;6690:7;6680:8;6677:21;6669:270;;;6749:4;6745:1;6741:6;6737:17;6731:4;6728:27;6725:53;;;6758:18;;:::i;:::-;6808:7;6798:8;6794:22;6791:55;;;6828:16;;;;6791:55;6907:22;;;;6867:15;;;;6669:270;;;6673:3;6523:422;;;;;:::o;6950:806::-;6999:5;7029:8;7019:80;;-1:-1:-1;7070:1:1;7084:5;;7019:80;7118:4;7108:76;;-1:-1:-1;7155:1:1;7169:5;;7108:76;7200:4;7218:1;7213:59;;;;7286:1;7281:130;;;;7193:218;;7213:59;7243:1;7234:10;;7257:5;;;7281:130;7318:3;7308:8;7305:17;7302:43;;;7325:18;;:::i;:::-;-1:-1:-1;;7381:1:1;7367:16;;7396:5;;7193:218;;7495:2;7485:8;7482:16;7476:3;7470:4;7467:13;7463:36;7457:2;7447:8;7444:16;7439:2;7433:4;7430:12;7426:35;7423:77;7420:159;;;-1:-1:-1;7532:19:1;;;7564:5;;7420:159;7611:34;7636:8;7630:4;7611:34;:::i;:::-;7681:6;7677:1;7673:6;7669:19;7660:7;7657:32;7654:58;;;7692:18;;:::i;:::-;7730:20;;6950:806;-1:-1:-1;;;6950:806:1:o;7761:140::-;7819:5;7848:47;7889:4;7879:8;7875:19;7869:4;7848:47;:::i;7906:168::-;7979:9;;;8010;;8027:15;;;8021:22;;8007:37;7997:71;;8048:18;;:::i;8079:125::-;8144:9;;;8165:10;;;8162:36;;;8178:18;;:::i;8558:184::-;8628:6;8681:2;8669:9;8660:7;8656:23;8652:32;8649:52;;;8697:1;8694;8687:12;8649:52;-1:-1:-1;8720:16:1;;8558:184;-1:-1:-1;8558:184:1:o;9088:127::-;9149:10;9144:3;9140:20;9137:1;9130:31;9180:4;9177:1;9170:15;9204:4;9201:1;9194:15;9560:399;9762:2;9744:21;;;9801:2;9781:18;;;9774:30;9840:34;9835:2;9820:18;;9813:62;-1:-1:-1;;;9906:2:1;9891:18;;9884:33;9949:3;9934:19;;9560:399::o;14099:217::-;14139:1;14165;14155:132;;14209:10;14204:3;14200:20;14197:1;14190:31;14244:4;14241:1;14234:15;14272:4;14269:1;14262:15;14155:132;-1:-1:-1;14301:9:1;;14099:217::o;14728:175::-;14796:10;14839;;;14827;;;14823:27;;14862:12;;;14859:38;;;14877:18;;:::i;:::-;14859:38;14728:175;;;;:::o;14908:128::-;14975:9;;;14996:11;;;14993:37;;;15010:18;;:::i;15173:251::-;15243:6;15296:2;15284:9;15275:7;15271:23;15267:32;15264:52;;;15312:1;15309;15302:12;15264:52;15344:9;15338:16;15363:31;15388:5;15363:31;:::i;15429:980::-;15691:4;15739:3;15728:9;15724:19;15770:6;15759:9;15752:25;15796:2;15834:6;15829:2;15818:9;15814:18;15807:34;15877:3;15872:2;15861:9;15857:18;15850:31;15901:6;15936;15930:13;15967:6;15959;15952:22;16005:3;15994:9;15990:19;15983:26;;16044:2;16036:6;16032:15;16018:29;;16065:1;16075:195;16089:6;16086:1;16083:13;16075:195;;;16154:13;;-1:-1:-1;;;;;16150:39:1;16138:52;;16245:15;;;;16210:12;;;;16186:1;16104:9;16075:195;;;-1:-1:-1;;;;;;;16326:32:1;;;;16321:2;16306:18;;16299:60;-1:-1:-1;;;16390:3:1;16375:19;16368:35;16287:3;15429:980;-1:-1:-1;;;15429:980:1:o;16414:287::-;16543:3;16581:6;16575:13;16597:66;16656:6;16651:3;16644:4;16636:6;16632:17;16597:66;:::i;:::-;16679:16;;;;;16414:287;-1:-1:-1;;16414:287:1:o;17659:306::-;17747:6;17755;17763;17816:2;17804:9;17795:7;17791:23;17787:32;17784:52;;;17832:1;17829;17822:12;17784:52;17861:9;17855:16;17845:26;;17911:2;17900:9;17896:18;17890:25;17880:35;;17955:2;17944:9;17940:18;17934:25;17924:35;;17659:306;;;;;:::o
Swarm Source
ipfs://4d6dcf02822f87318d6885cfd2e8a308d0b8e82c40be004391602794e3125043
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.