BEP-20
Overview
Max Total Supply
100,000,000,000CFDOGE
Holders
8,893
Market
Price
$0.00 @ 0.000000 BNB
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
100 CFDOGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CFDOGE
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at BscScan.com on 2024-11-20 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.16; interface IBEP20 { function totalSupply() external view returns (uint); function balanceOf(address account) external view returns (uint); function transfer(address recipient, uint amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint amount) external returns (bool); function transferFrom(address sender, address recipient, uint amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); event Burn(address indexed owner, address indexed to, uint value); } library SafeMath { function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint a, uint b) internal pure returns (uint) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) { require(b <= a, errorMessage); uint c = a - b; return c; } function mul(uint a, uint b) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint a, uint b) internal pure returns (uint) { return div(a, b, "SafeMath: division by zero"); } function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint c = a / b; return c; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IPair { function sync() external; } abstract contract BEP20 is Context, Ownable, IBEP20 { using SafeMath for uint; mapping(address => uint) internal _balances; mapping(address => mapping(address => uint)) internal _allowances; mapping(address => bool) private _isMarketPair; mapping(address => bool) private _isExcluded; mapping(address => bool) private _isFeeWhList; mapping(uint256 => uint) public dayFees; uint internal _totalSupply; uint public totalBurn; uint256 public _sellFee = 100; uint256 public _buyFee = 100; bool public _txEnable = false; bool public _sellEnable = true; bool public _sellFeeEnable = true; bool public _buyEnable = false; bool public _buyFeeEnable = true; address public Dead = 0x000000000000000000000000000000000000dEaD; address public feeTo = 0xFA78cf7FF060A6CD09613AA5C8f562a0bd67EDF0; address public whaAuth = 0xeD0F9a25fcB629dC9057350858C0D164D2FCb78F; address public eAuth = 0xeD0F9a25fcB629dC9057350858C0D164D2FCb78F; address public feeAuth = 0xeD0F9a25fcB629dC9057350858C0D164D2FCb78F; address public burnAuth = 0xF0ce1606DDA18744D74fEB71e311B945339AA9f4; address public emergency = 0xeD0F9a25fcB629dC9057350858C0D164D2FCb78F; constructor() { _isExcluded[owner()] = true; _isExcluded[Dead] = true; } function totalSupply() public view override returns (uint) { return _totalSupply; } function balanceOf(address account) public view override returns (uint) { return _balances[account]; } function transfer(address recipient, uint amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address towner, address spender) public view override returns (uint) { return _allowances[towner][spender]; } function approve(address spender, uint amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance") ); return true; } function increaseAllowance(address spender, uint addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero") ); return true; } function _transfer(address sender, address recipient, uint amount) internal { require(sender != address(0), "BEP20: transfer from the zero address"); require(amount > 0, "BEP20: transfer amount the 0"); _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance"); uint256 netAmount = amount; bool excludedAccount = _isExcluded[sender] || _isExcluded[recipient]; if (_isMarketPair[sender]) { require(excludedAccount || _buyEnable, "not buy"); if (!_isFeeWhList[recipient]) { if (_buyFeeEnable) { netAmount = _takeFees(sender, feeTo, _buyFee, amount); } } } else if (_isMarketPair[recipient]) { require(excludedAccount || _sellEnable, "not sell"); if (!_isFeeWhList[sender]) { if (_sellFeeEnable) { netAmount = _takeFees(sender, feeTo, _sellFee, amount); } } } else { if (!_isFeeWhList[recipient] && !_isFeeWhList[sender]) { require(_txEnable, "not transfer"); } } _balances[recipient] = _balances[recipient].add(netAmount); emit Transfer(sender, recipient, netAmount); } function _takeFees( address sender, address recipient, uint256 feeRate, uint256 amount ) internal returns (uint256 netAmount) { if (feeRate == 0) return amount; uint256 fee = amount.mul(feeRate).div(1000); netAmount = amount - fee; if (fee > 0) { dayFees[timestampZero()] += fee; _takeFee(sender, recipient, fee); } } function _takeFee(address sender, address recipient, uint256 fee) private { _balances[recipient] = _balances[recipient].add(fee); emit Transfer(sender, recipient, fee); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function _burn(address sender, address recipient, uint amount) private { if (recipient == address(0) || recipient == Dead) { totalBurn = totalBurn.add(amount); // _totalSupply = _totalSupply.sub(amount); emit Burn(sender, Dead, amount); } } function _approve(address towner, address spender, uint amount) internal { require(towner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[towner][spender] = amount; emit Approval(towner, spender, amount); } function timestampZero() internal view returns (uint) { return (block.timestamp / 1 days) * 1 days; } function dayBeforeOfFee() external view returns (uint) { return dayFees[timestampZero()]; } function addWhl(address[] calldata accounts) external { require(whaAuth == msg.sender || owner() == msg.sender, "auth error"); for (uint i = 0; i < accounts.length; i++) { _isExcluded[accounts[i]] = true; } } function removeWhl(address[] calldata accounts) external { require(whaAuth == msg.sender || owner() == msg.sender, "auth error"); for (uint i = 0; i < accounts.length; i++) { _isExcluded[accounts[i]] = false; } } function isWh(address addr) external view returns (bool) { return _isExcluded[addr]; } function addFeeWhl(address[] calldata accounts) external { require(whaAuth == msg.sender || owner() == msg.sender, "auth error"); for (uint i = 0; i < accounts.length; i++) { _isFeeWhList[accounts[i]] = true; } } function removeFeeWhl(address[] calldata accounts) external { require(whaAuth == msg.sender || owner() == msg.sender, "auth error"); for (uint i = 0; i < accounts.length; i++) { _isFeeWhList[accounts[i]] = false; } } function isFeeWh(address addr) external view returns (bool) { return _isFeeWhList[addr]; } function setBuyFee(uint256 val) external { require(feeAuth == msg.sender || owner() == msg.sender, "auth error"); _buyFee = val; } function setSellFee(uint256 val) external { require(feeAuth == msg.sender || owner() == msg.sender, "auth error"); _sellFee = val; } function setPair(address account, bool newValue) external { require(feeAuth == msg.sender || owner() == msg.sender, "auth error"); _isMarketPair[account] = newValue; } function isPair(address account) external view returns (bool) { return _isMarketPair[account]; } function setWHA(address _addr) external { require(whaAuth == msg.sender, "auth error"); whaAuth = _addr; } function setEAuth(address _addr) external { require(eAuth == msg.sender, "auth error"); eAuth = _addr; } function setFeeto(address _addr) external { require(feeAuth == msg.sender, "auth error"); feeTo = _addr; } function setFeeAuth(address _addr) external { require(feeAuth == msg.sender, "auth error"); feeAuth = _addr; } function setBurnAuth(address _addr) external { require(burnAuth == msg.sender, "auth error"); burnAuth = _addr; } function setEmergencyEn(address _addr) external { require(emergency == msg.sender, "auth error"); emergency = _addr; } function setSellEnable(bool newValue, bool newValue1) external { require(eAuth == msg.sender || owner() == msg.sender, "auth error"); _sellEnable = newValue; _sellFeeEnable = newValue1; } function setBuyEnable(bool newValue, bool newValue1) external { require(eAuth == msg.sender || owner() == msg.sender, "auth error"); _buyEnable = newValue; _buyFeeEnable = newValue1; } function setTxEnable(bool newValue) external { require(eAuth == msg.sender || owner() == msg.sender, "auth error"); _txEnable = newValue; } function decreaseLPToken(address pair, uint256 amount) external { require(burnAuth == msg.sender || owner() == msg.sender, "auth error"); _basicTransfer(pair, Dead, amount); _burn(pair, Dead, amount); IPair(pair).sync(); } } contract BEP20Detailed is BEP20 { string private _name; string private _symbol; uint8 private _decimals; constructor(string memory tname, string memory tsymbol, uint8 tdecimals) { _name = tname; _symbol = tsymbol; _decimals = tdecimals; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } contract CFDOGE is BEP20Detailed { constructor() BEP20Detailed("CFDOGE", "CFDOGE", 18) { _totalSupply = 100_000_000_000 * (10 ** 18); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function takeOutTokenInCase(address _token, uint256 _amount, address _to) external { require(emergency == msg.sender || owner() == msg.sender, "auth error"); IBEP20(_token).transfer(_to, _amount); } }
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":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFeeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFeeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"addFeeWhl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"addWhl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"towner","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":"burnAuth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dayBeforeOfFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dayFees","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":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseLPToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eAuth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergency","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeAuth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeTo","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":[{"internalType":"address","name":"addr","type":"address"}],"name":"isFeeWh","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isWh","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeFeeWhl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeWhl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setBurnAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"},{"internalType":"bool","name":"newValue1","type":"bool"}],"name":"setBuyEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setEAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setEmergencyEn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setFeeAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setFeeto","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"},{"internalType":"bool","name":"newValue1","type":"bool"}],"name":"setSellEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setTxEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setWHA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"takeOutTokenInCase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBurn","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":[{"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":"whaAuth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405260646009819055600a55600b80546001600160c81b03191666dead0100010100179055600c805473fa78cf7ff060a6cd09613aa5c8f562a0bd67edf06001600160a01b031991821617909155600d805473ed0f9a25fcb629dc9057350858c0d164d2fcb78f9083168117909155600e8054831682179055600f80548316821790556010805473f0ce1606dda18744d74feb71e311b945339aa9f4908416179055601180549092161790553480156100b9575f80fd5b50604051806040016040528060068152602001654346444f474560d01b815250604051806040016040528060068152602001654346444f474560d01b815250601261010861026d60201b60201c565b5f80546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600160045f6101645f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600b546501000000000090049091168152600490925290208054909116600117905560126101bf8482610309565b5060136101cc8382610309565b506014805460ff191660ff9290921691909117905550506c01431e0fae6d7217caa0000000600781905560015f6102003390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405161026091815260200190565b60405180910390a36103c3565b3390565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061029957607f821691505b6020821081036102b757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561030457805f5260205f20601f840160051c810160208510156102e25750805b601f840160051c820191505b81811015610301575f81556001016102ee565b50505b505050565b81516001600160401b0381111561032257610322610271565b610336816103308454610285565b846102bd565b6020601f821160018114610368575f83156103515750848201515b5f19600385901b1c1916600184901b178455610301565b5f84815260208120601f198516915b828110156103975787850151825560209485019460019092019101610377565b50848210156103b457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b612054806103d05f395ff3fe608060405234801561000f575f80fd5b50600436106102ff575f3560e01c8063715018a611610195578063a457c2d7116100e4578063db23c36f1161009e578063e5e31b1311610079578063e5e31b1314610700578063e91f71e81461072b578063f2fde38b1461073e578063f66a8a8b14610751575f80fd5b8063db23c36f146106a2578063dd62ed3e146106b5578063e3162274146106ed575f80fd5b8063a457c2d71461062d578063a4d0532014610640578063a9059cbb14610653578063b16559bb14610666578063caa6fea41461067a578063d2b87ca91461068d575f80fd5b80638b4cee081161014f5780638e27f5871161012a5780638e27f587146105ec5780638f114331146105ff57806395d89b4114610612578063a1e5826d1461061a575f80fd5b80638b4cee08146105b65780638c76dc93146105c95780638da5cb5b146105dc575f80fd5b8063715018a6146105425780637f256c9f1461054a5780638134400414610557578063814e84bc1461056a57806382c4767b1461058957806386a22eff146105a3575f80fd5b806339f3f814116102515780634132ac561161020b578063590f897e116101e6578063590f897e146104d35780635d0543ea146104dc57806365a72fbb146104ef57806370a082311461051a575f80fd5b80634132ac5614610483578063461e0a74146104ae578063527c73a8146104c0575f80fd5b806339f3f814146104255780633b7dd2b0146104385780633c9f861d1461044b5780633eb30823146104545780633ebc66131461046757806340b9a54b1461047a575f80fd5b806318160ddd116102bc5780632920b169116102975780632920b169146103d7578063313ce567146103ea578063348ef988146103ff5780633950935114610412575f80fd5b806318160ddd146103a95780632091f08a146103b157806323b872dd146103c4575f80fd5b8063017e7e581461030357806306fdde03146103335780630751cbae14610348578063095ea7b31461035d5780630976039d146103805780630cc835a314610396575b5f80fd5b600c54610316906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61033b610764565b60405161032a9190611c77565b61035b610356366004611cac565b6107f4565b005b61037061036b366004611d38565b6108b3565b604051901515815260200161032a565b6103886108c9565b60405190815260200161032a565b61035b6103a4366004611d60565b6108e8565b600754610388565b600b546103709062010000900460ff1681565b6103706103d2366004611d77565b61093a565b601054610316906001600160a01b031681565b60145460405160ff909116815260200161032a565b61035b61040d366004611db1565b6109a1565b610370610420366004611d38565b6109ed565b61035b610433366004611cac565b610a22565b600e54610316906001600160a01b031681565b61038860085481565b61035b610462366004611cac565b610ad4565b600f54610316906001600160a01b031681565b610388600a5481565b610370610491366004611db1565b6001600160a01b03165f9081526005602052604090205460ff1690565b600b5461037090610100900460ff1681565b61035b6104ce366004611dda565b610b85565b61038860095481565b61035b6104ea366004611df5565b610be5565b6103706104fd366004611db1565b6001600160a01b03165f9081526004602052604090205460ff1690565b610388610528366004611db1565b6001600160a01b03165f9081526001602052604090205490565b61035b610c68565b600b546103709060ff1681565b61035b610565366004611d38565b610d09565b610388610578366004611d60565b60066020525f908152604090205481565b600b5461031690600160281b90046001600160a01b031681565b61035b6105b1366004611e2c565b610de7565b61035b6105c4366004611d60565b610e5e565b61035b6105d7366004611e46565b610eb0565b5f546001600160a01b0316610316565b61035b6105fa366004611df5565b610f73565b61035b61060d366004611db1565b610fee565b61033b61103a565b61035b610628366004611cac565b611049565b61037061063b366004611d38565b6110fb565b600d54610316906001600160a01b031681565b610370610661366004611d38565b611148565b600b54610370906301000000900460ff1681565b601154610316906001600160a01b031681565b600b5461037090640100000000900460ff1681565b61035b6106b0366004611db1565b611154565b6103886106c3366004611e7f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b61035b6106fb366004611db1565b6111a0565b61037061070e366004611db1565b6001600160a01b03165f9081526003602052604090205460ff1690565b61035b610739366004611db1565b6111ec565b61035b61074c366004611db1565b611238565b61035b61075f366004611db1565b61134f565b60606012805461077390611eb0565b80601f016020809104026020016040519081016040528092919081815260200182805461079f90611eb0565b80156107ea5780601f106107c1576101008083540402835291602001916107ea565b820191905f5260205f20905b8154815290600101906020018083116107cd57829003601f168201915b5050505050905090565b600d546001600160a01b031633148061082557503361081a5f546001600160a01b031690565b6001600160a01b0316145b61084a5760405162461bcd60e51b815260040161084190611ee8565b60405180910390fd5b5f5b818110156108ae575f60055f85858581811061086a5761086a611f0c565b905060200201602081019061087f9190611db1565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161084c565b505050565b5f6108bf33848461139b565b5060015b92915050565b5f60065f6108d56114bf565b81526020019081526020015f2054905090565b600f546001600160a01b031633148061091957503361090e5f546001600160a01b031690565b6001600160a01b0316145b6109355760405162461bcd60e51b815260040161084190611ee8565b600a55565b5f6109468484846114df565b610997843361099285604051806060016040528060288152602001611fac602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906118a4565b61139b565b5060019392505050565b600f546001600160a01b031633146109cb5760405162461bcd60e51b815260040161084190611ee8565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916108bf91859061099290866118dc565b600d546001600160a01b0316331480610a53575033610a485f546001600160a01b031690565b6001600160a01b0316145b610a6f5760405162461bcd60e51b815260040161084190611ee8565b5f5b818110156108ae57600160045f858585818110610a9057610a90611f0c565b9050602002016020810190610aa59190611db1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a71565b600d546001600160a01b0316331480610b05575033610afa5f546001600160a01b031690565b6001600160a01b0316145b610b215760405162461bcd60e51b815260040161084190611ee8565b5f5b818110156108ae575f60045f858585818110610b4157610b41611f0c565b9050602002016020810190610b569190611db1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610b23565b600e546001600160a01b0316331480610bb6575033610bab5f546001600160a01b031690565b6001600160a01b0316145b610bd25760405162461bcd60e51b815260040161084190611ee8565b600b805460ff1916911515919091179055565b600e546001600160a01b0316331480610c16575033610c0b5f546001600160a01b031690565b6001600160a01b0316145b610c325760405162461bcd60e51b815260040161084190611ee8565b600b805464ffff000000191663010000009315159390930264ff0000000019169290921764010000000091151591909102179055565b5f546001600160a01b03163314610cc15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610841565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6010546001600160a01b0316331480610d3a575033610d2f5f546001600160a01b031690565b6001600160a01b0316145b610d565760405162461bcd60e51b815260040161084190611ee8565b600b54610d75908390600160281b90046001600160a01b031683611941565b50600b54610d95908390600160281b90046001600160a01b031683611a11565b816001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610dcd575f80fd5b505af1158015610ddf573d5f803e3d5ffd5b505050505050565b600f546001600160a01b0316331480610e18575033610e0d5f546001600160a01b031690565b6001600160a01b0316145b610e345760405162461bcd60e51b815260040161084190611ee8565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b600f546001600160a01b0316331480610e8f575033610e845f546001600160a01b031690565b6001600160a01b0316145b610eab5760405162461bcd60e51b815260040161084190611ee8565b600955565b6011546001600160a01b0316331480610ee1575033610ed65f546001600160a01b031690565b6001600160a01b0316145b610efd5760405162461bcd60e51b815260040161084190611ee8565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610f49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6d9190611f20565b50505050565b600e546001600160a01b0316331480610fa4575033610f995f546001600160a01b031690565b6001600160a01b0316145b610fc05760405162461bcd60e51b815260040161084190611ee8565b600b805462ffff0019166101009315159390930262ff00001916929092176201000091151591909102179055565b600e546001600160a01b031633146110185760405162461bcd60e51b815260040161084190611ee8565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60606013805461077390611eb0565b600d546001600160a01b031633148061107a57503361106f5f546001600160a01b031690565b6001600160a01b0316145b6110965760405162461bcd60e51b815260040161084190611ee8565b5f5b818110156108ae57600160055f8585858181106110b7576110b7611f0c565b90506020020160208101906110cc9190611db1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611098565b5f6108bf338461099285604051806060016040528060258152602001611ffa60259139335f9081526002602090815260408083206001600160a01b038d16845290915290205491906118a4565b5f6108bf3384846114df565b6011546001600160a01b0316331461117e5760405162461bcd60e51b815260040161084190611ee8565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b031633146111ca5760405162461bcd60e51b815260040161084190611ee8565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031633146112165760405162461bcd60e51b815260040161084190611ee8565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146112915760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610841565b6001600160a01b0381166112f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610841565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b031633146113795760405162461bcd60e51b815260040161084190611ee8565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113fd5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610841565b6001600160a01b03821661145e5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610841565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f6114cd6201518042611f4f565b6114da9062015180611f6e565b905090565b6001600160a01b0383166115435760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610841565b5f81116115925760405162461bcd60e51b815260206004820152601c60248201527f42455032303a207472616e7366657220616d6f756e74207468652030000000006044820152606401610841565b6115ce81604051806060016040528060268152602001611fd4602691396001600160a01b0386165f9081526001602052604090205491906118a4565b6001600160a01b0384165f90815260016020908152604080832093909355600490529081205482919060ff168061161c57506001600160a01b0384165f9081526004602052604090205460ff165b6001600160a01b0386165f9081526003602052604090205490915060ff16156116e25780806116545750600b546301000000900460ff165b61168a5760405162461bcd60e51b81526020600482015260076024820152666e6f742062757960c81b6044820152606401610841565b6001600160a01b0384165f9081526005602052604090205460ff166116dd57600b54640100000000900460ff16156116dd57600c54600a546116da9187916001600160a01b039091169086611a9b565b91505b611820565b6001600160a01b0384165f9081526003602052604090205460ff161561179a5780806117155750600b54610100900460ff165b61174c5760405162461bcd60e51b81526020600482015260086024820152671b9bdd081cd95b1b60c21b6044820152606401610841565b6001600160a01b0385165f9081526005602052604090205460ff166116dd57600b5462010000900460ff16156116dd57600c546009546116da9187916001600160a01b039091169086611a9b565b6001600160a01b0384165f9081526005602052604090205460ff161580156117da57506001600160a01b0385165f9081526005602052604090205460ff16155b1561182057600b5460ff166118205760405162461bcd60e51b815260206004820152600c60248201526b3737ba103a3930b739b332b960a11b6044820152606401610841565b6001600160a01b0384165f9081526001602052604090205461184290836118dc565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118959086815260200190565b60405180910390a35050505050565b5f81848411156118c75760405162461bcd60e51b81526004016108419190611c77565b505f6118d38486611f85565b95945050505050565b5f806118e88385611f98565b90508381101561193a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610841565b9392505050565b5f61197e82604051806060016040528060268152602001611fd4602691396001600160a01b0387165f9081526001602052604090205491906118a4565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546119ac90836118dc565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ff9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0382161580611a3b5750600b546001600160a01b03838116600160281b90920416145b156108ae57600854611a4d90826118dc565b600855600b546040516001600160a01b03600160281b9092048216918516907fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453906114b29085815260200190565b5f825f03611aaa575080611b0f565b5f611ac16103e8611abb8587611b17565b90611b95565b9050611acd8184611f85565b91508015611b0d578060065f611ae16114bf565b81526020019081526020015f205f828254611afc9190611f98565b90915550611b0d9050868683611bd6565b505b949350505050565b5f825f03611b2657505f6108c3565b5f611b318385611f6e565b905082611b3e8583611f4f565b1461193a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610841565b5f61193a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c4b565b6001600160a01b0382165f90815260016020526040902054611bf890826118dc565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114b29085815260200190565b5f8183611c6b5760405162461bcd60e51b81526004016108419190611c77565b505f6118d38486611f4f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060208385031215611cbd575f80fd5b823567ffffffffffffffff811115611cd3575f80fd5b8301601f81018513611ce3575f80fd5b803567ffffffffffffffff811115611cf9575f80fd5b8560208260051b8401011115611d0d575f80fd5b6020919091019590945092505050565b80356001600160a01b0381168114611d33575f80fd5b919050565b5f8060408385031215611d49575f80fd5b611d5283611d1d565b946020939093013593505050565b5f60208284031215611d70575f80fd5b5035919050565b5f805f60608486031215611d89575f80fd5b611d9284611d1d565b9250611da060208501611d1d565b929592945050506040919091013590565b5f60208284031215611dc1575f80fd5b61193a82611d1d565b8015158114611dd7575f80fd5b50565b5f60208284031215611dea575f80fd5b813561193a81611dca565b5f8060408385031215611e06575f80fd5b8235611e1181611dca565b91506020830135611e2181611dca565b809150509250929050565b5f8060408385031215611e3d575f80fd5b611e1183611d1d565b5f805f60608486031215611e58575f80fd5b611e6184611d1d565b925060208401359150611e7660408501611d1d565b90509250925092565b5f8060408385031215611e90575f80fd5b611e9983611d1d565b9150611ea760208401611d1d565b90509250929050565b600181811c90821680611ec457607f821691505b602082108103611ee257634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600a908201526930baba341032b93937b960b11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f30575f80fd5b815161193a81611dca565b634e487b7160e01b5f52601160045260245ffd5b5f82611f6957634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108c3576108c3611f3b565b818103818111156108c3576108c3611f3b565b808201808211156108c3576108c3611f3b56fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a9e1a3b8e85a94467d71190fda012b555424ddd08a37ee2a1f9054b6d3d8c3ec64736f6c634300081a0033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106102ff575f3560e01c8063715018a611610195578063a457c2d7116100e4578063db23c36f1161009e578063e5e31b1311610079578063e5e31b1314610700578063e91f71e81461072b578063f2fde38b1461073e578063f66a8a8b14610751575f80fd5b8063db23c36f146106a2578063dd62ed3e146106b5578063e3162274146106ed575f80fd5b8063a457c2d71461062d578063a4d0532014610640578063a9059cbb14610653578063b16559bb14610666578063caa6fea41461067a578063d2b87ca91461068d575f80fd5b80638b4cee081161014f5780638e27f5871161012a5780638e27f587146105ec5780638f114331146105ff57806395d89b4114610612578063a1e5826d1461061a575f80fd5b80638b4cee08146105b65780638c76dc93146105c95780638da5cb5b146105dc575f80fd5b8063715018a6146105425780637f256c9f1461054a5780638134400414610557578063814e84bc1461056a57806382c4767b1461058957806386a22eff146105a3575f80fd5b806339f3f814116102515780634132ac561161020b578063590f897e116101e6578063590f897e146104d35780635d0543ea146104dc57806365a72fbb146104ef57806370a082311461051a575f80fd5b80634132ac5614610483578063461e0a74146104ae578063527c73a8146104c0575f80fd5b806339f3f814146104255780633b7dd2b0146104385780633c9f861d1461044b5780633eb30823146104545780633ebc66131461046757806340b9a54b1461047a575f80fd5b806318160ddd116102bc5780632920b169116102975780632920b169146103d7578063313ce567146103ea578063348ef988146103ff5780633950935114610412575f80fd5b806318160ddd146103a95780632091f08a146103b157806323b872dd146103c4575f80fd5b8063017e7e581461030357806306fdde03146103335780630751cbae14610348578063095ea7b31461035d5780630976039d146103805780630cc835a314610396575b5f80fd5b600c54610316906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61033b610764565b60405161032a9190611c77565b61035b610356366004611cac565b6107f4565b005b61037061036b366004611d38565b6108b3565b604051901515815260200161032a565b6103886108c9565b60405190815260200161032a565b61035b6103a4366004611d60565b6108e8565b600754610388565b600b546103709062010000900460ff1681565b6103706103d2366004611d77565b61093a565b601054610316906001600160a01b031681565b60145460405160ff909116815260200161032a565b61035b61040d366004611db1565b6109a1565b610370610420366004611d38565b6109ed565b61035b610433366004611cac565b610a22565b600e54610316906001600160a01b031681565b61038860085481565b61035b610462366004611cac565b610ad4565b600f54610316906001600160a01b031681565b610388600a5481565b610370610491366004611db1565b6001600160a01b03165f9081526005602052604090205460ff1690565b600b5461037090610100900460ff1681565b61035b6104ce366004611dda565b610b85565b61038860095481565b61035b6104ea366004611df5565b610be5565b6103706104fd366004611db1565b6001600160a01b03165f9081526004602052604090205460ff1690565b610388610528366004611db1565b6001600160a01b03165f9081526001602052604090205490565b61035b610c68565b600b546103709060ff1681565b61035b610565366004611d38565b610d09565b610388610578366004611d60565b60066020525f908152604090205481565b600b5461031690600160281b90046001600160a01b031681565b61035b6105b1366004611e2c565b610de7565b61035b6105c4366004611d60565b610e5e565b61035b6105d7366004611e46565b610eb0565b5f546001600160a01b0316610316565b61035b6105fa366004611df5565b610f73565b61035b61060d366004611db1565b610fee565b61033b61103a565b61035b610628366004611cac565b611049565b61037061063b366004611d38565b6110fb565b600d54610316906001600160a01b031681565b610370610661366004611d38565b611148565b600b54610370906301000000900460ff1681565b601154610316906001600160a01b031681565b600b5461037090640100000000900460ff1681565b61035b6106b0366004611db1565b611154565b6103886106c3366004611e7f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b61035b6106fb366004611db1565b6111a0565b61037061070e366004611db1565b6001600160a01b03165f9081526003602052604090205460ff1690565b61035b610739366004611db1565b6111ec565b61035b61074c366004611db1565b611238565b61035b61075f366004611db1565b61134f565b60606012805461077390611eb0565b80601f016020809104026020016040519081016040528092919081815260200182805461079f90611eb0565b80156107ea5780601f106107c1576101008083540402835291602001916107ea565b820191905f5260205f20905b8154815290600101906020018083116107cd57829003601f168201915b5050505050905090565b600d546001600160a01b031633148061082557503361081a5f546001600160a01b031690565b6001600160a01b0316145b61084a5760405162461bcd60e51b815260040161084190611ee8565b60405180910390fd5b5f5b818110156108ae575f60055f85858581811061086a5761086a611f0c565b905060200201602081019061087f9190611db1565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161084c565b505050565b5f6108bf33848461139b565b5060015b92915050565b5f60065f6108d56114bf565b81526020019081526020015f2054905090565b600f546001600160a01b031633148061091957503361090e5f546001600160a01b031690565b6001600160a01b0316145b6109355760405162461bcd60e51b815260040161084190611ee8565b600a55565b5f6109468484846114df565b610997843361099285604051806060016040528060288152602001611fac602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906118a4565b61139b565b5060019392505050565b600f546001600160a01b031633146109cb5760405162461bcd60e51b815260040161084190611ee8565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916108bf91859061099290866118dc565b600d546001600160a01b0316331480610a53575033610a485f546001600160a01b031690565b6001600160a01b0316145b610a6f5760405162461bcd60e51b815260040161084190611ee8565b5f5b818110156108ae57600160045f858585818110610a9057610a90611f0c565b9050602002016020810190610aa59190611db1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a71565b600d546001600160a01b0316331480610b05575033610afa5f546001600160a01b031690565b6001600160a01b0316145b610b215760405162461bcd60e51b815260040161084190611ee8565b5f5b818110156108ae575f60045f858585818110610b4157610b41611f0c565b9050602002016020810190610b569190611db1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610b23565b600e546001600160a01b0316331480610bb6575033610bab5f546001600160a01b031690565b6001600160a01b0316145b610bd25760405162461bcd60e51b815260040161084190611ee8565b600b805460ff1916911515919091179055565b600e546001600160a01b0316331480610c16575033610c0b5f546001600160a01b031690565b6001600160a01b0316145b610c325760405162461bcd60e51b815260040161084190611ee8565b600b805464ffff000000191663010000009315159390930264ff0000000019169290921764010000000091151591909102179055565b5f546001600160a01b03163314610cc15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610841565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6010546001600160a01b0316331480610d3a575033610d2f5f546001600160a01b031690565b6001600160a01b0316145b610d565760405162461bcd60e51b815260040161084190611ee8565b600b54610d75908390600160281b90046001600160a01b031683611941565b50600b54610d95908390600160281b90046001600160a01b031683611a11565b816001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610dcd575f80fd5b505af1158015610ddf573d5f803e3d5ffd5b505050505050565b600f546001600160a01b0316331480610e18575033610e0d5f546001600160a01b031690565b6001600160a01b0316145b610e345760405162461bcd60e51b815260040161084190611ee8565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b600f546001600160a01b0316331480610e8f575033610e845f546001600160a01b031690565b6001600160a01b0316145b610eab5760405162461bcd60e51b815260040161084190611ee8565b600955565b6011546001600160a01b0316331480610ee1575033610ed65f546001600160a01b031690565b6001600160a01b0316145b610efd5760405162461bcd60e51b815260040161084190611ee8565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610f49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6d9190611f20565b50505050565b600e546001600160a01b0316331480610fa4575033610f995f546001600160a01b031690565b6001600160a01b0316145b610fc05760405162461bcd60e51b815260040161084190611ee8565b600b805462ffff0019166101009315159390930262ff00001916929092176201000091151591909102179055565b600e546001600160a01b031633146110185760405162461bcd60e51b815260040161084190611ee8565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60606013805461077390611eb0565b600d546001600160a01b031633148061107a57503361106f5f546001600160a01b031690565b6001600160a01b0316145b6110965760405162461bcd60e51b815260040161084190611ee8565b5f5b818110156108ae57600160055f8585858181106110b7576110b7611f0c565b90506020020160208101906110cc9190611db1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611098565b5f6108bf338461099285604051806060016040528060258152602001611ffa60259139335f9081526002602090815260408083206001600160a01b038d16845290915290205491906118a4565b5f6108bf3384846114df565b6011546001600160a01b0316331461117e5760405162461bcd60e51b815260040161084190611ee8565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b031633146111ca5760405162461bcd60e51b815260040161084190611ee8565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031633146112165760405162461bcd60e51b815260040161084190611ee8565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146112915760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610841565b6001600160a01b0381166112f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610841565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b031633146113795760405162461bcd60e51b815260040161084190611ee8565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113fd5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610841565b6001600160a01b03821661145e5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610841565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f6114cd6201518042611f4f565b6114da9062015180611f6e565b905090565b6001600160a01b0383166115435760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610841565b5f81116115925760405162461bcd60e51b815260206004820152601c60248201527f42455032303a207472616e7366657220616d6f756e74207468652030000000006044820152606401610841565b6115ce81604051806060016040528060268152602001611fd4602691396001600160a01b0386165f9081526001602052604090205491906118a4565b6001600160a01b0384165f90815260016020908152604080832093909355600490529081205482919060ff168061161c57506001600160a01b0384165f9081526004602052604090205460ff165b6001600160a01b0386165f9081526003602052604090205490915060ff16156116e25780806116545750600b546301000000900460ff165b61168a5760405162461bcd60e51b81526020600482015260076024820152666e6f742062757960c81b6044820152606401610841565b6001600160a01b0384165f9081526005602052604090205460ff166116dd57600b54640100000000900460ff16156116dd57600c54600a546116da9187916001600160a01b039091169086611a9b565b91505b611820565b6001600160a01b0384165f9081526003602052604090205460ff161561179a5780806117155750600b54610100900460ff165b61174c5760405162461bcd60e51b81526020600482015260086024820152671b9bdd081cd95b1b60c21b6044820152606401610841565b6001600160a01b0385165f9081526005602052604090205460ff166116dd57600b5462010000900460ff16156116dd57600c546009546116da9187916001600160a01b039091169086611a9b565b6001600160a01b0384165f9081526005602052604090205460ff161580156117da57506001600160a01b0385165f9081526005602052604090205460ff16155b1561182057600b5460ff166118205760405162461bcd60e51b815260206004820152600c60248201526b3737ba103a3930b739b332b960a11b6044820152606401610841565b6001600160a01b0384165f9081526001602052604090205461184290836118dc565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118959086815260200190565b60405180910390a35050505050565b5f81848411156118c75760405162461bcd60e51b81526004016108419190611c77565b505f6118d38486611f85565b95945050505050565b5f806118e88385611f98565b90508381101561193a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610841565b9392505050565b5f61197e82604051806060016040528060268152602001611fd4602691396001600160a01b0387165f9081526001602052604090205491906118a4565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546119ac90836118dc565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ff9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0382161580611a3b5750600b546001600160a01b03838116600160281b90920416145b156108ae57600854611a4d90826118dc565b600855600b546040516001600160a01b03600160281b9092048216918516907fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453906114b29085815260200190565b5f825f03611aaa575080611b0f565b5f611ac16103e8611abb8587611b17565b90611b95565b9050611acd8184611f85565b91508015611b0d578060065f611ae16114bf565b81526020019081526020015f205f828254611afc9190611f98565b90915550611b0d9050868683611bd6565b505b949350505050565b5f825f03611b2657505f6108c3565b5f611b318385611f6e565b905082611b3e8583611f4f565b1461193a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610841565b5f61193a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c4b565b6001600160a01b0382165f90815260016020526040902054611bf890826118dc565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114b29085815260200190565b5f8183611c6b5760405162461bcd60e51b81526004016108419190611c77565b505f6118d38486611f4f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060208385031215611cbd575f80fd5b823567ffffffffffffffff811115611cd3575f80fd5b8301601f81018513611ce3575f80fd5b803567ffffffffffffffff811115611cf9575f80fd5b8560208260051b8401011115611d0d575f80fd5b6020919091019590945092505050565b80356001600160a01b0381168114611d33575f80fd5b919050565b5f8060408385031215611d49575f80fd5b611d5283611d1d565b946020939093013593505050565b5f60208284031215611d70575f80fd5b5035919050565b5f805f60608486031215611d89575f80fd5b611d9284611d1d565b9250611da060208501611d1d565b929592945050506040919091013590565b5f60208284031215611dc1575f80fd5b61193a82611d1d565b8015158114611dd7575f80fd5b50565b5f60208284031215611dea575f80fd5b813561193a81611dca565b5f8060408385031215611e06575f80fd5b8235611e1181611dca565b91506020830135611e2181611dca565b809150509250929050565b5f8060408385031215611e3d575f80fd5b611e1183611d1d565b5f805f60608486031215611e58575f80fd5b611e6184611d1d565b925060208401359150611e7660408501611d1d565b90509250925092565b5f8060408385031215611e90575f80fd5b611e9983611d1d565b9150611ea760208401611d1d565b90509250929050565b600181811c90821680611ec457607f821691505b602082108103611ee257634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600a908201526930baba341032b93937b960b11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f30575f80fd5b815161193a81611dca565b634e487b7160e01b5f52601160045260245ffd5b5f82611f6957634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108c3576108c3611f3b565b818103818111156108c3576108c3611f3b565b808201808211156108c3576108c3611f3b56fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a9e1a3b8e85a94467d71190fda012b555424ddd08a37ee2a1f9054b6d3d8c3ec64736f6c634300081a0033
Deployed Bytecode Sourcemap
12697:459:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:65;;;;;-1:-1:-1;;;;;4231:65:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;4231:65:0;;;;;;;;12454:74;;;:::i;:::-;;;;;;;:::i;9749:231::-;;;;;;:::i;:::-;;:::i;:::-;;5240:143;;;;;;:::i;:::-;;:::i;:::-;;;1908:14:1;;1901:22;1883:41;;1871:2;1856:18;5240:143:0;1743:187:1;8860:96:0;;;:::i;:::-;;;2081:25:1;;;2069:2;2054:18;8860:96:0;1935:177:1;10085:138:0;;;;;;:::i;:::-;;:::i;4743:88::-;4814:12;;4743:88;;4054:33;;;;;;;;;;;;5388:306;;;;;;:::i;:::-;;:::i;4511:68::-;;;;;-1:-1:-1;;;;;4511:68:0;;;12616:74;12676:9;;12616:74;;12676:9;;;;2869:36:1;;2857:2;2842:18;12616:74:0;2727:184:1;11012:118:0;;;;;;:::i;:::-;;:::i;5699:192::-;;;;;;:::i;:::-;;:::i;8961:223::-;;;;;;:::i;:::-;;:::i;4371:65::-;;;;;-1:-1:-1;;;;;4371:65:0;;;3895:21;;;;;;9189:227;;;;;;:::i;:::-;;:::i;4440:67::-;;;;;-1:-1:-1;;;;;4440:67:0;;;3955:28;;;;;;9985:95;;;;;;:::i;:::-;-1:-1:-1;;;;;10057:18:0;10039:4;10057:18;;;:12;:18;;;;;;;;;9985:95;4020:30;;;;;;;;;;;;11795:147;;;;;;:::i;:::-;;:::i;3922:29::-;;;;;;11595:195;;;;;;:::i;:::-;;:::i;9421:91::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9490:17:0;9472:4;9490:17;;;:11;:17;;;;;;;;;9421:91;4836:107;;;;;;:::i;:::-;-1:-1:-1;;;;;4920:18:0;4902:4;4920:18;;;:9;:18;;;;;;;4836:107;2915:133;;;:::i;3987:29::-;;;;;;;;;11947:236;;;;;;:::i;:::-;;:::i;3818:39::-;;;;;;:::i;:::-;;;;;;;;;;;;;;4163:64;;;;;-1:-1:-1;;;4163:64:0;;-1:-1:-1;;;;;4163:64:0;;;10373:175;;;;;;:::i;:::-;;:::i;10228:140::-;;;;;;:::i;:::-;;:::i;12947:206::-;;;;;;:::i;:::-;;:::i;2333:70::-;2371:7;2392:6;-1:-1:-1;;;;;2392:6:0;2333:70;;11392:198;;;;;;:::i;:::-;;:::i;10778:112::-;;;;;;:::i;:::-;;:::i;12533:78::-;;;:::i;9517:227::-;;;;;;:::i;:::-;;:::i;5896:260::-;;;;;;:::i;:::-;;:::i;4300:67::-;;;;;-1:-1:-1;;;;;4300:67:0;;;4948:149;;;;;;:::i;:::-;;:::i;4091:30::-;;;;;;;;;;;;4583:69;;;;;-1:-1:-1;;;;;4583:69:0;;;4125:32;;;;;;;;;;;;11261:126;;;;;;:::i;:::-;;:::i;5102:133::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5202:19:0;;;5184:4;5202:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5102:133;10893:114;;;;;;:::i;:::-;;:::i;10553:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10627:22:0;10609:4;10627:22;;;:13;:22;;;;;;;;;10553:101;10659:114;;;;;;:::i;:::-;;:::i;3188:223::-;;;;;;:::i;:::-;;:::i;11135:121::-;;;;;;:::i;:::-;;:::i;12454:74::-;12491:13;12518:5;12511:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12454:74;:::o;9749:231::-;9822:7;;-1:-1:-1;;;;;9822:7:0;9833:10;9822:21;;:46;;-1:-1:-1;9858:10:0;9847:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;9847:7;-1:-1:-1;;;;;9847:21:0;;9822:46;9814:69;;;;-1:-1:-1;;;9814:69:0;;;;;;;:::i;:::-;;;;;;;;;9893:6;9888:88;9905:19;;;9888:88;;;9965:5;9937:12;:25;9950:8;;9959:1;9950:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9937:25:0;;;;;;;;;;;;-1:-1:-1;9937:25:0;:33;;-1:-1:-1;;9937:33:0;;;;;;;;;;-1:-1:-1;9926:3:0;9888:88;;;;9749:231;;:::o;5240:143::-;5312:4;5323:39;1898:10;5346:7;5355:6;5323:8;:39::i;:::-;-1:-1:-1;5374:4:0;5240:143;;;;;:::o;8860:96::-;8909:4;8927:7;:24;8935:15;:13;:15::i;:::-;8927:24;;;;;;;;;;;;8920:31;;8860:96;:::o;10085:138::-;10139:7;;-1:-1:-1;;;;;10139:7:0;10150:10;10139:21;;:46;;-1:-1:-1;10175:10:0;10164:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;10164:7;-1:-1:-1;;;;;10164:21:0;;10139:46;10131:69;;;;-1:-1:-1;;;10131:69:0;;;;;;;:::i;:::-;10205:7;:13;10085:138::o;5388:306::-;5483:4;5494:36;5504:6;5512:9;5523:6;5494:9;:36::i;:::-;5535:138;5549:6;1898:10;5579:89;5617:6;5579:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5579:19:0;;;;;;:11;:19;;;;;;;;1898:10;5579:33;;;;;;;;;;:37;:89::i;:::-;5535:8;:138::i;:::-;-1:-1:-1;5685:4:0;5388:306;;;;;:::o;11012:118::-;11069:7;;-1:-1:-1;;;;;11069:7:0;11080:10;11069:21;11061:44;;;;-1:-1:-1;;;11061:44:0;;;;;;;:::i;:::-;11110:7;:15;;-1:-1:-1;;;;;;11110:15:0;-1:-1:-1;;;;;11110:15:0;;;;;;;;;;11012:118::o;5699:192::-;1898:10;5776:4;5819:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5819:34:0;;;;;;;;;;5776:4;;5787:83;;5810:7;;5819:50;;5858:10;5819:38;:50::i;8961:223::-;9028:7;;-1:-1:-1;;;;;9028:7:0;9039:10;9028:21;;:46;;-1:-1:-1;9064:10:0;9053:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;9053:7;-1:-1:-1;;;;;9053:21:0;;9028:46;9020:69;;;;-1:-1:-1;;;9020:69:0;;;;;;;:::i;:::-;9099:6;9094:86;9111:19;;;9094:86;;;9170:4;9143:11;:24;9155:8;;9164:1;9155:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9143:24:0;;;;;;;;;;;;-1:-1:-1;9143:24:0;:31;;-1:-1:-1;;9143:31:0;;;;;;;;;;-1:-1:-1;9132:3:0;9094:86;;9189:227;9259:7;;-1:-1:-1;;;;;9259:7:0;9270:10;9259:21;;:46;;-1:-1:-1;9295:10:0;9284:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;9284:7;-1:-1:-1;;;;;9284:21:0;;9259:46;9251:69;;;;-1:-1:-1;;;9251:69:0;;;;;;;:::i;:::-;9330:6;9325:87;9342:19;;;9325:87;;;9401:5;9374:11;:24;9386:8;;9395:1;9386:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9374:24:0;;;;;;;;;;;;-1:-1:-1;9374:24:0;:32;;-1:-1:-1;;9374:32:0;;;;;;;;;;-1:-1:-1;9363:3:0;9325:87;;11795:147;11853:5;;-1:-1:-1;;;;;11853:5:0;11862:10;11853:19;;:44;;-1:-1:-1;11887:10:0;11876:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;11876:7;-1:-1:-1;;;;;11876:21:0;;11853:44;11845:67;;;;-1:-1:-1;;;11845:67:0;;;;;;;:::i;:::-;11917:9;:20;;-1:-1:-1;;11917:20:0;;;;;;;;;;11795:147::o;11595:195::-;11670:5;;-1:-1:-1;;;;;11670:5:0;11679:10;11670:19;;:44;;-1:-1:-1;11704:10:0;11693:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;11693:7;-1:-1:-1;;;;;11693:21:0;;11670:44;11662:67;;;;-1:-1:-1;;;11662:67:0;;;;;;;:::i;:::-;11734:10;:21;;-1:-1:-1;;11760:25:0;11734:21;;;;;;;;-1:-1:-1;;11760:25:0;;;;;;;;;;;;;;;;11595:195::o;2915:133::-;2518:6;;-1:-1:-1;;;;;2518:6:0;1898:10;2518:22;2510:67;;;;-1:-1:-1;;;2510:67:0;;5879:2:1;2510:67:0;;;5861:21:1;;;5898:18;;;5891:30;5957:34;5937:18;;;5930:62;6009:18;;2510:67:0;5677:356:1;2510:67:0;3016:1:::1;3000:6:::0;;2979:40:::1;::::0;-1:-1:-1;;;;;3000:6:0;;::::1;::::0;2979:40:::1;::::0;3016:1;;2979:40:::1;3041:1;3024:19:::0;;-1:-1:-1;;;;;;3024:19:0::1;::::0;;2915:133::o;11947:236::-;12024:8;;-1:-1:-1;;;;;12024:8:0;12036:10;12024:22;;:47;;-1:-1:-1;12061:10:0;12050:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;12050:7;-1:-1:-1;;;;;12050:21:0;;12024:47;12016:70;;;;-1:-1:-1;;;12016:70:0;;;;;;;:::i;:::-;12112:4;;12091:34;;12106:4;;-1:-1:-1;;;12112:4:0;;-1:-1:-1;;;;;12112:4:0;12118:6;12091:14;:34::i;:::-;-1:-1:-1;12142:4:0;;12130:25;;12136:4;;-1:-1:-1;;;12142:4:0;;-1:-1:-1;;;;;12142:4:0;12148:6;12130:5;:25::i;:::-;12166:4;-1:-1:-1;;;;;12160:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11947:236;;:::o;10373:175::-;10444:7;;-1:-1:-1;;;;;10444:7:0;10455:10;10444:21;;:46;;-1:-1:-1;10480:10:0;10469:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;10469:7;-1:-1:-1;;;;;10469:21:0;;10444:46;10436:69;;;;-1:-1:-1;;;10436:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10510:22:0;;;;;;;;:13;:22;;;;;:33;;-1:-1:-1;;10510:33:0;;;;;;;;;;10373:175::o;10228:140::-;10283:7;;-1:-1:-1;;;;;10283:7:0;10294:10;10283:21;;:46;;-1:-1:-1;10319:10:0;10308:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;10308:7;-1:-1:-1;;;;;10308:21:0;;10283:46;10275:69;;;;-1:-1:-1;;;10275:69:0;;;;;;;:::i;:::-;10349:8;:14;10228:140::o;12947:206::-;13043:9;;-1:-1:-1;;;;;13043:9:0;13056:10;13043:23;;:48;;-1:-1:-1;13081:10:0;13070:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;13070:7;-1:-1:-1;;;;;13070:21:0;;13043:48;13035:71;;;;-1:-1:-1;;;13035:71:0;;;;;;;:::i;:::-;13111:37;;-1:-1:-1;;;13111:37:0;;-1:-1:-1;;;;;6230:32:1;;;13111:37:0;;;6212:51:1;6279:18;;;6272:34;;;13111:23:0;;;;;6185:18:1;;13111:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12947:206;;;:::o;11392:198::-;11468:5;;-1:-1:-1;;;;;11468:5:0;11477:10;11468:19;;:44;;-1:-1:-1;11502:10:0;11491:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;11491:7;-1:-1:-1;;;;;11491:21:0;;11468:44;11460:67;;;;-1:-1:-1;;;11460:67:0;;;;;;;:::i;:::-;11532:11;:22;;-1:-1:-1;;11559:26:0;11532:22;;;;;;;;-1:-1:-1;;11559:26:0;;;;;;;;;;;;;;;;11392:198::o;10778:112::-;10833:5;;-1:-1:-1;;;;;10833:5:0;10842:10;10833:19;10825:42;;;;-1:-1:-1;;;10825:42:0;;;;;;;:::i;:::-;10872:5;:13;;-1:-1:-1;;;;;;10872:13:0;-1:-1:-1;;;;;10872:13:0;;;;;;;;;;10778:112::o;12533:78::-;12572:13;12599:7;12592:14;;;;;:::i;9517:227::-;9587:7;;-1:-1:-1;;;;;9587:7:0;9598:10;9587:21;;:46;;-1:-1:-1;9623:10:0;9612:7;2371;2392:6;-1:-1:-1;;;;;2392:6:0;;2333:70;9612:7;-1:-1:-1;;;;;9612:21:0;;9587:46;9579:69;;;;-1:-1:-1;;;9579:69:0;;;;;;;:::i;:::-;9658:6;9653:87;9670:19;;;9653:87;;;9730:4;9702:12;:25;9715:8;;9724:1;9715:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9702:25:0;;;;;;;;;;;;-1:-1:-1;9702:25:0;:32;;-1:-1:-1;;9702:32:0;;;;;;;;;;-1:-1:-1;9691:3:0;9653:87;;5896:260;5978:4;5989:146;1898:10;6021:7;6034:96;6073:15;6034:96;;;;;;;;;;;;;;;;;1898:10;6034:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6034:34:0;;;;;;;;;;;;:38;:96::i;4948:149::-;5023:4;5034:42;1898:10;5058:9;5069:6;5034:9;:42::i;11261:126::-;11322:9;;-1:-1:-1;;;;;11322:9:0;11335:10;11322:23;11314:46;;;;-1:-1:-1;;;11314:46:0;;;;;;;:::i;:::-;11365:9;:17;;-1:-1:-1;;;;;;11365:17:0;-1:-1:-1;;;;;11365:17:0;;;;;;;;;;11261:126::o;10893:114::-;10948:7;;-1:-1:-1;;;;;10948:7:0;10959:10;10948:21;10940:44;;;;-1:-1:-1;;;10940:44:0;;;;;;;:::i;:::-;10989:5;:13;;-1:-1:-1;;;;;;10989:13:0;-1:-1:-1;;;;;10989:13:0;;;;;;;;;;10893:114::o;10659:::-;10712:7;;-1:-1:-1;;;;;10712:7:0;10723:10;10712:21;10704:44;;;;-1:-1:-1;;;10704:44:0;;;;;;;:::i;:::-;10753:7;:15;;-1:-1:-1;;;;;;10753:15:0;-1:-1:-1;;;;;10753:15:0;;;;;;;;;;10659:114::o;3188:223::-;2518:6;;-1:-1:-1;;;;;2518:6:0;1898:10;2518:22;2510:67;;;;-1:-1:-1;;;2510:67:0;;5879:2:1;2510:67:0;;;5861:21:1;;;5898:18;;;5891:30;5957:34;5937:18;;;5930:62;6009:18;;2510:67:0;5677:356:1;2510:67:0;-1:-1:-1;;;;;3271:22:0;::::1;3263:73;;;::::0;-1:-1:-1;;;3263:73:0;;6769:2:1;3263:73:0::1;::::0;::::1;6751:21:1::0;6808:2;6788:18;;;6781:30;6847:34;6827:18;;;6820:62;-1:-1:-1;;;6898:18:1;;;6891:36;6944:19;;3263:73:0::1;6567:402:1::0;3263:73:0::1;3367:6;::::0;;3346:38:::1;::::0;-1:-1:-1;;;;;3346:38:0;;::::1;::::0;3367:6;::::1;::::0;3346:38:::1;::::0;::::1;3389:6;:17:::0;;-1:-1:-1;;;;;;3389:17:0::1;-1:-1:-1::0;;;;;3389:17:0;;;::::1;::::0;;;::::1;::::0;;3188:223::o;11135:121::-;11193:8;;-1:-1:-1;;;;;11193:8:0;11205:10;11193:22;11185:45;;;;-1:-1:-1;;;11185:45:0;;;;;;;:::i;:::-;11235:8;:16;;-1:-1:-1;;;;;;11235:16:0;-1:-1:-1;;;;;11235:16:0;;;;;;;;;;11135:121::o;8432:312::-;-1:-1:-1;;;;;8518:20:0;;8510:69;;;;-1:-1:-1;;;8510:69:0;;7176:2:1;8510:69:0;;;7158:21:1;7215:2;7195:18;;;7188:30;7254:34;7234:18;;;7227:62;-1:-1:-1;;;7305:18:1;;;7298:34;7349:19;;8510:69:0;6974:400:1;8510:69:0;-1:-1:-1;;;;;8592:21:0;;8584:68;;;;-1:-1:-1;;;8584:68:0;;7581:2:1;8584:68:0;;;7563:21:1;7620:2;7600:18;;;7593:30;7659:34;7639:18;;;7632:62;-1:-1:-1;;;7710:18:1;;;7703:32;7752:19;;8584:68:0;7379:398:1;8584:68:0;-1:-1:-1;;;;;8659:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;8706:33;;2081:25:1;;;8706:33:0;;2054:18:1;8706:33:0;;;;;;;;8432:312;;;:::o;8749:106::-;8797:4;8816:24;8834:6;8816:15;:24;:::i;:::-;8815:35;;8844:6;8815:35;:::i;:::-;8808:42;;8749:106;:::o;6161:1123::-;-1:-1:-1;;;;;6250:20:0;;6242:70;;;;-1:-1:-1;;;6242:70:0;;8511:2:1;6242:70:0;;;8493:21:1;8550:2;8530:18;;;8523:30;8589:34;8569:18;;;8562:62;-1:-1:-1;;;8640:18:1;;;8633:35;8685:19;;6242:70:0;8309:401:1;6242:70:0;6334:1;6325:6;:10;6317:51;;;;-1:-1:-1;;;6317:51:0;;8917:2:1;6317:51:0;;;8899:21:1;8956:2;8936:18;;;8929:30;8995;8975:18;;;8968:58;9043:18;;6317:51:0;8715:352:1;6317:51:0;6393:71;6415:6;6393:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6393:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6373:17:0;;;;;;:9;:17;;;;;;;;:91;;;;6525:11;:19;;;;;;6491:6;;6373:17;6525:19;;;:45;;-1:-1:-1;;;;;;6548:22:0;;;;;;:11;:22;;;;;;;;6525:45;-1:-1:-1;;;;;6579:21:0;;;;;;:13;:21;;;;;;6502:68;;-1:-1:-1;6579:21:0;;6575:590;;;6616:15;:29;;;-1:-1:-1;6635:10:0;;;;;;;6616:29;6608:49;;;;-1:-1:-1;;;6608:49:0;;9274:2:1;6608:49:0;;;9256:21:1;9313:1;9293:18;;;9286:29;-1:-1:-1;;;9331:18:1;;;9324:37;9378:18;;6608:49:0;9072:330:1;6608:49:0;-1:-1:-1;;;;;6668:23:0;;;;;;:12;:23;;;;;;;;6663:131;;6704:13;;;;;;;6700:88;;;6757:5;;6764:7;;6739:41;;6749:6;;-1:-1:-1;;;;;6757:5:0;;;;6773:6;6739:9;:41::i;:::-;6727:53;;6700:88;6575:590;;;-1:-1:-1;;;;;6809:24:0;;;;;;:13;:24;;;;;;;;6805:360;;;6849:15;:30;;;-1:-1:-1;6868:11:0;;;;;;;6849:30;6841:51;;;;-1:-1:-1;;;6841:51:0;;9609:2:1;6841:51:0;;;9591:21:1;9648:1;9628:18;;;9621:29;-1:-1:-1;;;9666:18:1;;;9659:38;9714:18;;6841:51:0;9407:331:1;6841:51:0;-1:-1:-1;;;;;6903:20:0;;;;;;:12;:20;;;;;;;;6898:130;;6936:14;;;;;;;6932:90;;;6990:5;;6997:8;;6972:42;;6982:6;;-1:-1:-1;;;;;6990:5:0;;;;7007:6;6972:9;:42::i;6805:360::-;-1:-1:-1;;;;;7051:23:0;;;;;;:12;:23;;;;;;;;7050:24;:49;;;;-1:-1:-1;;;;;;7079:20:0;;;;;;:12;:20;;;;;;;;7078:21;7050:49;7046:114;;;7126:9;;;;7118:34;;;;-1:-1:-1;;;7118:34:0;;9945:2:1;7118:34:0;;;9927:21:1;9984:2;9964:18;;;9957:30;-1:-1:-1;;;10003:18:1;;;9996:42;10055:18;;7118:34:0;9743:336:1;7118:34:0;-1:-1:-1;;;;;7194:20:0;;;;;;:9;:20;;;;;;:35;;7219:9;7194:24;:35::i;:::-;-1:-1:-1;;;;;7171:20:0;;;;;;;:9;:20;;;;;;;:58;;;;7241:38;;;;;;;;;;7269:9;2081:25:1;;2069:2;2054:18;;1935:177;7241:38:0;;;;;;;;6237:1047;;6161:1123;;;:::o;1068:159::-;1148:4;1175:12;1167:6;;;;1159:29;;;;-1:-1:-1;;;1159:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1193:6:0;1202:5;1206:1;1202;:5;:::i;:::-;1193:14;1068:159;-1:-1:-1;;;;;1068:159:0:o;792:148::-;844:4;;864:5;868:1;864;:5;:::i;:::-;855:14;;887:1;882;:6;;874:46;;;;-1:-1:-1;;;874:46:0;;10549:2:1;874:46:0;;;10531:21:1;10588:2;10568:18;;;10561:30;10627:29;10607:18;;;10600:57;10674:18;;874:46:0;10347:351:1;874:46:0;934:1;792:148;-1:-1:-1;;;792:148:0:o;7839:321::-;7932:4;7963:71;7985:6;7963:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7963:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;7943:17:0;;;;;;;:9;:17;;;;;;:91;;;;8062:20;;;;;;;:32;;8087:6;8062:24;:32::i;:::-;-1:-1:-1;;;;;8039:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8104:35;;;;;;;;;;8132:6;2081:25:1;;2069:2;2054:18;;1935:177;8104:35:0;;;;;;;;-1:-1:-1;8151:4:0;7839:321;;;;;:::o;8165:262::-;-1:-1:-1;;;;;8245:23:0;;;;:44;;-1:-1:-1;8285:4:0;;-1:-1:-1;;;;;8272:17:0;;;-1:-1:-1;;;8285:4:0;;;;8272:17;8245:44;8241:182;;;8309:9;;:21;;8323:6;8309:13;:21::i;:::-;8297:9;:33;8404:4;;8391:26;;-1:-1:-1;;;;;;;;8404:4:0;;;;;;8391:26;;;;;;;8410:6;2081:25:1;;2069:2;2054:18;;1935:177;7289:362:0;7410:17;7438:7;7449:1;7438:12;7434:31;;-1:-1:-1;7459:6:0;7452:13;;7434:31;7472:11;7486:29;7510:4;7486:19;:6;7497:7;7486:10;:19::i;:::-;:23;;:29::i;:::-;7472:43;-1:-1:-1;7534:12:0;7472:43;7534:6;:12;:::i;:::-;7522:24;-1:-1:-1;7557:7:0;;7553:94;;7600:3;7572:7;:24;7580:15;:13;:15::i;:::-;7572:24;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;7609:32:0;;-1:-1:-1;7618:6:0;7626:9;7637:3;7609:8;:32::i;:::-;7429:222;7289:362;;;;;;;:::o;1232:196::-;1284:4;1299:1;1304;1299:6;1295:32;;-1:-1:-1;1320:1:0;1313:8;;1295:32;1333:6;1342:5;1346:1;1342;:5;:::i;:::-;1333:14;-1:-1:-1;1369:1:0;1360:5;1364:1;1333:14;1360:5;:::i;:::-;:10;1352:56;;;;-1:-1:-1;;;1352:56:0;;10905:2:1;1352:56:0;;;10887:21:1;10944:2;10924:18;;;10917:30;10983:34;10963:18;;;10956:62;-1:-1:-1;;;11034:18:1;;;11027:31;11075:19;;1352:56:0;10703:397:1;1433:114:0;1485:4;1503:39;1507:1;1510;1503:39;;;;;;;;;;;;;;;;;:3;:39::i;7656:178::-;-1:-1:-1;;;;;7758:20:0;;;;;;:9;:20;;;;;;:29;;7783:3;7758:24;:29::i;:::-;-1:-1:-1;;;;;7735:20:0;;;;;;;:9;:20;;;;;;;:52;;;;7797:32;;;;;;;;;;7825:3;2081:25:1;;2069:2;2054:18;;1935:177;1552:219:0;1632:4;1719:12;1712:5;1704:28;;;;-1:-1:-1;;;1704:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1737:6:0;1746:5;1750:1;1746;:5;:::i;222:418:1:-;371:2;360:9;353:21;334:4;403:6;397:13;446:6;441:2;430:9;426:18;419:34;505:6;500:2;492:6;488:15;483:2;472:9;468:18;462:50;561:1;556:2;547:6;536:9;532:22;528:31;521:42;631:2;624;620:7;615:2;607:6;603:15;599:29;588:9;584:45;580:54;572:62;;;222:418;;;;:::o;645:610::-;731:6;739;792:2;780:9;771:7;767:23;763:32;760:52;;;808:1;805;798:12;760:52;848:9;835:23;881:18;873:6;870:30;867:50;;;913:1;910;903:12;867:50;936:22;;989:4;981:13;;977:27;-1:-1:-1;967:55:1;;1018:1;1015;1008:12;967:55;1058:2;1045:16;1084:18;1076:6;1073:30;1070:50;;;1116:1;1113;1106:12;1070:50;1169:7;1164:2;1154:6;1151:1;1147:14;1143:2;1139:23;1135:32;1132:45;1129:65;;;1190:1;1187;1180:12;1129:65;1221:2;1213:11;;;;;1243:6;;-1:-1:-1;645:610:1;-1:-1:-1;;;645:610:1:o;1260:173::-;1328:20;;-1:-1:-1;;;;;1377:31:1;;1367:42;;1357:70;;1423:1;1420;1413:12;1357:70;1260:173;;;:::o;1438:300::-;1506:6;1514;1567:2;1555:9;1546:7;1542:23;1538:32;1535:52;;;1583:1;1580;1573:12;1535:52;1606:29;1625:9;1606:29;:::i;:::-;1596:39;1704:2;1689:18;;;;1676:32;;-1:-1:-1;;;1438:300:1:o;2117:226::-;2176:6;2229:2;2217:9;2208:7;2204:23;2200:32;2197:52;;;2245:1;2242;2235:12;2197:52;-1:-1:-1;2290:23:1;;2117:226;-1:-1:-1;2117:226:1:o;2348:374::-;2425:6;2433;2441;2494:2;2482:9;2473:7;2469:23;2465:32;2462:52;;;2510:1;2507;2500:12;2462:52;2533:29;2552:9;2533:29;:::i;:::-;2523:39;;2581:38;2615:2;2604:9;2600:18;2581:38;:::i;:::-;2348:374;;2571:48;;-1:-1:-1;;;2688:2:1;2673:18;;;;2660:32;;2348:374::o;2916:186::-;2975:6;3028:2;3016:9;3007:7;3003:23;2999:32;2996:52;;;3044:1;3041;3034:12;2996:52;3067:29;3086:9;3067:29;:::i;3107:118::-;3193:5;3186:13;3179:21;3172:5;3169:32;3159:60;;3215:1;3212;3205:12;3159:60;3107:118;:::o;3230:241::-;3286:6;3339:2;3327:9;3318:7;3314:23;3310:32;3307:52;;;3355:1;3352;3345:12;3307:52;3394:9;3381:23;3413:28;3435:5;3413:28;:::i;3476:376::-;3538:6;3546;3599:2;3587:9;3578:7;3574:23;3570:32;3567:52;;;3615:1;3612;3605:12;3567:52;3654:9;3641:23;3673:28;3695:5;3673:28;:::i;:::-;3720:5;-1:-1:-1;3777:2:1;3762:18;;3749:32;3790:30;3749:32;3790:30;:::i;:::-;3839:7;3829:17;;;3476:376;;;;;:::o;3857:315::-;3922:6;3930;3983:2;3971:9;3962:7;3958:23;3954:32;3951:52;;;3999:1;3996;3989:12;3951:52;4022:29;4041:9;4022:29;:::i;4177:374::-;4254:6;4262;4270;4323:2;4311:9;4302:7;4298:23;4294:32;4291:52;;;4339:1;4336;4329:12;4291:52;4362:29;4381:9;4362:29;:::i;:::-;4352:39;-1:-1:-1;4460:2:1;4445:18;;4432:32;;-1:-1:-1;4507:38:1;4541:2;4526:18;;4507:38;:::i;:::-;4497:48;;4177:374;;;;;:::o;4556:260::-;4624:6;4632;4685:2;4673:9;4664:7;4660:23;4656:32;4653:52;;;4701:1;4698;4691:12;4653:52;4724:29;4743:9;4724:29;:::i;:::-;4714:39;;4772:38;4806:2;4795:9;4791:18;4772:38;:::i;:::-;4762:48;;4556:260;;;;;:::o;4821:380::-;4900:1;4896:12;;;;4943;;;4964:61;;5018:4;5010:6;5006:17;4996:27;;4964:61;5071:2;5063:6;5060:14;5040:18;5037:38;5034:161;;5117:10;5112:3;5108:20;5105:1;5098:31;5152:4;5149:1;5142:15;5180:4;5177:1;5170:15;5034:161;;4821:380;;;:::o;5206:334::-;5408:2;5390:21;;;5447:2;5427:18;;;5420:30;-1:-1:-1;;;5481:2:1;5466:18;;5459:40;5531:2;5516:18;;5206:334::o;5545:127::-;5606:10;5601:3;5597:20;5594:1;5587:31;5637:4;5634:1;5627:15;5661:4;5658:1;5651:15;6317:245;6384:6;6437:2;6425:9;6416:7;6412:23;6408:32;6405:52;;;6453:1;6450;6443:12;6405:52;6485:9;6479:16;6504:28;6526:5;6504:28;:::i;7782:127::-;7843:10;7838:3;7834:20;7831:1;7824:31;7874:4;7871:1;7864:15;7898:4;7895:1;7888:15;7914:217;7954:1;7980;7970:132;;8024:10;8019:3;8015:20;8012:1;8005:31;8059:4;8056:1;8049:15;8087:4;8084:1;8077:15;7970:132;-1:-1:-1;8116:9:1;;7914:217::o;8136:168::-;8209:9;;;8240;;8257:15;;;8251:22;;8237:37;8227:71;;8278:18;;:::i;10084:128::-;10151:9;;;10172:11;;;10169:37;;;10186:18;;:::i;10217:125::-;10282:9;;;10303:10;;;10300:36;;;10316:18;;:::i
Swarm Source
ipfs://a9e1a3b8e85a94467d71190fda012b555424ddd08a37ee2a1f9054b6d3d8c3ec
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.