ERC-20
Overview
Max Total Supply
69,000,000 SDR
Holders
113
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SDR
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-19 */ // SPDX-License-Identifier: MIT /* Telegram: https://t.me/SDRtoken X: https://X.Com/SDR_Token Website: https://StrategicDegenReserve.com */ pragma solidity ^0.8.22; interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, 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 9; } 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 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 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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, _allowances[owner][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = _allowances[owner][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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 _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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } 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); } } contract SDR is ERC20, Ownable { IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public uniswapPair; address public immutable feeReceiver; uint256 private maxWalletSize = 1380000 * 1e9; uint256 private contractSwapMax = 1380000 * 1e9; uint256 private contractSwapMin = 13800 * 1e9; uint32 private _buyCount; uint32 private _sellCount; uint32 private _lastSellBlock; uint256 private _startBlock; uint32 private _preventSwapBefore = 40; uint32 private _lowerFeesAt = 80; uint32 private _finalBuyFee = 10; uint32 private _finalSellFee =10; bool private _inSwap; uint256 public buyFeePercent; uint256 public sellFeePercent; mapping (address => bool) private excludedFromTxLimits; constructor() ERC20("Strategic Degen Reserve", "SDR") payable { uint256 totalSupply = 69000000 * 1e9; feeReceiver = msg.sender; buyFeePercent = 10; sellFeePercent = 10; excludedFromTxLimits[feeReceiver] = true; excludedFromTxLimits[msg.sender] = true; excludedFromTxLimits[address(this)] = true; excludedFromTxLimits[address(0xdead)] = true; _approve(address(this), address(_router), totalSupply); _approve(msg.sender, address(_router), totalSupply); _mint(msg.sender, totalSupply); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "Transfer from the zero address not allowed."); require(to != address(0), "Transfer to the zero address not allowed."); require(amount > 0, 'Transfer amount must be greater than zero.'); bool excluded = excludedFromTxLimits[from] || excludedFromTxLimits[to]; require(uniswapPair != address(0) || excluded, "Liquidity pair not yet created."); bool isSell = to == uniswapPair; bool isBuy = from == uniswapPair; if(isBuy && !excluded){ require(balanceOf(to) + amount <= maxWalletSize || to == address(_router), "Max wallet exceeded"); if (block.number == _startBlock) { require(_buyCount<=_lowerFeesAt); } if(_buyCount <= _lowerFeesAt) _buyCount++; if(_buyCount == _lowerFeesAt){ buyFeePercent = _finalBuyFee; sellFeePercent = _finalSellFee; } } uint256 contractTokenBalance = balanceOf(address(this)); if (isSell && !_inSwap && contractTokenBalance >= contractSwapMin && !excluded && _buyCount > _preventSwapBefore ) { if (block.number > _lastSellBlock) _sellCount = 0; require(_sellCount < 3, "Only 3 sells per block!"); _inSwap = true; swapTokensForEth(min(amount*15/10, min(contractTokenBalance, contractSwapMax))); _inSwap = false; uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) sendETHToFee(contractETHBalance); _sellCount++; _lastSellBlock = uint32(block.number); } uint256 fee = isBuy ? buyFeePercent : sellFeePercent; if (fee > 0 && !excluded && !_inSwap && (isBuy || isSell)) { uint256 fees = amount * fee / 100; if (fees > 0){ super._transfer(from, address(this), fees); amount-= fees; } } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), tokenAmount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { payable(feeReceiver).transfer(amount); } function startTrading() external payable onlyOwner { super._transfer(msg.sender, address(this), 66930000000000000); _router.addLiquidityETH{value: msg.value}(address(this), 58650000000000000, 0, 0, msg.sender, block.timestamp); uniswapPair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH()); _startBlock = block.number; } function setSwapFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { require(newBuyFee <= 10 && newSellFee <= 10, 'New fee must be lower.'); buyFeePercent = newBuyFee; sellFeePercent = newSellFee; _finalBuyFee = uint32(newBuyFee); _finalSellFee = uint32(newSellFee); } function removeLimits() external onlyOwner { maxWalletSize = totalSupply(); } function updateStructure(uint256 maxAmount, uint256 minAmount) external onlyOwner { contractSwapMax = maxAmount; contractSwapMin = minAmount; } function sweepStuckETH() external onlyOwner { payable(feeReceiver).transfer(address(this).balance); } function transferStuckToken(IERC20 token, uint256 amount) external onlyOwner { require(amount <= token.balanceOf(address(this)), 'Not enough tokens.'); token.transfer(feeReceiver, amount); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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"},{"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":"buyFeePercent","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":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sweepStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"}],"name":"updateStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6604e71a49ca40006007819055600855650c8d10191000600955600c80546001600160801b0319166c0a0000000a0000005000000028179055601760a09081527f53747261746567696320446567656e205265736572766500000000000000000060c052610120604052600360e08181526229a22960e91b61010052906100868382610464565b5060046100938282610464565b5050506100ac6100a761016f60201b60201c565b610173565b336080819052600a600d819055600e555f908152600f60205260408082208054600160ff19918216811790925530808552928420805482168317905561dead9093527f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f1080549093161790915566f52322698080009061014090737a250d5630b4cf539739df2c5dacb4c659f2488d836101c4565b61015f33737a250d5630b4cf539739df2c5dacb4c659f2488d836101c4565b61016933826102ec565b50610543565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03831661022b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b03821661028c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610222565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166103425760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610222565b8060025f828254610353919061051e565b90915550506001600160a01b0382165f908152602081905260408120805483929061037f90849061051e565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806103f557607f821691505b60208210810361041357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103c857805f5260205f20601f840160051c8101602085101561043e5750805b601f840160051c820191505b8181101561045d575f815560010161044a565b5050505050565b81516001600160401b0381111561047d5761047d6103cd565b6104918161048b84546103e1565b84610419565b6020601f8211600181146104c3575f83156104ac5750848201515b5f19600385901b1c1916600184901b17845561045d565b5f84815260208120601f198516915b828110156104f257878501518255602094850194600190920191016104d2565b508482101561050f57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082018082111561053d57634e487b7160e01b5f52601160045260245ffd5b92915050565b608051611b1e6105705f395f818161037c015281816108f501528181610b8b015261177a0152611b1e5ff3fe60806040526004361061014a575f3560e01c8063751039fc116100b3578063c7003cd01161006d578063c7003cd01461039e578063c816841b146103b2578063cc3fdd4c146103d1578063dd62ed3e146103e6578063e0d30d9b1461042a578063f2fde38b1461043f575f80fd5b8063751039fc146102d45780638da5cb5b146102e857806395d89b4114610319578063a457c2d71461032d578063a9059cbb1461034c578063b3f006741461036b575f80fd5b80633950935111610104578063395093511461021057806346bc42581461022f5780634768e6151461024e57806359acbe4e1461026d57806370a082311461028c578063715018a6146102c0575f80fd5b806306fdde0314610155578063095ea7b31461017f57806318160ddd146101ae57806323b872dd146101cc578063293230b8146101eb578063313ce567146101f5575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016961045e565b60405161017691906117c4565b60405180910390f35b34801561018a575f80fd5b5061019e61019936600461180d565b6104ee565b6040519015158152602001610176565b3480156101b9575f80fd5b506002545b604051908152602001610176565b3480156101d7575f80fd5b5061019e6101e6366004611837565b610507565b6101f361052a565b005b348015610200575f80fd5b5060405160098152602001610176565b34801561021b575f80fd5b5061019e61022a36600461180d565b610797565b34801561023a575f80fd5b506101f3610249366004611875565b6107d5565b348015610259575f80fd5b506101f361026836600461180d565b61080a565b348015610278575f80fd5b506101f3610287366004611875565b610973565b348015610297575f80fd5b506101be6102a6366004611895565b6001600160a01b03165f9081526020819052604090205490565b3480156102cb575f80fd5b506101f3610a40565b3480156102df575f80fd5b506101f3610a75565b3480156102f3575f80fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610176565b348015610324575f80fd5b50610169610aa7565b348015610338575f80fd5b5061019e61034736600461180d565b610ab6565b348015610357575f80fd5b5061019e61036636600461180d565b610b47565b348015610376575f80fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b3480156103a9575f80fd5b506101f3610b54565b3480156103bd575f80fd5b50600654610301906001600160a01b031681565b3480156103dc575f80fd5b506101be600d5481565b3480156103f1575f80fd5b506101be6104003660046118b0565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610435575f80fd5b506101be600e5481565b34801561044a575f80fd5b506101f3610459366004611895565b610bd3565b60606003805461046d906118e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610499906118e7565b80156104e45780601f106104bb576101008083540402835291602001916104e4565b820191905f5260205f20905b8154815290600101906020018083116104c757829003601f168201915b5050505050905090565b5f336104fb818585610c6b565b60019150505b92915050565b5f33610514858285610d8e565b61051f858585610e1e565b506001949350505050565b6005546001600160a01b0316331461055d5760405162461bcd60e51b81526004016105549061191f565b60405180910390fd5b61056f333066edc87afad120006113b0565b60405163f305d71960e01b815230600482015266d05ddd4013a00060248201525f6044820181905260648201523360848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af11580156105e5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061060a9190611954565b505050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610681919061197f565b6001600160a01b031663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610704919061197f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561074d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610771919061197f565b600680546001600160a01b0319166001600160a01b039290921691909117905543600b55565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906104fb90829086906107d09087906119ae565b610c6b565b6005546001600160a01b031633146107ff5760405162461bcd60e51b81526004016105549061191f565b600891909155600955565b6005546001600160a01b031633146108345760405162461bcd60e51b81526004016105549061191f565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610876573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089a91906119c1565b8111156108de5760405162461bcd60e51b81526020600482015260126024820152712737ba1032b737bab3b4103a37b5b2b7399760711b6044820152606401610554565b60405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af115801561094a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096e91906119d8565b505050565b6005546001600160a01b0316331461099d5760405162461bcd60e51b81526004016105549061191f565b600a82111580156109af5750600a8111155b6109f45760405162461bcd60e51b81526020600482015260166024820152752732bb903332b29036bab9ba103132903637bbb2b91760511b6044820152606401610554565b600d829055600e819055600c80546fffffffffffffffff00000000000000001916600160401b63ffffffff9485160263ffffffff60601b191617600160601b9390921692909202179055565b6005546001600160a01b03163314610a6a5760405162461bcd60e51b81526004016105549061191f565b610a735f61157c565b565b6005546001600160a01b03163314610a9f5760405162461bcd60e51b81526004016105549061191f565b600254600755565b60606004805461046d906118e7565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919083811015610b3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610554565b61051f8286868403610c6b565b5f336104fb818585610e1e565b6005546001600160a01b03163314610b7e5760405162461bcd60e51b81526004016105549061191f565b6040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016904780156108fc02915f818181858888f19350505050158015610bd0573d5f803e3d5ffd5b50565b6005546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016105549061191f565b6001600160a01b038116610c625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610554565b610bd08161157c565b6001600160a01b038316610ccd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610554565b6001600160a01b038216610d2e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610554565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610e185781811015610e0b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610554565b610e188484848403610c6b565b50505050565b6001600160a01b038316610e885760405162461bcd60e51b815260206004820152602b60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373206e60448201526a37ba1030b63637bbb2b21760a91b6064820152608401610554565b6001600160a01b038216610ef05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220746f20746865207a65726f2061646472657373206e6f746044820152681030b63637bbb2b21760b91b6064820152608401610554565b5f8111610f525760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152693a3430b7103d32b9379760b11b6064820152608401610554565b6001600160a01b0383165f908152600f602052604081205460ff1680610f8f57506001600160a01b0383165f908152600f602052604090205460ff165b6006549091506001600160a01b0316151580610fa85750805b610ff45760405162461bcd60e51b815260206004820152601f60248201527f4c69717569646974792070616972206e6f742079657420637265617465642e006044820152606401610554565b6006546001600160a01b03908116848216811491861614808015611016575082155b1561116d576007548461103d876001600160a01b03165f9081526020819052604090205490565b61104791906119ae565b11158061107057506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b6110b25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610554565b600b5443036110dd57600c54600a5463ffffffff6401000000009092048216911611156110dd575f80fd5b600c54600a5463ffffffff640100000000909204821691161161112f57600a805463ffffffff16905f61110f836119f7565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b600c54600a5463ffffffff640100000000909204821691160361116d57600c5463ffffffff600160401b82048116600d55600160601b90910416600e555b305f908152602081905260409020548280156111935750600c54600160801b900460ff16155b80156111a157506009548110155b80156111ab575083155b80156111c45750600c54600a5463ffffffff9182169116115b1561131657600a54600160401b900463ffffffff164311156111f257600a805467ffffffff00000000191690555b600a54600364010000000090910463ffffffff16106112535760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610554565b600c805460ff60801b1916600160801b179055611299611294600a61127988600f611a1b565b6112839190611a32565b61128f846008546115cd565b6115cd565b6115e4565b600c805460ff60801b191690554780156112b6576112b68161176d565b600a8054640100000000900463ffffffff169060046112d4836119f7565b91906101000a81548163ffffffff021916908363ffffffff1602179055505043600a60086101000a81548163ffffffff021916908363ffffffff160217905550505b5f8261132457600e54611328565b600d545b90505f81118015611337575084155b801561134d5750600c54600160801b900460ff16155b801561135d5750828061135d5750835b1561139b575f606461136f8389611a1b565b6113799190611a32565b905080156113995761138c8930836113b0565b6113968188611a51565b96505b505b6113a68888886113b0565b5050505050505050565b6001600160a01b0383166114145760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610554565b6001600160a01b0382166114765760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610554565b6001600160a01b0383165f90815260208190526040902054818110156114ed5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610554565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906115239084906119ae565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156f91815260200190565b60405180910390a3610e18565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8183116115db57826115dd565b815b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061161757611617611a64565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ab919061197f565b816001815181106116be576116be611a64565b60200260200101906001600160a01b031690816001600160a01b0316815250506116fd30737a250d5630b4cf539739df2c5dacb4c659f2488d84610c6b565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061173c9085905f90869030904290600401611a78565b5f604051808303815f87803b158015611753575f80fd5b505af1158015611765573d5f803e3d5ffd5b505050505050565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083905f818181858888f193505050501580156117c0573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610bd0575f80fd5b5f806040838503121561181e575f80fd5b8235611829816117f9565b946020939093013593505050565b5f805f60608486031215611849575f80fd5b8335611854816117f9565b92506020840135611864816117f9565b929592945050506040919091013590565b5f8060408385031215611886575f80fd5b50508035926020909101359150565b5f602082840312156118a5575f80fd5b81356115dd816117f9565b5f80604083850312156118c1575f80fd5b82356118cc816117f9565b915060208301356118dc816117f9565b809150509250929050565b600181811c908216806118fb57607f821691505b60208210810361191957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611966575f80fd5b5050815160208301516040909301519094929350919050565b5f6020828403121561198f575f80fd5b81516115dd816117f9565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105015761050161199a565b5f602082840312156119d1575f80fd5b5051919050565b5f602082840312156119e8575f80fd5b815180151581146115dd575f80fd5b5f63ffffffff821663ffffffff8103611a1257611a1261199a565b60010192915050565b80820281158282048414176105015761050161199a565b5f82611a4c57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105015761050161199a565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611ac85783516001600160a01b0316835260209384019390920191600101611aa1565b50506001600160a01b03959095166060840152505060800152939250505056fea264697066735822122007bb4ef3cb044f0f29b423dd98ce88ca0414e6eca221e64d1e2e448e38c820e864736f6c634300081a0033
Deployed Bytecode
0x60806040526004361061014a575f3560e01c8063751039fc116100b3578063c7003cd01161006d578063c7003cd01461039e578063c816841b146103b2578063cc3fdd4c146103d1578063dd62ed3e146103e6578063e0d30d9b1461042a578063f2fde38b1461043f575f80fd5b8063751039fc146102d45780638da5cb5b146102e857806395d89b4114610319578063a457c2d71461032d578063a9059cbb1461034c578063b3f006741461036b575f80fd5b80633950935111610104578063395093511461021057806346bc42581461022f5780634768e6151461024e57806359acbe4e1461026d57806370a082311461028c578063715018a6146102c0575f80fd5b806306fdde0314610155578063095ea7b31461017f57806318160ddd146101ae57806323b872dd146101cc578063293230b8146101eb578063313ce567146101f5575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016961045e565b60405161017691906117c4565b60405180910390f35b34801561018a575f80fd5b5061019e61019936600461180d565b6104ee565b6040519015158152602001610176565b3480156101b9575f80fd5b506002545b604051908152602001610176565b3480156101d7575f80fd5b5061019e6101e6366004611837565b610507565b6101f361052a565b005b348015610200575f80fd5b5060405160098152602001610176565b34801561021b575f80fd5b5061019e61022a36600461180d565b610797565b34801561023a575f80fd5b506101f3610249366004611875565b6107d5565b348015610259575f80fd5b506101f361026836600461180d565b61080a565b348015610278575f80fd5b506101f3610287366004611875565b610973565b348015610297575f80fd5b506101be6102a6366004611895565b6001600160a01b03165f9081526020819052604090205490565b3480156102cb575f80fd5b506101f3610a40565b3480156102df575f80fd5b506101f3610a75565b3480156102f3575f80fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610176565b348015610324575f80fd5b50610169610aa7565b348015610338575f80fd5b5061019e61034736600461180d565b610ab6565b348015610357575f80fd5b5061019e61036636600461180d565b610b47565b348015610376575f80fd5b506103017f000000000000000000000000a51f510aac6cb262b0f0a75f3d968f55dd1be90281565b3480156103a9575f80fd5b506101f3610b54565b3480156103bd575f80fd5b50600654610301906001600160a01b031681565b3480156103dc575f80fd5b506101be600d5481565b3480156103f1575f80fd5b506101be6104003660046118b0565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610435575f80fd5b506101be600e5481565b34801561044a575f80fd5b506101f3610459366004611895565b610bd3565b60606003805461046d906118e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610499906118e7565b80156104e45780601f106104bb576101008083540402835291602001916104e4565b820191905f5260205f20905b8154815290600101906020018083116104c757829003601f168201915b5050505050905090565b5f336104fb818585610c6b565b60019150505b92915050565b5f33610514858285610d8e565b61051f858585610e1e565b506001949350505050565b6005546001600160a01b0316331461055d5760405162461bcd60e51b81526004016105549061191f565b60405180910390fd5b61056f333066edc87afad120006113b0565b60405163f305d71960e01b815230600482015266d05ddd4013a00060248201525f6044820181905260648201523360848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af11580156105e5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061060a9190611954565b505050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610681919061197f565b6001600160a01b031663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610704919061197f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561074d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610771919061197f565b600680546001600160a01b0319166001600160a01b039290921691909117905543600b55565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906104fb90829086906107d09087906119ae565b610c6b565b6005546001600160a01b031633146107ff5760405162461bcd60e51b81526004016105549061191f565b600891909155600955565b6005546001600160a01b031633146108345760405162461bcd60e51b81526004016105549061191f565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610876573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089a91906119c1565b8111156108de5760405162461bcd60e51b81526020600482015260126024820152712737ba1032b737bab3b4103a37b5b2b7399760711b6044820152606401610554565b60405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000a51f510aac6cb262b0f0a75f3d968f55dd1be902811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af115801561094a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096e91906119d8565b505050565b6005546001600160a01b0316331461099d5760405162461bcd60e51b81526004016105549061191f565b600a82111580156109af5750600a8111155b6109f45760405162461bcd60e51b81526020600482015260166024820152752732bb903332b29036bab9ba103132903637bbb2b91760511b6044820152606401610554565b600d829055600e819055600c80546fffffffffffffffff00000000000000001916600160401b63ffffffff9485160263ffffffff60601b191617600160601b9390921692909202179055565b6005546001600160a01b03163314610a6a5760405162461bcd60e51b81526004016105549061191f565b610a735f61157c565b565b6005546001600160a01b03163314610a9f5760405162461bcd60e51b81526004016105549061191f565b600254600755565b60606004805461046d906118e7565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919083811015610b3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610554565b61051f8286868403610c6b565b5f336104fb818585610e1e565b6005546001600160a01b03163314610b7e5760405162461bcd60e51b81526004016105549061191f565b6040516001600160a01b037f000000000000000000000000a51f510aac6cb262b0f0a75f3d968f55dd1be90216904780156108fc02915f818181858888f19350505050158015610bd0573d5f803e3d5ffd5b50565b6005546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016105549061191f565b6001600160a01b038116610c625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610554565b610bd08161157c565b6001600160a01b038316610ccd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610554565b6001600160a01b038216610d2e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610554565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610e185781811015610e0b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610554565b610e188484848403610c6b565b50505050565b6001600160a01b038316610e885760405162461bcd60e51b815260206004820152602b60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373206e60448201526a37ba1030b63637bbb2b21760a91b6064820152608401610554565b6001600160a01b038216610ef05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220746f20746865207a65726f2061646472657373206e6f746044820152681030b63637bbb2b21760b91b6064820152608401610554565b5f8111610f525760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152693a3430b7103d32b9379760b11b6064820152608401610554565b6001600160a01b0383165f908152600f602052604081205460ff1680610f8f57506001600160a01b0383165f908152600f602052604090205460ff165b6006549091506001600160a01b0316151580610fa85750805b610ff45760405162461bcd60e51b815260206004820152601f60248201527f4c69717569646974792070616972206e6f742079657420637265617465642e006044820152606401610554565b6006546001600160a01b03908116848216811491861614808015611016575082155b1561116d576007548461103d876001600160a01b03165f9081526020819052604090205490565b61104791906119ae565b11158061107057506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b6110b25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610554565b600b5443036110dd57600c54600a5463ffffffff6401000000009092048216911611156110dd575f80fd5b600c54600a5463ffffffff640100000000909204821691161161112f57600a805463ffffffff16905f61110f836119f7565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b600c54600a5463ffffffff640100000000909204821691160361116d57600c5463ffffffff600160401b82048116600d55600160601b90910416600e555b305f908152602081905260409020548280156111935750600c54600160801b900460ff16155b80156111a157506009548110155b80156111ab575083155b80156111c45750600c54600a5463ffffffff9182169116115b1561131657600a54600160401b900463ffffffff164311156111f257600a805467ffffffff00000000191690555b600a54600364010000000090910463ffffffff16106112535760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610554565b600c805460ff60801b1916600160801b179055611299611294600a61127988600f611a1b565b6112839190611a32565b61128f846008546115cd565b6115cd565b6115e4565b600c805460ff60801b191690554780156112b6576112b68161176d565b600a8054640100000000900463ffffffff169060046112d4836119f7565b91906101000a81548163ffffffff021916908363ffffffff1602179055505043600a60086101000a81548163ffffffff021916908363ffffffff160217905550505b5f8261132457600e54611328565b600d545b90505f81118015611337575084155b801561134d5750600c54600160801b900460ff16155b801561135d5750828061135d5750835b1561139b575f606461136f8389611a1b565b6113799190611a32565b905080156113995761138c8930836113b0565b6113968188611a51565b96505b505b6113a68888886113b0565b5050505050505050565b6001600160a01b0383166114145760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610554565b6001600160a01b0382166114765760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610554565b6001600160a01b0383165f90815260208190526040902054818110156114ed5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610554565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906115239084906119ae565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156f91815260200190565b60405180910390a3610e18565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8183116115db57826115dd565b815b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061161757611617611a64565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ab919061197f565b816001815181106116be576116be611a64565b60200260200101906001600160a01b031690816001600160a01b0316815250506116fd30737a250d5630b4cf539739df2c5dacb4c659f2488d84610c6b565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061173c9085905f90869030904290600401611a78565b5f604051808303815f87803b158015611753575f80fd5b505af1158015611765573d5f803e3d5ffd5b505050505050565b6040516001600160a01b037f000000000000000000000000a51f510aac6cb262b0f0a75f3d968f55dd1be902169082156108fc029083905f818181858888f193505050501580156117c0573d5f803e3d5ffd5b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610bd0575f80fd5b5f806040838503121561181e575f80fd5b8235611829816117f9565b946020939093013593505050565b5f805f60608486031215611849575f80fd5b8335611854816117f9565b92506020840135611864816117f9565b929592945050506040919091013590565b5f8060408385031215611886575f80fd5b50508035926020909101359150565b5f602082840312156118a5575f80fd5b81356115dd816117f9565b5f80604083850312156118c1575f80fd5b82356118cc816117f9565b915060208301356118dc816117f9565b809150509250929050565b600181811c908216806118fb57607f821691505b60208210810361191957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611966575f80fd5b5050815160208301516040909301519094929350919050565b5f6020828403121561198f575f80fd5b81516115dd816117f9565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105015761050161199a565b5f602082840312156119d1575f80fd5b5051919050565b5f602082840312156119e8575f80fd5b815180151581146115dd575f80fd5b5f63ffffffff821663ffffffff8103611a1257611a1261199a565b60010192915050565b80820281158282048414176105015761050161199a565b5f82611a4c57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105015761050161199a565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611ac85783516001600160a01b0316835260209384019390920191600101611aa1565b50506001600160a01b03959095166060840152505060800152939250505056fea264697066735822122007bb4ef3cb044f0f29b423dd98ce88ca0414e6eca221e64d1e2e448e38c820e864736f6c634300081a0033
Deployed Bytecode Sourcemap
8439:5848:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2523:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3454:201;;;;;;;;;;-1:-1:-1;3454:201:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;3454:201:0;945:187:1;2843:108:0;;;;;;;;;;-1:-1:-1;2931:12:0;;2843:108;;;1283:25:1;;;1271:2;1256:18;2843:108:0;1137:177:1;3663:295:0;;;;;;;;;;-1:-1:-1;3663:295:0;;;;;:::i;:::-;;:::i;12870:389::-;;;:::i;:::-;;2743:92;;;;;;;;;;-1:-1:-1;2743:92:0;;2826:1;1974:36:1;;1962:2;1947:18;2743:92:0;1832:184:1;3966:240:0;;;;;;;;;;-1:-1:-1;3966:240:0;;;;;:::i;:::-;;:::i;13721:182::-;;;;;;;;;;-1:-1:-1;13721:182:0;;;;;:::i;:::-;;:::i;14034:213::-;;;;;;;;;;-1:-1:-1;14034:213:0;;;;;:::i;:::-;;:::i;13267:331::-;;;;;;;;;;-1:-1:-1;13267:331:0;;;;;:::i;:::-;;:::i;2959:127::-;;;;;;;;;;-1:-1:-1;2959:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3060:18:0;3033:7;3060:18;;;;;;;;;;;;2959:127;7921:103;;;;;;;;;;;;;:::i;13606:107::-;;;;;;;;;;;;;:::i;7698:87::-;;;;;;;;;;-1:-1:-1;7771:6:0;;-1:-1:-1;;;;;7771:6:0;7698:87;;;-1:-1:-1;;;;;3174:32:1;;;3156:51;;3144:2;3129:18;7698:87:0;3010:203:1;2631:104:0;;;;;;;;;;;;;:::i;4214:438::-;;;;;;;;;;-1:-1:-1;4214:438:0;;;;;:::i;:::-;;:::i;3094:193::-;;;;;;;;;;-1:-1:-1;3094:193:0;;;;;:::i;:::-;;:::i;8627:36::-;;;;;;;;;;;;;;;13911:115;;;;;;;;;;;;;:::i;8594:26::-;;;;;;;;;;-1:-1:-1;8594:26:0;;;;-1:-1:-1;;;;;8594:26:0;;;9156:28;;;;;;;;;;;;;;;;3295:151;;;;;;;;;;-1:-1:-1;3295:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3411:18:0;;;3384:7;3411:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3295:151;9191:29;;;;;;;;;;;;;;;;8032:201;;;;;;;;;;-1:-1:-1;8032:201:0;;;;;:::i;:::-;;:::i;2523:100::-;2577:13;2610:5;2603:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2523:100;:::o;3454:201::-;3537:4;1067:10;3593:32;1067:10;3609:7;3618:6;3593:8;:32::i;:::-;3643:4;3636:11;;;3454:201;;;;;:::o;3663:295::-;3794:4;1067:10;3852:38;3868:4;1067:10;3883:6;3852:15;:38::i;:::-;3901:27;3911:4;3917:2;3921:6;3901:9;:27::i;:::-;-1:-1:-1;3946:4:0;;3663:295;-1:-1:-1;;;;3663:295:0:o;12870:389::-;7771:6;;-1:-1:-1;;;;;7771:6:0;1067:10;7833:23;7825:68;;;;-1:-1:-1;;;7825:68:0;;;;;;;:::i;:::-;;;;;;;;;12932:61:::1;12948:10;12968:4;12975:17;12932:15;:61::i;:::-;13004:110;::::0;-1:-1:-1;;;13004:110:0;;13054:4:::1;13004:110;::::0;::::1;4684:51:1::0;13061:17:0::1;4751:18:1::0;;;4744:34;13080:1:0::1;4794:18:1::0;;;4787:34;;;4837:18;;;4830:34;13086:10:0::1;4880:19:1::0;;;4873:61;13098:15:0::1;4950:19:1::0;;;4943:35;8542:42:0::1;::::0;13004:23:::1;::::0;13035:9:::1;::::0;4656:19:1;;13004:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8542:42;-1:-1:-1::0;;;;;13157:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13139:44:0::1;;13192:4;8542:42;-1:-1:-1::0;;;;;13199:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13139:75;::::0;-1:-1:-1;;;;;;13139:75:0::1;::::0;;;;;;-1:-1:-1;;;;;5898:32:1;;;13139:75:0::1;::::0;::::1;5880:51:1::0;5967:32;;5947:18;;;5940:60;5853:18;;13139:75:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13125:11;:89:::0;;-1:-1:-1;;;;;;13125:89:0::1;-1:-1:-1::0;;;;;13125:89:0;;;::::1;::::0;;;::::1;::::0;;13239:12:::1;13225:11;:26:::0;12870:389::o;3966:240::-;1067:10;4054:4;4135:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4135:27:0;;;;;;;;;;4054:4;;1067:10;4110:66;;1067:10;;4135:27;;:40;;4165:10;;4135:40;:::i;:::-;4110:8;:66::i;13721:182::-;7771:6;;-1:-1:-1;;;;;7771:6:0;1067:10;7833:23;7825:68;;;;-1:-1:-1;;;7825:68:0;;;;;;;:::i;:::-;13830:15:::1;:27:::0;;;;13868:15:::1;:27:::0;13721:182::o;14034:213::-;7771:6;;-1:-1:-1;;;;;7771:6:0;1067:10;7833:23;7825:68;;;;-1:-1:-1;;;7825:68:0;;;;;;;:::i;:::-;14140:30:::1;::::0;-1:-1:-1;;;14140:30:0;;14164:4:::1;14140:30;::::0;::::1;3156:51:1::0;-1:-1:-1;;;;;14140:15:0;::::1;::::0;::::1;::::0;3129:18:1;;14140:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14130:6;:40;;14122:71;;;::::0;-1:-1:-1;;;14122:71:0;;6710:2:1;14122:71:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;-1:-1:-1;;;6768:18:1;;;6761:48;6826:18;;14122:71:0::1;6508:342:1::0;14122:71:0::1;14204:35;::::0;-1:-1:-1;;;14204:35:0;;-1:-1:-1;;;;;14219:11:0::1;7047:32:1::0;;14204:35:0::1;::::0;::::1;7029:51:1::0;7096:18;;;7089:34;;;14204:14:0;::::1;::::0;::::1;::::0;7002:18:1;;14204:35:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14034:213:::0;;:::o;13267:331::-;7771:6;;-1:-1:-1;;;;;7771:6:0;1067:10;7833:23;7825:68;;;;-1:-1:-1;;;7825:68:0;;;;;;;:::i;:::-;13378:2:::1;13365:9;:15;;:35;;;;;13398:2;13384:10;:16;;13365:35;13357:70;;;::::0;-1:-1:-1;;;13357:70:0;;7618:2:1;13357:70:0::1;::::0;::::1;7600:21:1::0;7657:2;7637:18;;;7630:30;-1:-1:-1;;;7676:18:1;;;7669:52;7738:18;;13357:70:0::1;7416:346:1::0;13357:70:0::1;13439:13;:25:::0;;;13475:14:::1;:27:::0;;;13513:12:::1;:32:::0;;-1:-1:-1;;13556:34:0;-1:-1:-1;;;13513:32:0::1;::::0;;::::1;;-1:-1:-1::0;;;;13556:34:0;;-1:-1:-1;;;13556:34:0;;;::::1;::::0;;;::::1;;::::0;;13267:331::o;7921:103::-;7771:6;;-1:-1:-1;;;;;7771:6:0;1067:10;7833:23;7825:68;;;;-1:-1:-1;;;7825:68:0;;;;;;;:::i;:::-;7986:30:::1;8013:1;7986:18;:30::i;:::-;7921:103::o:0;13606:107::-;7771:6;;-1:-1:-1;;;;;7771:6:0;1067:10;7833:23;7825:68;;;;-1:-1:-1;;;7825:68:0;;;;;;;:::i;:::-;2931:12;;13676:13:::1;:29:::0;13606:107::o;2631:104::-;2687:13;2720:7;2713:14;;;;;:::i;4214:438::-;1067:10;4307:4;4390:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4390:27:0;;;;;;;;;;4307:4;;1067:10;4436:35;;;;4428:85;;;;-1:-1:-1;;;4428:85:0;;7969:2:1;4428:85:0;;;7951:21:1;8008:2;7988:18;;;7981:30;8047:34;8027:18;;;8020:62;-1:-1:-1;;;8098:18:1;;;8091:35;8143:19;;4428:85:0;7767:401:1;4428:85:0;4549:60;4558:5;4565:7;4593:15;4574:16;:34;4549:8;:60::i;3094:193::-;3173:4;1067:10;3229:28;1067:10;3246:2;3250:6;3229:9;:28::i;13911:115::-;7771:6;;-1:-1:-1;;;;;7771:6:0;1067:10;7833:23;7825:68;;;;-1:-1:-1;;;7825:68:0;;;;;;;:::i;:::-;13966:52:::1;::::0;-1:-1:-1;;;;;13974:11:0::1;13966:29;::::0;13996:21:::1;13966:52:::0;::::1;;;::::0;::::1;::::0;;;13996:21;13966:29;:52;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13911:115::o:0;8032:201::-;7771:6;;-1:-1:-1;;;;;7771:6:0;1067:10;7833:23;7825:68;;;;-1:-1:-1;;;7825:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8121:22:0;::::1;8113:73;;;::::0;-1:-1:-1;;;8113:73:0;;8375:2:1;8113:73:0::1;::::0;::::1;8357:21:1::0;8414:2;8394:18;;;8387:30;8453:34;8433:18;;;8426:62;-1:-1:-1;;;8504:18:1;;;8497:36;8550:19;;8113:73:0::1;8173:402:1::0;8113:73:0::1;8197:28;8216:8;8197:18;:28::i;6345:380::-:0;-1:-1:-1;;;;;6481:19:0;;6473:68;;;;-1:-1:-1;;;6473:68:0;;8782:2:1;6473:68:0;;;8764:21:1;8821:2;8801:18;;;8794:30;8860:34;8840:18;;;8833:62;-1:-1:-1;;;8911:18:1;;;8904:34;8955:19;;6473:68:0;8580:400:1;6473:68:0;-1:-1:-1;;;;;6560:21:0;;6552:68;;;;-1:-1:-1;;;6552:68:0;;9187:2:1;6552:68:0;;;9169:21:1;9226:2;9206:18;;;9199:30;9265:34;9245:18;;;9238:62;-1:-1:-1;;;9316:18:1;;;9309:32;9358:19;;6552:68:0;8985:398:1;6552:68:0;-1:-1:-1;;;;;6633:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6685:32;;1283:25:1;;;6685:32:0;;1256:18:1;6685:32:0;;;;;;;6345:380;;;:::o;6733:453::-;-1:-1:-1;;;;;3411:18:0;;;6868:24;3411:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;6935:37:0;;6931:248;;7017:6;6997:16;:26;;6989:68;;;;-1:-1:-1;;;6989:68:0;;9590:2:1;6989:68:0;;;9572:21:1;9629:2;9609:18;;;9602:30;9668:31;9648:18;;;9641:59;9717:18;;6989:68:0;9388:353:1;6989:68:0;7101:51;7110:5;7117:7;7145:6;7126:16;:25;7101:8;:51::i;:::-;6857:329;6733:453;;;:::o;9903:2286::-;-1:-1:-1;;;;;10035:18:0;;10027:74;;;;-1:-1:-1;;;10027:74:0;;9948:2:1;10027:74:0;;;9930:21:1;9987:2;9967:18;;;9960:30;10026:34;10006:18;;;9999:62;-1:-1:-1;;;10077:18:1;;;10070:41;10128:19;;10027:74:0;9746:407:1;10027:74:0;-1:-1:-1;;;;;10120:16:0;;10112:70;;;;-1:-1:-1;;;10112:70:0;;10360:2:1;10112:70:0;;;10342:21:1;10399:2;10379:18;;;10372:30;10438:34;10418:18;;;10411:62;-1:-1:-1;;;10489:18:1;;;10482:39;10538:19;;10112:70:0;10158:405:1;10112:70:0;10210:1;10201:6;:10;10193:65;;;;-1:-1:-1;;;10193:65:0;;10770:2:1;10193:65:0;;;10752:21:1;10809:2;10789:18;;;10782:30;10848:34;10828:18;;;10821:62;-1:-1:-1;;;10899:18:1;;;10892:40;10949:19;;10193:65:0;10568:406:1;10193:65:0;-1:-1:-1;;;;;10287:26:0;;10271:13;10287:26;;;:20;:26;;;;;;;;;:54;;-1:-1:-1;;;;;;10317:24:0;;;;;;:20;:24;;;;;;;;10287:54;10360:11;;10271:70;;-1:-1:-1;;;;;;10360:11:0;:25;;;:37;;;10389:8;10360:37;10352:81;;;;-1:-1:-1;;;10352:81:0;;11181:2:1;10352:81:0;;;11163:21:1;11220:2;11200:18;;;11193:30;11259:33;11239:18;;;11232:61;11310:18;;10352:81:0;10979:355:1;10352:81:0;10466:11;;-1:-1:-1;;;;;10466:11:0;;;10460:17;;;;;;10501:19;;;;10536:18;;;;;10546:8;10545:9;10536:18;10533:503;;;10604:13;;10594:6;10578:13;10588:2;-1:-1:-1;;;;;3060:18:0;3033:7;3060:18;;;;;;;;;;;;2959:127;10578:13;:22;;;;:::i;:::-;:39;;:82;;;-1:-1:-1;;;;;;10638:22:0;;8542:42;10638:22;10578:82;10570:114;;;;-1:-1:-1;;;10570:114:0;;11541:2:1;10570:114:0;;;11523:21:1;11580:2;11560:18;;;11553:30;-1:-1:-1;;;11599:18:1;;;11592:49;11658:18;;10570:114:0;11339:343:1;10570:114:0;10719:11;;10703:12;:27;10699:98;;10768:12;;10757:9;;10768:12;;;;;;;10757:9;;:23;;10749:32;;;;;;10827:12;;10814:9;;10827:12;;;;;;;10814:9;;:25;10811:58;;10858:9;:11;;;;;:9;:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;10811:58;10900:12;;10887:9;;10900:12;;;;;;;10887:9;;:25;10884:141;;10948:12;;;-1:-1:-1;;;10948:12:0;;;;10932:13;:28;-1:-1:-1;;;10996:13:0;;;;10979:14;:30;10884:141;11097:4;11048:28;3060:18;;;;;;;;;;;11118:6;:18;;;;-1:-1:-1;11129:7:0;;-1:-1:-1;;;11129:7:0;;;;11128:8;11118:18;:61;;;;;11164:15;;11140:20;:39;;11118:61;:85;;;;;11195:8;11194:9;11118:85;:119;;;;-1:-1:-1;11219:18:0;;11207:9;;11219:18;;;;11207:9;;:30;11118:119;11114:692;;;11283:14;;-1:-1:-1;;;11283:14:0;;;;11268:12;:29;11264:67;;;11317:10;:14;;-1:-1:-1;;11317:14:0;;;11264:67;11354:10;;11367:1;11354:10;;;;;;:14;11346:50;;;;-1:-1:-1;;;11346:50:0;;12082:2:1;11346:50:0;;;12064:21:1;12121:2;12101:18;;;12094:30;12160:25;12140:18;;;12133:53;12203:18;;11346:50:0;11880:347:1;11346:50:0;11411:7;:14;;-1:-1:-1;;;;11411:14:0;-1:-1:-1;;;11411:14:0;;;11440:79;11457:61;11471:2;11461:9;:6;11468:2;11461:9;:::i;:::-;:12;;;;:::i;:::-;11475:42;11479:20;11501:15;;11475:3;:42::i;:::-;11457:3;:61::i;:::-;11440:16;:79::i;:::-;11534:7;:15;;-1:-1:-1;;;;11534:15:0;;;11593:21;11633:22;;11629:78;;11675:32;11688:18;11675:12;:32::i;:::-;11730:10;:12;;;;;;;;:10;:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;11781;11757:14;;:37;;;;;;;;;;;;;;;;;;11249:557;11114:692;11818:11;11832:5;:38;;11856:14;;11832:38;;;11840:13;;11832:38;11818:52;;11893:1;11887:3;:7;:20;;;;;11899:8;11898:9;11887:20;:32;;;;-1:-1:-1;11912:7:0;;-1:-1:-1;;;11912:7:0;;;;11911:8;11887:32;:53;;;;;11924:5;:15;;;;11933:6;11924:15;11883:255;;;11957:12;11987:3;11972:12;11981:3;11972:6;:12;:::i;:::-;:18;;;;:::i;:::-;11957:33;-1:-1:-1;12009:8:0;;12005:122;;12037:42;12053:4;12067;12074;12037:15;:42::i;:::-;12098:13;12107:4;12098:13;;:::i;:::-;;;12005:122;11942:196;11883:255;12148:33;12164:4;12170:2;12174:6;12148:15;:33::i;:::-;10016:2173;;;;;9903:2286;;;:::o;4660:671::-;-1:-1:-1;;;;;4791:18:0;;4783:68;;;;-1:-1:-1;;;4783:68:0;;12962:2:1;4783:68:0;;;12944:21:1;13001:2;12981:18;;;12974:30;13040:34;13020:18;;;13013:62;-1:-1:-1;;;13091:18:1;;;13084:35;13136:19;;4783:68:0;12760:401:1;4783:68:0;-1:-1:-1;;;;;4870:16:0;;4862:64;;;;-1:-1:-1;;;4862:64:0;;13368:2:1;4862:64:0;;;13350:21:1;13407:2;13387:18;;;13380:30;13446:34;13426:18;;;13419:62;-1:-1:-1;;;13497:18:1;;;13490:33;13540:19;;4862:64:0;13166:399:1;4862:64:0;-1:-1:-1;;;;;5012:15:0;;4990:19;5012:15;;;;;;;;;;;5046:21;;;;5038:72;;;;-1:-1:-1;;;5038:72:0;;13772:2:1;5038:72:0;;;13754:21:1;13811:2;13791:18;;;13784:30;13850:34;13830:18;;;13823:62;-1:-1:-1;;;13901:18:1;;;13894:36;13947:19;;5038:72:0;13570:402:1;5038:72:0;-1:-1:-1;;;;;5146:15:0;;;:9;:15;;;;;;;;;;;5164:20;;;5146:38;;5206:13;;;;;;;;:23;;5178:6;;5146:9;5206:23;;5178:6;;5206:23;:::i;:::-;;;;;;;;5262:2;-1:-1:-1;;;;;5247:26:0;5256:4;-1:-1:-1;;;;;5247:26:0;;5266:6;5247:26;;;;1283:25:1;;1271:2;1256:18;;1137:177;5247:26:0;;;;;;;;5286:37;14034:213;8241:191;8334:6;;;-1:-1:-1;;;;;8351:17:0;;;-1:-1:-1;;;;;;8351:17:0;;;;;;;8384:40;;8334:6;;;8351:17;8334:6;;8384:40;;8315:16;;8384:40;8304:128;8241:191;:::o;12197:98::-;12254:7;12281:1;12279;:3;12278:9;;12286:1;12278:9;;;12284:1;12278:9;12271:16;12197:98;-1:-1:-1;;;12197:98:0:o;12304:447::-;12394:16;;;12408:1;12394:16;;;;;;;;12370:21;;12394:16;;;;;;;;;;-1:-1:-1;12394:16:0;12370:40;;12439:4;12421;12426:1;12421:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;12421:23:0;;;-1:-1:-1;;;;;12421:23:0;;;;;8542:42;-1:-1:-1;;;;;12465:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12455:4;12460:1;12455:7;;;;;;;;:::i;:::-;;;;;;:24;-1:-1:-1;;;;;12455:24:0;;;-1:-1:-1;;;;;12455:24:0;;;;;12490:54;12507:4;8542:42;12532:11;12490:8;:54::i;:::-;12555:188;;-1:-1:-1;;;12555:188:0;;8542:42;;12555:58;;:188;;12628:11;;12654:1;;12670:4;;12697;;12717:15;;12555:188;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12359:392;12304:447;:::o;12760:102::-;12817:37;;-1:-1:-1;;;;;12825:11:0;12817:29;;:37;;;;;12847:6;;12817:37;;;;12847:6;12817:29;:37;;;;;;;;;;;;;;;;;;;;;12760:102;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:346::-;2089:6;2097;2150:2;2138:9;2129:7;2125:23;2121:32;2118:52;;;2166:1;2163;2156:12;2118:52;-1:-1:-1;;2211:23:1;;;2331:2;2316:18;;;2303:32;;-1:-1:-1;2021:346:1:o;2758:247::-;2817:6;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;3218:388::-;3286:6;3294;3347:2;3335:9;3326:7;3322:23;3318:32;3315:52;;;3363:1;3360;3353:12;3315:52;3402:9;3389:23;3421:31;3446:5;3421:31;:::i;:::-;3471:5;-1:-1:-1;3528:2:1;3513:18;;3500:32;3541:33;3500:32;3541:33;:::i;:::-;3593:7;3583:17;;;3218:388;;;;;:::o;3611:380::-;3690:1;3686:12;;;;3733;;;3754:61;;3808:4;3800:6;3796:17;3786:27;;3754:61;3861:2;3853:6;3850:14;3830:18;3827:38;3824:161;;3907:10;3902:3;3898:20;3895:1;3888:31;3942:4;3939:1;3932:15;3970:4;3967:1;3960:15;3824:161;;3611:380;;;:::o;3996:356::-;4198:2;4180:21;;;4217:18;;;4210:30;4276:34;4271:2;4256:18;;4249:62;4343:2;4328:18;;3996:356::o;4989:456::-;5077:6;5085;5093;5146:2;5134:9;5125:7;5121:23;5117:32;5114:52;;;5162:1;5159;5152:12;5114:52;-1:-1:-1;;5207:16:1;;5313:2;5298:18;;5292:25;5409:2;5394:18;;;5388:25;5207:16;;5292:25;;-1:-1:-1;5388:25:1;4989:456;-1:-1:-1;4989:456:1:o;5450:251::-;5520:6;5573:2;5561:9;5552:7;5548:23;5544:32;5541:52;;;5589:1;5586;5579:12;5541:52;5621:9;5615:16;5640:31;5665:5;5640:31;:::i;6011:127::-;6072:10;6067:3;6063:20;6060:1;6053:31;6103:4;6100:1;6093:15;6127:4;6124:1;6117:15;6143:125;6208:9;;;6229:10;;;6226:36;;;6242:18;;:::i;6273:230::-;6343:6;6396:2;6384:9;6375:7;6371:23;6367:32;6364:52;;;6412:1;6409;6402:12;6364:52;-1:-1:-1;6457:16:1;;6273:230;-1:-1:-1;6273:230:1:o;7134:277::-;7201:6;7254:2;7242:9;7233:7;7229:23;7225:32;7222:52;;;7270:1;7267;7260:12;7222:52;7302:9;7296:16;7355:5;7348:13;7341:21;7334:5;7331:32;7321:60;;7377:1;7374;7367:12;11687:188;11725:3;11769:10;11762:5;11758:22;11804:10;11795:7;11792:23;11789:49;;11818:18;;:::i;:::-;11867:1;11854:15;;11687:188;-1:-1:-1;;11687:188:1:o;12232:168::-;12305:9;;;12336;;12353:15;;;12347:22;;12333:37;12323:71;;12374:18;;:::i;12405:217::-;12445:1;12471;12461:132;;12515:10;12510:3;12506:20;12503:1;12496:31;12550:4;12547:1;12540:15;12578:4;12575:1;12568:15;12461:132;-1:-1:-1;12607:9:1;;12405:217::o;12627:128::-;12694:9;;;12715:11;;;12712:37;;;12729:18;;:::i;14109:127::-;14170:10;14165:3;14161:20;14158:1;14151:31;14201:4;14198:1;14191:15;14225:4;14222:1;14215:15;14241:959;14503:4;14551:3;14540:9;14536:19;14582:6;14571:9;14564:25;14625:6;14620:2;14609:9;14605:18;14598:34;14668:3;14663:2;14652:9;14648:18;14641:31;14692:6;14727;14721:13;14758:6;14750;14743:22;14796:3;14785:9;14781:19;14774:26;;14835:2;14827:6;14823:15;14809:29;;14856:1;14866:195;14880:6;14877:1;14874:13;14866:195;;;14945:13;;-1:-1:-1;;;;;14941:39:1;14929:52;;15010:2;15036:15;;;;15001:12;;;;14977:1;14895:9;14866:195;;;-1:-1:-1;;;;;;;15117:32:1;;;;15112:2;15097:18;;15090:60;-1:-1:-1;;15181:3:1;15166:19;15159:35;15078:3;14241:959;-1:-1:-1;;;14241:959:1:o
Swarm Source
ipfs://07bb4ef3cb044f0f29b423dd98ce88ca0414e6eca221e64d1e2e448e38c820e8
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.