ERC-20
Overview
Max Total Supply
1,000,000,000,000 SHEP
Holders
221
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,987,872.216684485 SHEPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ShepFinance
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-25 */ /** *Submitted for verification at Etherscan.io on 2021-03-27 */ /** *Submitted for verification at Etherscan.io on 2021-03-20 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.6.12; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @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; } } contract ShepFinance is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcluded; address[] private _excluded; address private constant _cBoost = 0xb28A99EA34F5D826fA91C2Bfbc6AD00C4857C5f9; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000 * 10**6 * 10**9 ; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _tBoostTotal; string private _name = 'Shep.Finance'; string private _symbol = 'SHEP'; uint8 private _decimals = 9; constructor () public { _rOwned[_msgSender()] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); } 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; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { (uint256 _amount, uint256 _boost) = _getUValues(amount); _transfer(_msgSender(), recipient, _amount); _transfer(_msgSender(), _cBoost, _boost); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function totalBoost() public view returns (uint256) { return _tBoostTotal; } function reflect(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeAccount(address account) external onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _approve(address owner, address spender, uint256 amount) private { 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 _getUValues(uint256 amount) private pure returns (uint256, uint256) { uint256 _boost = amount.div(1000); uint256 _amount = amount.sub(_boost); return (_amount, _boost); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); if (recipient == _cBoost) _reflectBoost(tTransferAmount); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); if (recipient == _cBoost) _reflectBoost(tTransferAmount); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); if (recipient == _cBoost) _reflectBoost(tTransferAmount); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); if (recipient == _cBoost) _reflectBoost(tTransferAmount); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _reflectBoost(uint256 tTransferAmount) private { _tBoostTotal = _tBoostTotal.add(tTransferAmount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee); } function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) { uint256 tFee = tAmount.div(100).mul(2); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"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":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","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":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBoost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","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"}]
Contract Creation Code
6080604052683635c9adc5dea00000600019816200001957fe5b06600019036006556040518060400160405280600c81526020017f536865702e46696e616e63650000000000000000000000000000000000000000815250600990805190602001906200006e92919062000278565b506040518060400160405280600481526020017f5348455000000000000000000000000000000000000000000000000000000000815250600a9080519060200190620000bc92919062000278565b506009600b60006101000a81548160ff021916908360ff160217905550348015620000e657600080fd5b506000620000f96200027060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460016000620001ae6200027060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001fc6200027060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040518082815260200191505060405180910390a36200031e565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002bb57805160ff1916838001178555620002ec565b82800160010185558215620002ec579182015b82811115620002eb578251825591602001919060010190620002ce565b5b509050620002fb9190620002ff565b5090565b5b808211156200031a57600081600090555060010162000300565b5090565b613574806200032e6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063a9059cbb1161007c578063a9059cbb146105cc578063cba0e99614610630578063dd62ed3e1461068a578063f2cc0c1814610702578063f2fde38b14610746578063f84354f11461078a57610142565b8063715018a6146104895780637b210b4d146104935780638da5cb5b146104b157806395d89b41146104e5578063a457c2d71461056857610142565b806323b872dd1161010a57806323b872dd146102985780632d8381191461031c578063313ce5671461035e578063395093511461037f5780634549b039146103e357806370a082311461043157610142565b8063053ab1821461014757806306fdde0314610175578063095ea7b3146101f857806313114a9d1461025c57806318160ddd1461027a575b600080fd5b6101736004803603602081101561015d57600080fd5b81019080803590602001909291905050506107ce565b005b61017d61095e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102446004803603604081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a00565b60405180821515815260200191505060405180910390f35b610264610a1e565b6040518082815260200191505060405180910390f35b610282610a28565b6040518082815260200191505060405180910390f35b610304600480360360608110156102ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a39565b60405180821515815260200191505060405180910390f35b6103486004803603602081101561033257600080fd5b8101908080359060200190929190505050610b12565b6040518082815260200191505060405180910390f35b610366610b96565b604051808260ff16815260200191505060405180910390f35b6103cb6004803603604081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bad565b60405180821515815260200191505060405180910390f35b61041b600480360360408110156103f957600080fd5b8101908080359060200190929190803515159060200190929190505050610c60565b6040518082815260200191505060405180910390f35b6104736004803603602081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d1c565b6040518082815260200191505060405180910390f35b610491610e07565b005b61049b610f8d565b6040518082815260200191505060405180910390f35b6104b9610f97565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ed610fc0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052d578082015181840152602081019050610512565b50505050905090810190601f16801561055a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105b46004803603604081101561057e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611062565b60405180821515815260200191505060405180910390f35b610618600480360360408110156105e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061112f565b60405180821515815260200191505060405180910390f35b6106726004803603602081101561064657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611185565b60405180821515815260200191505060405180910390f35b6106ec600480360360408110156106a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111db565b6040518082815260200191505060405180910390f35b6107446004803603602081101561071857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611262565b005b6107886004803603602081101561075c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061157c565b005b6107cc600480360360208110156107a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611787565b005b60006107d8611b11565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806134ee602c913960400191505060405180910390fd5b600061088883611b19565b5050505090506108e081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093881600654611b7190919063ffffffff16565b60068190555061095383600754611bbb90919063ffffffff16565b600781905550505050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000610a14610a0d611b11565b8484611c43565b6001905092915050565b6000600754905090565b6000683635c9adc5dea00000905090565b6000610a46848484611e3a565b610b0784610a52611b11565b610b028560405180606001604052806028815260200161345460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ab8611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122939092919063ffffffff16565b611c43565b600190509392505050565b6000600654821115610b6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806133c1602a913960400191505060405180910390fd5b6000610b79612353565b9050610b8e818461237e90919063ffffffff16565b915050919050565b6000600b60009054906101000a900460ff16905090565b6000610c56610bba611b11565b84610c518560036000610bcb611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b611c43565b6001905092915050565b6000683635c9adc5dea00000831115610ce1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d00576000610cf184611b19565b50505050905080915050610d16565b6000610d0b84611b19565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610db757600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e02565b610dff600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b12565b90505b919050565b610e0f611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600854905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b5050505050905090565b600061112561106f611b11565b846111208560405180606001604052806025815260200161351a6025913960036000611099611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122939092919063ffffffff16565b611c43565b6001905092915050565b600080600061113d846123c8565b9150915061115361114c611b11565b8684611e3a565b61117961115e611b11565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f983611e3a565b60019250505092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61126a611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114be5761147a600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b12565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611584611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133eb6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61178f611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661190e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611b0d578173ffffffffffffffffffffffffffffffffffffffff166005828154811061194257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b005760056001600580549050038154811061199e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106119d657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611ac657fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611b0d565b8080600101915050611911565b5050565b600033905090565b6000806000806000806000611b2d88612408565b915091506000611b3b612353565b90506000806000611b4d8c868661245a565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611bb383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612293565b905092915050565b600080828401905083811015611c39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134ca6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134116022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ec0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134a56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061339e6023913960400191505060405180910390fd5b60008111611f9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061347c6029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120425750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612057576120528383836124b8565b61228e565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120fa5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561210f5761210a83838361275d565b61228d565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121b35750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121c8576121c3838383612a02565b61228c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561226a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227f5761227a838383612c12565b61228b565b61228a838383612a02565b5b5b5b5b505050565b6000838311158290612340576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123055780820151818401526020810190506122ea565b50505050905090810190601f1680156123325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612360612f4c565b91509150612377818361237e90919063ffffffff16565b9250505090565b60006123c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131f9565b905092915050565b60008060006123e26103e88561237e90919063ffffffff16565b905060006123f98286611b7190919063ffffffff16565b90508082935093505050915091565b6000806000612434600261242660648761237e90919063ffffffff16565b6132bf90919063ffffffff16565b9050600061244b8286611b7190919063ffffffff16565b90508082935093505050915091565b60008060008061247385886132bf90919063ffffffff16565b9050600061248a86886132bf90919063ffffffff16565b905060006124a18284611b7190919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006124c986611b19565b9450945094509450945061252586600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125ba85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264f84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061269c8382613345565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f973ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156126ee576126ed8261337f565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061276e86611b19565b945094509450945094506127ca85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128f484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129418382613345565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f973ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612993576129928261337f565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612a1386611b19565b94509450945094509450612a6f85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b0484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b518382613345565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f973ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612ba357612ba28261337f565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612c2386611b19565b94509450945094509450612c7f86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d1485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e8b8382613345565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f973ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612edd57612edc8261337f565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600060065490506000683635c9adc5dea00000905060005b6005805490508110156131ae57826001600060058481548110612f8657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061306d575081600260006005848154811061300557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561308b57600654683635c9adc5dea00000945094505050506131f5565b613114600160006005848154811061309f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611b7190919063ffffffff16565b925061319f600260006005848154811061312a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611b7190919063ffffffff16565b91508080600101915050612f67565b506131cd683635c9adc5dea0000060065461237e90919063ffffffff16565b8210156131ec57600654683635c9adc5dea000009350935050506131f5565b81819350935050505b9091565b600080831182906132a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561326a57808201518184015260208101905061324f565b50505050905090810190601f1680156132975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132b157fe5b049050809150509392505050565b6000808314156132d2576000905061333f565b60008284029050828482816132e357fe5b041461333a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134336021913960400191505060405180910390fd5b809150505b92915050565b61335a82600654611b7190919063ffffffff16565b60068190555061337581600754611bbb90919063ffffffff16565b6007819055505050565b61339481600854611bbb90919063ffffffff16565b6008819055505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff13e9810158404af4492daa91fb38bc7c3fd38c7cc61f343a491fd44f6343ba64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063a9059cbb1161007c578063a9059cbb146105cc578063cba0e99614610630578063dd62ed3e1461068a578063f2cc0c1814610702578063f2fde38b14610746578063f84354f11461078a57610142565b8063715018a6146104895780637b210b4d146104935780638da5cb5b146104b157806395d89b41146104e5578063a457c2d71461056857610142565b806323b872dd1161010a57806323b872dd146102985780632d8381191461031c578063313ce5671461035e578063395093511461037f5780634549b039146103e357806370a082311461043157610142565b8063053ab1821461014757806306fdde0314610175578063095ea7b3146101f857806313114a9d1461025c57806318160ddd1461027a575b600080fd5b6101736004803603602081101561015d57600080fd5b81019080803590602001909291905050506107ce565b005b61017d61095e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102446004803603604081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a00565b60405180821515815260200191505060405180910390f35b610264610a1e565b6040518082815260200191505060405180910390f35b610282610a28565b6040518082815260200191505060405180910390f35b610304600480360360608110156102ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a39565b60405180821515815260200191505060405180910390f35b6103486004803603602081101561033257600080fd5b8101908080359060200190929190505050610b12565b6040518082815260200191505060405180910390f35b610366610b96565b604051808260ff16815260200191505060405180910390f35b6103cb6004803603604081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bad565b60405180821515815260200191505060405180910390f35b61041b600480360360408110156103f957600080fd5b8101908080359060200190929190803515159060200190929190505050610c60565b6040518082815260200191505060405180910390f35b6104736004803603602081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d1c565b6040518082815260200191505060405180910390f35b610491610e07565b005b61049b610f8d565b6040518082815260200191505060405180910390f35b6104b9610f97565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ed610fc0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052d578082015181840152602081019050610512565b50505050905090810190601f16801561055a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105b46004803603604081101561057e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611062565b60405180821515815260200191505060405180910390f35b610618600480360360408110156105e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061112f565b60405180821515815260200191505060405180910390f35b6106726004803603602081101561064657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611185565b60405180821515815260200191505060405180910390f35b6106ec600480360360408110156106a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111db565b6040518082815260200191505060405180910390f35b6107446004803603602081101561071857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611262565b005b6107886004803603602081101561075c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061157c565b005b6107cc600480360360208110156107a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611787565b005b60006107d8611b11565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806134ee602c913960400191505060405180910390fd5b600061088883611b19565b5050505090506108e081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093881600654611b7190919063ffffffff16565b60068190555061095383600754611bbb90919063ffffffff16565b600781905550505050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000610a14610a0d611b11565b8484611c43565b6001905092915050565b6000600754905090565b6000683635c9adc5dea00000905090565b6000610a46848484611e3a565b610b0784610a52611b11565b610b028560405180606001604052806028815260200161345460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ab8611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122939092919063ffffffff16565b611c43565b600190509392505050565b6000600654821115610b6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806133c1602a913960400191505060405180910390fd5b6000610b79612353565b9050610b8e818461237e90919063ffffffff16565b915050919050565b6000600b60009054906101000a900460ff16905090565b6000610c56610bba611b11565b84610c518560036000610bcb611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b611c43565b6001905092915050565b6000683635c9adc5dea00000831115610ce1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d00576000610cf184611b19565b50505050905080915050610d16565b6000610d0b84611b19565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610db757600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e02565b610dff600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b12565b90505b919050565b610e0f611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600854905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b5050505050905090565b600061112561106f611b11565b846111208560405180606001604052806025815260200161351a6025913960036000611099611b11565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122939092919063ffffffff16565b611c43565b6001905092915050565b600080600061113d846123c8565b9150915061115361114c611b11565b8684611e3a565b61117961115e611b11565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f983611e3a565b60019250505092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61126a611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156114be5761147a600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b12565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611584611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133eb6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61178f611b11565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661190e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611b0d578173ffffffffffffffffffffffffffffffffffffffff166005828154811061194257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b005760056001600580549050038154811061199e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106119d657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611ac657fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611b0d565b8080600101915050611911565b5050565b600033905090565b6000806000806000806000611b2d88612408565b915091506000611b3b612353565b90506000806000611b4d8c868661245a565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611bb383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612293565b905092915050565b600080828401905083811015611c39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134ca6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134116022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ec0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134a56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061339e6023913960400191505060405180910390fd5b60008111611f9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061347c6029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120425750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612057576120528383836124b8565b61228e565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120fa5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561210f5761210a83838361275d565b61228d565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121b35750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121c8576121c3838383612a02565b61228c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561226a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227f5761227a838383612c12565b61228b565b61228a838383612a02565b5b5b5b5b505050565b6000838311158290612340576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123055780820151818401526020810190506122ea565b50505050905090810190601f1680156123325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612360612f4c565b91509150612377818361237e90919063ffffffff16565b9250505090565b60006123c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131f9565b905092915050565b60008060006123e26103e88561237e90919063ffffffff16565b905060006123f98286611b7190919063ffffffff16565b90508082935093505050915091565b6000806000612434600261242660648761237e90919063ffffffff16565b6132bf90919063ffffffff16565b9050600061244b8286611b7190919063ffffffff16565b90508082935093505050915091565b60008060008061247385886132bf90919063ffffffff16565b9050600061248a86886132bf90919063ffffffff16565b905060006124a18284611b7190919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006124c986611b19565b9450945094509450945061252586600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125ba85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264f84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061269c8382613345565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f973ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156126ee576126ed8261337f565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061276e86611b19565b945094509450945094506127ca85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128f484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129418382613345565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f973ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612993576129928261337f565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612a1386611b19565b94509450945094509450612a6f85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b0484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b518382613345565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f973ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612ba357612ba28261337f565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612c2386611b19565b94509450945094509450612c7f86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d1485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e8b8382613345565b73b28a99ea34f5d826fa91c2bfbc6ad00c4857c5f973ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612edd57612edc8261337f565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600060065490506000683635c9adc5dea00000905060005b6005805490508110156131ae57826001600060058481548110612f8657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061306d575081600260006005848154811061300557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561308b57600654683635c9adc5dea00000945094505050506131f5565b613114600160006005848154811061309f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611b7190919063ffffffff16565b925061319f600260006005848154811061312a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611b7190919063ffffffff16565b91508080600101915050612f67565b506131cd683635c9adc5dea0000060065461237e90919063ffffffff16565b8210156131ec57600654683635c9adc5dea000009350935050506131f5565b81819350935050505b9091565b600080831182906132a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561326a57808201518184015260208101905061324f565b50505050905090810190601f1680156132975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132b157fe5b049050809150509392505050565b6000808314156132d2576000905061333f565b60008284029050828482816132e357fe5b041461333a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134336021913960400191505060405180910390fd5b809150505b92915050565b61335a82600654611b7190919063ffffffff16565b60068190555061337581600754611bbb90919063ffffffff16565b6007819055505050565b61339481600854611bbb90919063ffffffff16565b6008819055505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff13e9810158404af4492daa91fb38bc7c3fd38c7cc61f343a491fd44f6343ba64736f6c634300060c0033
Deployed Bytecode Sourcemap
15750:11118:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19060:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16726:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17756:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18867:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17003:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17925:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19886:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16912:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18246:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19444:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17106:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15192:148;;;:::i;:::-;;18962:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14550:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16817:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18472:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17312:285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18749:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17605:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20147:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15495:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20487:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19060:376;19112:14;19129:12;:10;:12::i;:::-;19112:29;;19161:11;:19;19173:6;19161:19;;;;;;;;;;;;;;;;;;;;;;;;;19160:20;19152:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19241:15;19264:19;19275:7;19264:10;:19::i;:::-;19240:43;;;;;;19312:28;19332:7;19312;:15;19320:6;19312:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19294:7;:15;19302:6;19294:15;;;;;;;;;;;;;;;:46;;;;19361:20;19373:7;19361;;:11;;:20;;;;:::i;:::-;19351:7;:30;;;;19405:23;19420:7;19405:10;;:14;;:23;;;;:::i;:::-;19392:10;:36;;;;19060:376;;;:::o;16726:83::-;16763:13;16796:5;16789:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16726:83;:::o;17756:161::-;17831:4;17848:39;17857:12;:10;:12::i;:::-;17871:7;17880:6;17848:8;:39::i;:::-;17905:4;17898:11;;17756:161;;;;:::o;18867:87::-;18909:7;18936:10;;18929:17;;18867:87;:::o;17003:95::-;17056:7;16312:23;17076:14;;17003:95;:::o;17925:313::-;18023:4;18040:36;18050:6;18058:9;18069:6;18040:9;:36::i;:::-;18087:121;18096:6;18104:12;:10;:12::i;:::-;18118:89;18156:6;18118:89;;;;;;;;;;;;;;;;;:11;:19;18130:6;18118:19;;;;;;;;;;;;;;;:33;18138:12;:10;:12::i;:::-;18118:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18087:8;:121::i;:::-;18226:4;18219:11;;17925:313;;;;;:::o;19886:253::-;19952:7;19991;;19980;:18;;19972:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20056:19;20079:10;:8;:10::i;:::-;20056:33;;20107:24;20119:11;20107:7;:11;;:24;;;;:::i;:::-;20100:31;;;19886:253;;;:::o;16912:83::-;16953:5;16978:9;;;;;;;;;;;16971:16;;16912:83;:::o;18246:218::-;18334:4;18351:83;18360:12;:10;:12::i;:::-;18374:7;18383:50;18422:10;18383:11;:25;18395:12;:10;:12::i;:::-;18383:25;;;;;;;;;;;;;;;:34;18409:7;18383:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18351:8;:83::i;:::-;18452:4;18445:11;;18246:218;;;;:::o;19444:434::-;19534:7;16312:23;19562:7;:18;;19554:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19632:17;19627:244;;19667:15;19690:19;19701:7;19690:10;:19::i;:::-;19666:43;;;;;;19731:7;19724:14;;;;;19627:244;19773:23;19803:19;19814:7;19803:10;:19::i;:::-;19771:51;;;;;;19844:15;19837:22;;;19444:434;;;;;:::o;17106:198::-;17172:7;17196:11;:20;17208:7;17196:20;;;;;;;;;;;;;;;;;;;;;;;;;17192:49;;;17225:7;:16;17233:7;17225:16;;;;;;;;;;;;;;;;17218:23;;;;17192:49;17259:37;17279:7;:16;17287:7;17279:16;;;;;;;;;;;;;;;;17259:19;:37::i;:::-;17252:44;;17106:198;;;;:::o;15192:148::-;14772:12;:10;:12::i;:::-;14762:22;;:6;;;;;;;;;;:22;;;14754:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15299:1:::1;15262:40;;15283:6;::::0;::::1;;;;;;;;15262:40;;;;;;;;;;;;15330:1;15313:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15192:148::o:0;18962:90::-;19005:7;19032:12;;19025:19;;18962:90;:::o;14550:79::-;14588:7;14615:6;;;;;;;;;;;14608:13;;14550:79;:::o;16817:87::-;16856:13;16889:7;16882:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16817:87;:::o;18472:269::-;18565:4;18582:129;18591:12;:10;:12::i;:::-;18605:7;18614:96;18653:15;18614:96;;;;;;;;;;;;;;;;;:11;:25;18626:12;:10;:12::i;:::-;18614:25;;;;;;;;;;;;;;;:34;18640:7;18614:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18582:8;:129::i;:::-;18729:4;18722:11;;18472:269;;;;:::o;17312:285::-;17390:4;17408:15;17425:14;17443:19;17455:6;17443:11;:19::i;:::-;17407:55;;;;17473:43;17483:12;:10;:12::i;:::-;17497:9;17508:7;17473:9;:43::i;:::-;17527:40;17537:12;:10;:12::i;:::-;16174:42;17560:6;17527:9;:40::i;:::-;17585:4;17578:11;;;;17312:285;;;;:::o;18749:110::-;18807:4;18831:11;:20;18843:7;18831:20;;;;;;;;;;;;;;;;;;;;;;;;;18824:27;;18749:110;;;:::o;17605:143::-;17686:7;17713:11;:18;17725:5;17713:18;;;;;;;;;;;;;;;:27;17732:7;17713:27;;;;;;;;;;;;;;;;17706:34;;17605:143;;;;:::o;20147:332::-;14772:12;:10;:12::i;:::-;14762:22;;:6;;;;;;;;;;:22;;;14754:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20229:11:::1;:20;20241:7;20229:20;;;;;;;;;;;;;;;;;;;;;;;;;20228:21;20220:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20314:1;20295:7;:16;20303:7;20295:16;;;;;;;;;;;;;;;;:20;20292:108;;;20351:37;20371:7;:16;20379:7;20371:16;;;;;;;;;;;;;;;;20351:19;:37::i;:::-;20332:7;:16;20340:7;20332:16;;;;;;;;;;;;;;;:56;;;;20292:108;20433:4;20410:11;:20;20422:7;20410:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;20448:9;20463:7;20448:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20147:332:::0;:::o;15495:244::-;14772:12;:10;:12::i;:::-;14762:22;;:6;;;;;;;;;;:22;;;14754:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15604:1:::1;15584:22;;:8;:22;;;;15576:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15694:8;15665:38;;15686:6;::::0;::::1;;;;;;;;15665:38;;;;;;;;;;;;15723:8;15714:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15495:244:::0;:::o;20487:478::-;14772:12;:10;:12::i;:::-;14762:22;;:6;;;;;;;;;;:22;;;14754:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20568:11:::1;:20;20580:7;20568:20;;;;;;;;;;;;;;;;;;;;;;;;;20560:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20636:9;20631:327;20655:9;:16;;;;20651:1;:20;20631:327;;;20713:7;20697:23;;:9;20707:1;20697:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;20693:254;;;20756:9;20785:1;20766:9;:16;;;;:20;20756:31;;;;;;;;;;;;;;;;;;;;;;;;;20741:9;20751:1;20741:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20825:1;20806:7;:16;20814:7;20806:16;;;;;;;;;;;;;;;:20;;;;20868:5;20845:11;:20;20857:7;20845:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20892:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20926:5;;20693:254;20673:3;;;;;;;20631:327;;;;20487:478:::0;:::o;245:106::-;298:15;333:10;326:17;;245:106;:::o;25134:411::-;25193:7;25202;25211;25220;25229;25250:23;25275:12;25291:20;25303:7;25291:11;:20::i;:::-;25249:62;;;;25322:19;25345:10;:8;:10::i;:::-;25322:33;;25367:15;25384:23;25409:12;25425:39;25437:7;25446:4;25452:11;25425;:39::i;:::-;25366:98;;;;;;25483:7;25492:15;25509:4;25515:15;25532:4;25475:62;;;;;;;;;;;;;;;;25134:411;;;;;;;:::o;3965:136::-;4023:7;4050:43;4054:1;4057;4050:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4043:50;;3965:136;;;;:::o;3501:181::-;3559:7;3579:9;3595:1;3591;:5;3579:17;;3620:1;3615;:6;;3607:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3673:1;3666:8;;;3501:181;;;;:::o;20973:337::-;21083:1;21066:19;;:5;:19;;;;21058:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21164:1;21145:21;;:7;:21;;;;21137:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21248:6;21218:11;:18;21230:5;21218:18;;;;;;;;;;;;;;;:27;21237:7;21218:27;;;;;;;;;;;;;;;:36;;;;21286:7;21270:32;;21279:5;21270:32;;;21295:6;21270:32;;;;;;;;;;;;;;;;;;20973:337;;;:::o;21537:931::-;21652:1;21634:20;;:6;:20;;;;21626:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21736:1;21715:23;;:9;:23;;;;21707:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21806:1;21797:6;:10;21789:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21868:11;:19;21880:6;21868:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;21892:11;:22;21904:9;21892:22;;;;;;;;;;;;;;;;;;;;;;;;;21891:23;21868:46;21864:597;;;21931:48;21953:6;21961:9;21972:6;21931:21;:48::i;:::-;21864:597;;;22002:11;:19;22014:6;22002:19;;;;;;;;;;;;;;;;;;;;;;;;;22001:20;:46;;;;;22025:11;:22;22037:9;22025:22;;;;;;;;;;;;;;;;;;;;;;;;;22001:46;21997:464;;;22064:46;22084:6;22092:9;22103:6;22064:19;:46::i;:::-;21997:464;;;22133:11;:19;22145:6;22133:19;;;;;;;;;;;;;;;;;;;;;;;;;22132:20;:47;;;;;22157:11;:22;22169:9;22157:22;;;;;;;;;;;;;;;;;;;;;;;;;22156:23;22132:47;22128:333;;;22196:44;22214:6;22222:9;22233:6;22196:17;:44::i;:::-;22128:333;;;22262:11;:19;22274:6;22262:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;22285:11;:22;22297:9;22285:22;;;;;;;;;;;;;;;;;;;;;;;;;22262:45;22258:203;;;22324:48;22346:6;22354:9;22365:6;22324:21;:48::i;:::-;22258:203;;;22405:44;22423:6;22431:9;22442:6;22405:17;:44::i;:::-;22258:203;22128:333;21997:464;21864:597;21537:931;;;:::o;4404:192::-;4490:7;4523:1;4518;:6;;4526:12;4510:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4550:9;4566:1;4562;:5;4550:17;;4587:1;4580:8;;;4404:192;;;;;:::o;26133:163::-;26174:7;26195:15;26212;26231:19;:17;:19::i;:::-;26194:56;;;;26268:20;26280:7;26268;:11;;:20;;;;:::i;:::-;26261:27;;;;26133:163;:::o;5802:132::-;5860:7;5887:39;5891:1;5894;5887:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5880:46;;5802:132;;;;:::o;21318:211::-;21377:7;21386;21406:14;21423:16;21434:4;21423:6;:10;;:16;;;;:::i;:::-;21406:33;;21450:15;21468:18;21479:6;21468;:10;;:18;;;;:::i;:::-;21450:36;;21505:7;21514:6;21497:24;;;;;;21318:211;;;:::o;25553:230::-;25613:7;25622;25642:12;25657:23;25678:1;25657:16;25669:3;25657:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;25642:38;;25691:23;25717:17;25729:4;25717:7;:11;;:17;;;;:::i;:::-;25691:43;;25753:15;25770:4;25745:30;;;;;;25553:230;;;:::o;25791:334::-;25886:7;25895;25904;25924:15;25942:24;25954:11;25942:7;:11;;:24;;;;:::i;:::-;25924:42;;25977:12;25992:21;26001:11;25992:4;:8;;:21;;;;:::i;:::-;25977:36;;26024:23;26050:17;26062:4;26050:7;:11;;:17;;;;:::i;:::-;26024:43;;26086:7;26095:15;26112:4;26078:39;;;;;;;;;25791:334;;;;;;;:::o;23607:576::-;23710:15;23727:23;23752:12;23766:23;23791:12;23807:19;23818:7;23807:10;:19::i;:::-;23709:117;;;;;;;;;;23855:28;23875:7;23855;:15;23863:6;23855:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23837:7;:15;23845:6;23837:15;;;;;;;;;;;;;;;:46;;;;23912:28;23932:7;23912;:15;23920:6;23912:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23894:7;:15;23902:6;23894:15;;;;;;;;;;;;;;;:46;;;;23972:39;23995:15;23972:7;:18;23980:9;23972:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23951:7;:18;23959:9;23951:18;;;;;;;;;;;;;;;:60;;;;24025:23;24037:4;24043;24025:11;:23::i;:::-;16174:42;24063:20;;:9;:20;;;24059:56;;;24085:30;24099:15;24085:13;:30::i;:::-;24059:56;24148:9;24131:44;;24140:6;24131:44;;;24159:15;24131:44;;;;;;;;;;;;;;;;;;23607:576;;;;;;;;:::o;23003:596::-;23104:15;23121:23;23146:12;23160:23;23185:12;23201:19;23212:7;23201:10;:19::i;:::-;23103:117;;;;;;;;;;23249:28;23269:7;23249;:15;23257:6;23249:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23231:7;:15;23239:6;23231:15;;;;;;;;;;;;;;;:46;;;;23309:39;23332:15;23309:7;:18;23317:9;23309:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23288:7;:18;23296:9;23288:18;;;;;;;;;;;;;;;:60;;;;23380:39;23403:15;23380:7;:18;23388:9;23380:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23359:7;:18;23367:9;23359:18;;;;;;;;;;;;;;;:60;;;;23441:23;23453:4;23459;23441:11;:23::i;:::-;16174:42;23479:20;;:9;:20;;;23475:56;;;23501:30;23515:15;23501:13;:30::i;:::-;23475:56;23564:9;23547:44;;23556:6;23547:44;;;23575:15;23547:44;;;;;;;;;;;;;;;;;;23003:596;;;;;;;;:::o;22476:519::-;22575:15;22592:23;22617:12;22631:23;22656:12;22672:19;22683:7;22672:10;:19::i;:::-;22574:117;;;;;;;;;;22720:28;22740:7;22720;:15;22728:6;22720:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22702:7;:15;22710:6;22702:15;;;;;;;;;;;;;;;:46;;;;22780:39;22803:15;22780:7;:18;22788:9;22780:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22759:7;:18;22767:9;22759:18;;;;;;;;;;;;;;;:60;;;;22837:23;22849:4;22855;22837:11;:23::i;:::-;16174:42;22875:20;;:9;:20;;;22871:56;;;22897:30;22911:15;22897:13;:30::i;:::-;22871:56;22960:9;22943:44;;22952:6;22943:44;;;22971:15;22943:44;;;;;;;;;;;;;;;;;;22476:519;;;;;;;;:::o;24191:649::-;24294:15;24311:23;24336:12;24350:23;24375:12;24391:19;24402:7;24391:10;:19::i;:::-;24293:117;;;;;;;;;;24439:28;24459:7;24439;:15;24447:6;24439:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24421:7;:15;24429:6;24421:15;;;;;;;;;;;;;;;:46;;;;24496:28;24516:7;24496;:15;24504:6;24496:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24478:7;:15;24486:6;24478:15;;;;;;;;;;;;;;;:46;;;;24556:39;24579:15;24556:7;:18;24564:9;24556:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24535:7;:18;24543:9;24535:18;;;;;;;;;;;;;;;:60;;;;24627:39;24650:15;24627:7;:18;24635:9;24627:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24606:7;:18;24614:9;24606:18;;;;;;;;;;;;;;;:60;;;;24682:23;24694:4;24700;24682:11;:23::i;:::-;16174:42;24720:20;;:9;:20;;;24716:56;;;24742:30;24756:15;24742:13;:30::i;:::-;24716:56;24805:9;24788:44;;24797:6;24788:44;;;24816:15;24788:44;;;;;;;;;;;;;;;;;;24191:649;;;;;;;;:::o;26304:561::-;26354:7;26363;26383:15;26401:7;;26383:25;;26419:15;16312:23;26419:25;;26466:9;26461:289;26485:9;:16;;;;26481:1;:20;26461:289;;;26551:7;26527;:21;26535:9;26545:1;26535:12;;;;;;;;;;;;;;;;;;;;;;;;;26527:21;;;;;;;;;;;;;;;;:31;:66;;;;26586:7;26562;:21;26570:9;26580:1;26570:12;;;;;;;;;;;;;;;;;;;;;;;;;26562:21;;;;;;;;;;;;;;;;:31;26527:66;26523:97;;;26603:7;;16312:23;26595:25;;;;;;;;;26523:97;26645:34;26657:7;:21;26665:9;26675:1;26665:12;;;;;;;;;;;;;;;;;;;;;;;;;26657:21;;;;;;;;;;;;;;;;26645:7;:11;;:34;;;;:::i;:::-;26635:44;;26704:34;26716:7;:21;26724:9;26734:1;26724:12;;;;;;;;;;;;;;;;;;;;;;;;;26716:21;;;;;;;;;;;;;;;;26704:7;:11;;:34;;;;:::i;:::-;26694:44;;26503:3;;;;;;;26461:289;;;;26774:20;16312:23;26774:7;;:11;;:20;;;;:::i;:::-;26764:7;:30;26760:61;;;26804:7;;16312:23;26796:25;;;;;;;;26760:61;26840:7;26849;26832:25;;;;;;26304:561;;;:::o;6430:278::-;6516:7;6548:1;6544;:5;6551:12;6536:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6575:9;6591:1;6587;:5;;;;;;6575:17;;6699:1;6692:8;;;6430:278;;;;;:::o;4855:471::-;4913:7;5163:1;5158;:6;5154:47;;;5188:1;5181:8;;;;5154:47;5213:9;5229:1;5225;:5;5213:17;;5258:1;5253;5249;:5;;;;;;:10;5241:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5317:1;5310:8;;;4855:471;;;;;:::o;24848:147::-;24926:17;24938:4;24926:7;;:11;;:17;;;;:::i;:::-;24916:7;:27;;;;24967:20;24982:4;24967:10;;:14;;:20;;;;:::i;:::-;24954:10;:33;;;;24848:147;;:::o;25003:123::-;25085:33;25102:15;25085:12;;:16;;:33;;;;:::i;:::-;25070:12;:48;;;;25003:123;:::o
Swarm Source
ipfs://ff13e9810158404af4492daa91fb38bc7c3fd38c7cc61f343a491fd44f6343ba
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.