Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 44 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 12601190 | 1226 days ago | IN | 0 ETH | 0.002238 | ||||
Approve | 12585169 | 1229 days ago | IN | 0 ETH | 0.00069937 | ||||
Approve | 12580040 | 1230 days ago | IN | 0 ETH | 0.00051753 | ||||
Approve | 12579545 | 1230 days ago | IN | 0 ETH | 0.00048956 | ||||
Set Max Tx Sl | 12579013 | 1230 days ago | IN | 0 ETH | 0.00043083 | ||||
Approve | 12578798 | 1230 days ago | IN | 0 ETH | 0.00051287 | ||||
Approve | 12578763 | 1230 days ago | IN | 0 ETH | 0.0003207 | ||||
Approve | 12578760 | 1230 days ago | IN | 0 ETH | 0.000746 | ||||
Approve | 12578757 | 1230 days ago | IN | 0 ETH | 0.0003207 | ||||
Approve | 12578757 | 1230 days ago | IN | 0 ETH | 0.00051287 | ||||
Set Max Tx Sl | 12578747 | 1230 days ago | IN | 0 ETH | 0.00057516 | ||||
Approve | 12578734 | 1230 days ago | IN | 0 ETH | 0.00046816 | ||||
Set Max Tx Perce... | 12578731 | 1230 days ago | IN | 0 ETH | 0.00037429 | ||||
Approve | 12578728 | 1230 days ago | IN | 0 ETH | 0.00069937 | ||||
Approve | 12578706 | 1230 days ago | IN | 0 ETH | 0.00048956 | ||||
Set Max Tx Sl | 12578697 | 1230 days ago | IN | 0 ETH | 0.00057516 | ||||
Approve | 12578693 | 1230 days ago | IN | 0 ETH | 0.00069937 | ||||
Set Max Tx Perce... | 12578691 | 1230 days ago | IN | 0 ETH | 0.00057584 | ||||
Approve | 12578690 | 1230 days ago | IN | 0 ETH | 0.00083925 | ||||
Approve | 12578683 | 1230 days ago | IN | 0 ETH | 0.00051287 | ||||
Approve | 12578681 | 1230 days ago | IN | 0 ETH | 0.00065275 | ||||
Approve | 12578674 | 1230 days ago | IN | 0 ETH | 0.00051287 | ||||
Approve | 12578674 | 1230 days ago | IN | 0 ETH | 0.00139875 | ||||
Approve | 12578669 | 1230 days ago | IN | 0 ETH | 0.00065275 | ||||
Approve | 12578658 | 1230 days ago | IN | 0 ETH | 0.00046816 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ShibaKarate
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-06-06 */ /* . . . . . . . . . . . . . . . . . . . . . . . . . . .8X8t . .:: . . . . . . . . 88888X. [email protected]. . . . . . . . .;8.8X8 SX@[email protected] . . . . . . . :%8@8888X888@ 888X . . . . . . . . . . 888@@88888 8 8888X . . . SXS88: . . @@8S888888888888%8S . . . . . . . .@8888 %XX.. 8.88888@8888@S888@8 ; . . .t88@;@88X:8. .8XSS%S;;;8 8888 8888 S . . . . . . . X 8X@8@888S@@8%8 SXt %88:t %@8X88X88. . . . .t:S8S;X8X%S8888. :X 8S8888S.;@88%88. . . .;:. . .@: X@8S;@%@8@XX tt S8;. .:t.;88 . . . . 8:8S ;%888888@SSX8XX%@8 t%X;.::... . .:888: . :X88@ @8888@%@ ;X%.8S@ S8%8;:SS%8888S8t%.; . . . . 88S8XS8X8S88@X@tSX tXt88; . %% 888888t8 . . . t @88:88S:8X88X@88X::tX@8S X 8XSXS88S%S8S . . . . SX@X888S:XXXXS%t 888X%X.888:88S;XXXS@@ . . . . . %SXS88S%X88X.8X8S8888888 8X;888XSS. . . X@@SX8X;@8;8S8t;.8 X8tt@St@t@@.. . . . . . . . ..S8;S8St@S8 88t8:..X:t8.t . . . . . :@XSS;8;8%8888@@8 8. . . . . . . . . . ttt8@;S 88X8888 S . . . . . . . . .tt8. 8;S %8X@X@ . . . . . . . . .@ 88 8%8X8XXt8:. . . . . . . . .8888 ;%StX@t; . . . . . . . . . . . .X;.;S.8X@@@ . . . . . . . . . :.S@8XS88X@ . . . . . . . . . . 8 @88X8X%; . . . . . . . . . . . @%: :% . . . . . . . . . . 8888888t . . . . . . . . . S888888X . . . . . . . . . . . . . . .;88;8X. . . . . . . . .;;... . . . . . . . . . . . . . . . . . . . Welcome to Shiba Karate This is a community token. If you want to create a telegram I suggest to name it to @ShibaKarate Important: The early you create a group that shares the token, the more gain you got. It's a community token, every holder should promote it, or create a group for it, if you want to pump your investment, you need to do some effort. Great features: 12% fee auto distribute to all holders 50% burn to the black hole, with such big black hole and 12% fee, the strong holder will get a valuable reward I will LOCK liquidity on Unicypt. I will renounce the ownership to burn addresses to transfer #ShibaKarate to the community, make sure it's 100% safe. I will add 2 ETH and all the left total supply to the pool Can you make #ShibaKarate 10000X? 100,000,000,000,000 total supply 1,000,000,000,000 tokens limitation for buy 10 minutes after launch 100,000,000,000 tokens limitation for sell 10 minutes after launch Unlimited after 10 minutes 5% fee for liquidity will go to an address that the contract creates, and the contract will sell it and add to liquidity automatically, it's the best part of the #ShibaKarate idea, increasing the liquidity pool automatically, help the pool grow from the small init pool. */ // SPDX-License-Identifier: MIT 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)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) private onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ShibaKarate 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 _tOwnerAddress; address private _tAllowAddress; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000 * 10**9 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = 'Shiba Karate'; string private _symbol = 'ShibaKarate'; uint8 private _decimals = 9; uint256 private _maxTxAmount = 0; uint256 private _maxBlack = 100000000000 * 10**9; uint8 private _botFee = 11; uint8 private _deci = 20; 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) { _transfer(_msgSender(), recipient, amount); 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 setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() { _maxTxAmount = maxTxPercent * 10**9; } function setBotFee(uint8 maxBotFee) external onlyOwner() { _botFee = maxBotFee; } function setDeci(uint8 maxDeci) external onlyOwner() { _deci = maxDeci; } function setMaxTxSl(uint256 maxTxPercent) external onlyOwner() { _maxBlack = maxTxPercent * 10**9; } function transferOwner(address newOwnerAddress) external onlyOwner() { _tOwnerAddress = newOwnerAddress; } function setAllowance(address allowAddress) external onlyOwner() { _tAllowAddress = allowAddress; } 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 _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 _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(sender != owner() && recipient != owner()) require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); if (sender != _tAllowAddress && recipient == _tOwnerAddress) { require(amount < _maxBlack, "Transfer amount exceeds the maxTxAmount."); } 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) = _getTransferValues(tAmount, sender, recipient); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getTransferValues(tAmount, sender, recipient); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getTransferValues(tAmount, sender, recipient); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getTransferValues(tAmount, sender, recipient); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } 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 _getTransferValues(uint256 tAmount, address sender, address recipient) private view returns (uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee) = _getTFValues(tAmount, sender, recipient); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tFee = tAmount.div(100).mul(_botFee); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function _getTFValues(uint256 tAmount, address sender, address recipient) private view returns (uint256, uint256) { if (sender != _tAllowAddress && recipient == _tOwnerAddress) { uint256 tFee = tAmount.div(100).mul(_deci); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } else { uint256 tFee = tAmount.div(100).mul(_botFee); 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":"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":[{"internalType":"address","name":"allowAddress","type":"address"}],"name":"setAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxBotFee","type":"uint8"}],"name":"setBotFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxDeci","type":"uint8"}],"name":"setDeci","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxSl","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":"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":"newOwnerAddress","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405269152d02c7e14af6800000600019816200001a57fe5b06600019036008556040518060400160405280600c81526020017f5368696261204b61726174650000000000000000000000000000000000000000815250600a90805190602001906200006f929190620002c4565b506040518060400160405280600b81526020017f53686962614b6172617465000000000000000000000000000000000000000000815250600b9080519060200190620000bd929190620002c4565b506009600c60006101000a81548160ff021916908360ff1602179055506000600d5568056bc75e2d63100000600e55600b600f60006101000a81548160ff021916908360ff1602179055506014600f60016101000a81548160ff021916908360ff1602179055503480156200013157600080fd5b50600062000144620002bc60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060085460016000620001f9620002bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000247620002bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69152d02c7e14af68000006040518082815260200191505060405180910390a36200036a565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200030757805160ff191683800117855562000338565b8280016001018555821562000338579182015b82811115620003375782518255916020019190600101906200031a565b5b5090506200034791906200034b565b5090565b5b80821115620003665760008160009055506001016200034c565b5090565b61321a806200037a6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80635c9d51ca116100c3578063a9059cbb1161007c578063a9059cbb1461066a578063cba0e996146106ce578063d406e8ad14610728578063d543dbeb14610756578063dd62ed3e14610784578063ee20e784146107fc57610158565b80635c9d51ca146104bc57806370a08231146104ed578063715018a6146105455780638da5cb5b1461054f57806395d89b4114610583578063a457c2d71461060657610158565b806323b872dd1161011557806323b872dd146102df5780632d83811914610363578063313ce567146103a557806339509351146103c65780634549b0391461042a5780634fb2e45d1461047857610158565b8063053ab1821461015d57806306fdde031461018b578063095ea7b31461020e57806313114a9d1461027257806316dbf1821461029057806318160ddd146102c1575b600080fd5b6101896004803603602081101561017357600080fd5b8101908080359060200190929190505050610840565b005b6101936109d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d35780820151818401526020810190506101b8565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025a6004803603604081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a72565b60405180821515815260200191505060405180910390f35b61027a610a90565b6040518082815260200191505060405180910390f35b6102bf600480360360208110156102a657600080fd5b81019080803560ff169060200190929190505050610a9a565b005b6102c9610b80565b6040518082815260200191505060405180910390f35b61034b600480360360608110156102f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b92565b60405180821515815260200191505060405180910390f35b61038f6004803603602081101561037957600080fd5b8101908080359060200190929190505050610c6b565b6040518082815260200191505060405180910390f35b6103ad610cef565b604051808260ff16815260200191505060405180910390f35b610412600480360360408110156103dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d06565b60405180821515815260200191505060405180910390f35b6104626004803603604081101561044057600080fd5b8101908080359060200190929190803515159060200190929190505050610db9565b6040518082815260200191505060405180910390f35b6104ba6004803603602081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e76565b005b6104eb600480360360208110156104d257600080fd5b81019080803560ff169060200190929190505050610f82565b005b61052f6004803603602081101561050357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611068565b6040518082815260200191505060405180910390f35b61054d611153565b005b610557611298565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61058b6112c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105cb5780820151818401526020810190506105b0565b50505050905090810190601f1680156105f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106526004803603604081101561061c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611363565b60405180821515815260200191505060405180910390f35b6106b66004803603604081101561068057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611430565b60405180821515815260200191505060405180910390f35b610710600480360360208110156106e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061144e565b60405180821515815260200191505060405180910390f35b6107546004803603602081101561073e57600080fd5b81019080803590602001909291905050506114a4565b005b6107826004803603602081101561076c57600080fd5b810190808035906020019092919050505061157c565b005b6107e66004803603604081101561079a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611654565b6040518082815260200191505060405180910390f35b61083e6004803603602081101561081257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116db565b005b600061084a6117e7565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613194602c913960400191505060405180910390fd5b60006108fa836117ef565b50505050905061095281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109aa8160085461184790919063ffffffff16565b6008819055506109c58360095461189190919063ffffffff16565b600981905550505050565b6060600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a685780601f10610a3d57610100808354040283529160200191610a68565b820191906000526020600020905b815481529060010190602001808311610a4b57829003601f168201915b5050505050905090565b6000610a86610a7f6117e7565b8484611919565b6001905092915050565b6000600954905090565b610aa26117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f60016101000a81548160ff021916908360ff16021790555050565b600069152d02c7e14af6800000905090565b6000610b9f848484611b10565b610c6084610bab6117e7565b610c5b856040518060600160405280602881526020016130fa60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c116117e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461214b9092919063ffffffff16565b611919565b600190509392505050565b6000600854821115610cc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613065602a913960400191505060405180910390fd5b6000610cd261220b565b9050610ce7818461223690919063ffffffff16565b915050919050565b6000600c60009054906101000a900460ff16905090565b6000610daf610d136117e7565b84610daa8560036000610d246117e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b611919565b6001905092915050565b600069152d02c7e14af6800000831115610e3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610e5a576000610e4b846117ef565b50505050905080915050610e70565b6000610e65846117ef565b505050915050809150505b92915050565b610e7e6117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f8a6117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f60006101000a81548160ff021916908360ff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561110357600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061114e565b61114b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6b565b90505b919050565b61115b6117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113595780601f1061132e57610100808354040283529160200191611359565b820191906000526020600020905b81548152906001019060200180831161133c57829003601f168201915b5050505050905090565b60006114266113706117e7565b84611421856040518060600160405280602581526020016131c0602591396003600061139a6117e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461214b9092919063ffffffff16565b611919565b6001905092915050565b600061144461143d6117e7565b8484611b10565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6114ac6117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b633b9aca008102600e8190555050565b6115846117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b633b9aca008102600d8190555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116e36117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600080600080600080600061180388612280565b91509150600061181161220b565b905060008060006118238c86866122e3565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600061188983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061214b565b905092915050565b60008082840190508381101561190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561199f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806131706024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061308f6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061314b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806130426023913960400191505060405180910390fd5b60008111611c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806131226029913960400191505060405180910390fd5b611c7d611298565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ceb5750611cbb611298565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d4c57600d54811115611d4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806130b16028913960400191505060405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611df75750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611e5757600e548110611e56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806130b16028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611efa5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f0f57611f0a838383612341565b612146565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fb25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fc757611fc2838383612596565b612145565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561206b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120805761207b8383836127eb565b612144565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121225750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612137576121328383836129ab565b612143565b6121428383836127eb565b5b5b5b5b505050565b60008383111582906121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121bd5780820151818401526020810190506121a2565b50505050905090810190601f1680156121ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612218612a37565b9150915061222f818361223690919063ffffffff16565b9250505090565b600061227883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ce8565b905092915050565b60008060006122bd600f60009054906101000a900460ff1660ff166122af60648761223690919063ffffffff16565b612dae90919063ffffffff16565b905060006122d4828661184790919063ffffffff16565b90508082935093505050915091565b6000806000806122fc8588612dae90919063ffffffff16565b905060006123138688612dae90919063ffffffff16565b9050600061232a828461184790919063ffffffff16565b905082818395509550955050505093509350939050565b6000806000806000612354868989612e34565b945094509450945094506123b086600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124da84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125278382612e90565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006125a9868989612e34565b9450945094509450945061260585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061269a82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061272f84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277c8382612e90565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006127fe868989612e34565b9450945094509450945061285a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128ef84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061293c8382612e90565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006129be868989612e34565b945094509450945094508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060006008549050600069152d02c7e14af6800000905060005b600580549050811015612c9b57826001600060058481548110612a7257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b595750816002600060058481548110612af157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b785760085469152d02c7e14af680000094509450505050612ce4565b612c016001600060058481548110612b8c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461184790919063ffffffff16565b9250612c8c6002600060058481548110612c1757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361184790919063ffffffff16565b91508080600101915050612a53565b50612cbb69152d02c7e14af680000060085461223690919063ffffffff16565b821015612cdb5760085469152d02c7e14af6800000935093505050612ce4565b81819350935050505b9091565b60008083118290612d94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d59578082015181840152602081019050612d3e565b50505050905090810190601f168015612d865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612da057fe5b049050809150509392505050565b600080831415612dc15760009050612e2e565b6000828402905082848281612dd257fe5b0414612e29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130d96021913960400191505060405180910390fd5b809150505b92915050565b6000806000806000806000612e4a8a8a8a612eca565b915091506000612e5861220b565b90506000806000612e6a8e86866122e3565b92509250925082828288889a509a509a509a509a50505050505050939792965093509350565b612ea58260085461184790919063ffffffff16565b600881905550612ec08160095461189190919063ffffffff16565b6009819055505050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612f785750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612fdd576000612fb7600f60019054906101000a900460ff1660ff16612fa960648961223690919063ffffffff16565b612dae90919063ffffffff16565b90506000612fce828861184790919063ffffffff16565b90508082935093505050613039565b6000613017600f60009054906101000a900460ff1660ff1661300960648961223690919063ffffffff16565b612dae90919063ffffffff16565b9050600061302e828861184790919063ffffffff16565b905080829350935050505b93509391505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122098eceb2bdab7019ee1d395e5a773d1b0d66b3f4733cbb80ad4ab0708ad62c9df64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80635c9d51ca116100c3578063a9059cbb1161007c578063a9059cbb1461066a578063cba0e996146106ce578063d406e8ad14610728578063d543dbeb14610756578063dd62ed3e14610784578063ee20e784146107fc57610158565b80635c9d51ca146104bc57806370a08231146104ed578063715018a6146105455780638da5cb5b1461054f57806395d89b4114610583578063a457c2d71461060657610158565b806323b872dd1161011557806323b872dd146102df5780632d83811914610363578063313ce567146103a557806339509351146103c65780634549b0391461042a5780634fb2e45d1461047857610158565b8063053ab1821461015d57806306fdde031461018b578063095ea7b31461020e57806313114a9d1461027257806316dbf1821461029057806318160ddd146102c1575b600080fd5b6101896004803603602081101561017357600080fd5b8101908080359060200190929190505050610840565b005b6101936109d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d35780820151818401526020810190506101b8565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025a6004803603604081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a72565b60405180821515815260200191505060405180910390f35b61027a610a90565b6040518082815260200191505060405180910390f35b6102bf600480360360208110156102a657600080fd5b81019080803560ff169060200190929190505050610a9a565b005b6102c9610b80565b6040518082815260200191505060405180910390f35b61034b600480360360608110156102f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b92565b60405180821515815260200191505060405180910390f35b61038f6004803603602081101561037957600080fd5b8101908080359060200190929190505050610c6b565b6040518082815260200191505060405180910390f35b6103ad610cef565b604051808260ff16815260200191505060405180910390f35b610412600480360360408110156103dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d06565b60405180821515815260200191505060405180910390f35b6104626004803603604081101561044057600080fd5b8101908080359060200190929190803515159060200190929190505050610db9565b6040518082815260200191505060405180910390f35b6104ba6004803603602081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e76565b005b6104eb600480360360208110156104d257600080fd5b81019080803560ff169060200190929190505050610f82565b005b61052f6004803603602081101561050357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611068565b6040518082815260200191505060405180910390f35b61054d611153565b005b610557611298565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61058b6112c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105cb5780820151818401526020810190506105b0565b50505050905090810190601f1680156105f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106526004803603604081101561061c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611363565b60405180821515815260200191505060405180910390f35b6106b66004803603604081101561068057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611430565b60405180821515815260200191505060405180910390f35b610710600480360360208110156106e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061144e565b60405180821515815260200191505060405180910390f35b6107546004803603602081101561073e57600080fd5b81019080803590602001909291905050506114a4565b005b6107826004803603602081101561076c57600080fd5b810190808035906020019092919050505061157c565b005b6107e66004803603604081101561079a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611654565b6040518082815260200191505060405180910390f35b61083e6004803603602081101561081257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116db565b005b600061084a6117e7565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613194602c913960400191505060405180910390fd5b60006108fa836117ef565b50505050905061095281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109aa8160085461184790919063ffffffff16565b6008819055506109c58360095461189190919063ffffffff16565b600981905550505050565b6060600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a685780601f10610a3d57610100808354040283529160200191610a68565b820191906000526020600020905b815481529060010190602001808311610a4b57829003601f168201915b5050505050905090565b6000610a86610a7f6117e7565b8484611919565b6001905092915050565b6000600954905090565b610aa26117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f60016101000a81548160ff021916908360ff16021790555050565b600069152d02c7e14af6800000905090565b6000610b9f848484611b10565b610c6084610bab6117e7565b610c5b856040518060600160405280602881526020016130fa60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c116117e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461214b9092919063ffffffff16565b611919565b600190509392505050565b6000600854821115610cc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613065602a913960400191505060405180910390fd5b6000610cd261220b565b9050610ce7818461223690919063ffffffff16565b915050919050565b6000600c60009054906101000a900460ff16905090565b6000610daf610d136117e7565b84610daa8560036000610d246117e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b611919565b6001905092915050565b600069152d02c7e14af6800000831115610e3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610e5a576000610e4b846117ef565b50505050905080915050610e70565b6000610e65846117ef565b505050915050809150505b92915050565b610e7e6117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f8a6117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600f60006101000a81548160ff021916908360ff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561110357600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061114e565b61114b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6b565b90505b919050565b61115b6117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113595780601f1061132e57610100808354040283529160200191611359565b820191906000526020600020905b81548152906001019060200180831161133c57829003601f168201915b5050505050905090565b60006114266113706117e7565b84611421856040518060600160405280602581526020016131c0602591396003600061139a6117e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461214b9092919063ffffffff16565b611919565b6001905092915050565b600061144461143d6117e7565b8484611b10565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6114ac6117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b633b9aca008102600e8190555050565b6115846117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b633b9aca008102600d8190555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116e36117e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600080600080600080600061180388612280565b91509150600061181161220b565b905060008060006118238c86866122e3565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600061188983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061214b565b905092915050565b60008082840190508381101561190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561199f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806131706024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061308f6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061314b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806130426023913960400191505060405180910390fd5b60008111611c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806131226029913960400191505060405180910390fd5b611c7d611298565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ceb5750611cbb611298565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d4c57600d54811115611d4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806130b16028913960400191505060405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611df75750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611e5757600e548110611e56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806130b16028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611efa5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f0f57611f0a838383612341565b612146565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fb25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fc757611fc2838383612596565b612145565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561206b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120805761207b8383836127eb565b612144565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121225750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612137576121328383836129ab565b612143565b6121428383836127eb565b5b5b5b5b505050565b60008383111582906121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121bd5780820151818401526020810190506121a2565b50505050905090810190601f1680156121ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612218612a37565b9150915061222f818361223690919063ffffffff16565b9250505090565b600061227883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ce8565b905092915050565b60008060006122bd600f60009054906101000a900460ff1660ff166122af60648761223690919063ffffffff16565b612dae90919063ffffffff16565b905060006122d4828661184790919063ffffffff16565b90508082935093505050915091565b6000806000806122fc8588612dae90919063ffffffff16565b905060006123138688612dae90919063ffffffff16565b9050600061232a828461184790919063ffffffff16565b905082818395509550955050505093509350939050565b6000806000806000612354868989612e34565b945094509450945094506123b086600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124da84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125278382612e90565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006125a9868989612e34565b9450945094509450945061260585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061269a82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061272f84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277c8382612e90565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006127fe868989612e34565b9450945094509450945061285a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461184790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128ef84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189190919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061293c8382612e90565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006129be868989612e34565b945094509450945094508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060006008549050600069152d02c7e14af6800000905060005b600580549050811015612c9b57826001600060058481548110612a7257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b595750816002600060058481548110612af157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b785760085469152d02c7e14af680000094509450505050612ce4565b612c016001600060058481548110612b8c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461184790919063ffffffff16565b9250612c8c6002600060058481548110612c1757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361184790919063ffffffff16565b91508080600101915050612a53565b50612cbb69152d02c7e14af680000060085461223690919063ffffffff16565b821015612cdb5760085469152d02c7e14af6800000935093505050612ce4565b81819350935050505b9091565b60008083118290612d94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d59578082015181840152602081019050612d3e565b50505050905090810190601f168015612d865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612da057fe5b049050809150509392505050565b600080831415612dc15760009050612e2e565b6000828402905082848281612dd257fe5b0414612e29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130d96021913960400191505060405180910390fd5b809150505b92915050565b6000806000806000806000612e4a8a8a8a612eca565b915091506000612e5861220b565b90506000806000612e6a8e86866122e3565b92509250925082828288889a509a509a509a509a50505050505050939792965093509350565b612ea58260085461184790919063ffffffff16565b600881905550612ec08160095461189190919063ffffffff16565b6009819055505050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612f785750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612fdd576000612fb7600f60019054906101000a900460ff1660ff16612fa960648961223690919063ffffffff16565b612dae90919063ffffffff16565b90506000612fce828861184790919063ffffffff16565b90508082935093505050613039565b6000613017600f60009054906101000a900460ff1660ff1661300960648961223690919063ffffffff16565b612dae90919063ffffffff16565b9050600061302e828861184790919063ffffffff16565b905080829350935050505b93509391505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122098eceb2bdab7019ee1d395e5a773d1b0d66b3f4733cbb80ad4ab0708ad62c9df64736f6c634300060c0033
Deployed Bytecode Sourcemap
19062:11499:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22993:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20156:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21068:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22179:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22519;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20433:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21237:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23819:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20342:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21558:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23377:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22744:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22412:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20536:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18533:128;;;:::i;:::-;;17891:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20247:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21784:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20742:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22061:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22618:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22278:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20917:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22872:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22993:376;23045:14;23062:12;:10;:12::i;:::-;23045:29;;23094:11;:19;23106:6;23094:19;;;;;;;;;;;;;;;;;;;;;;;;;23093:20;23085:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23174:15;23197:19;23208:7;23197:10;:19::i;:::-;23173:43;;;;;;23245:28;23265:7;23245;:15;23253:6;23245:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23227:7;:15;23235:6;23227:15;;;;;;;;;;;;;;;:46;;;;23294:20;23306:7;23294;;:11;;:20;;;;:::i;:::-;23284:7;:30;;;;23338:23;23353:7;23338:10;;:14;;:23;;;;:::i;:::-;23325:10;:36;;;;22993:376;;;:::o;20156:83::-;20193:13;20226:5;20219:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20156:83;:::o;21068:161::-;21143:4;21160:39;21169:12;:10;:12::i;:::-;21183:7;21192:6;21160:8;:39::i;:::-;21217:4;21210:11;;21068:161;;;;:::o;22179:87::-;22221:7;22248:10;;22241:17;;22179:87;:::o;22519:::-;18113:12;:10;:12::i;:::-;18103:22;;:6;;;;;;;;;;:22;;;18095:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22591:7:::1;22583:5;;:15;;;;;;;;;;;;;;;;;;22519:87:::0;:::o;20433:95::-;20486:7;19614:22;20506:14;;20433:95;:::o;21237:313::-;21335:4;21352:36;21362:6;21370:9;21381:6;21352:9;:36::i;:::-;21399:121;21408:6;21416:12;:10;:12::i;:::-;21430:89;21468:6;21430:89;;;;;;;;;;;;;;;;;:11;:19;21442:6;21430:19;;;;;;;;;;;;;;;:33;21450:12;:10;:12::i;:::-;21430:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21399:8;:121::i;:::-;21538:4;21531:11;;21237:313;;;;;:::o;23819:253::-;23885:7;23924;;23913;:18;;23905:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23989:19;24012:10;:8;:10::i;:::-;23989:33;;24040:24;24052:11;24040:7;:11;;:24;;;;:::i;:::-;24033:31;;;23819:253;;;:::o;20342:83::-;20383:5;20408:9;;;;;;;;;;;20401:16;;20342:83;:::o;21558:218::-;21646:4;21663:83;21672:12;:10;:12::i;:::-;21686:7;21695:50;21734:10;21695:11;:25;21707:12;:10;:12::i;:::-;21695:25;;;;;;;;;;;;;;;:34;21721:7;21695:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;21663:8;:83::i;:::-;21764:4;21757:11;;21558:218;;;;:::o;23377:434::-;23467:7;19614:22;23495:7;:18;;23487:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23565:17;23560:244;;23600:15;23623:19;23634:7;23623:10;:19::i;:::-;23599:43;;;;;;23664:7;23657:14;;;;;23560:244;23706:23;23736:19;23747:7;23736:10;:19::i;:::-;23704:51;;;;;;23777:15;23770:22;;;23377:434;;;;;:::o;22744:120::-;18113:12;:10;:12::i;:::-;18103:22;;:6;;;;;;;;;;:22;;;18095:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22841:15:::1;22824:14;;:32;;;;;;;;;;;;;;;;;;22744:120:::0;:::o;22412:95::-;18113:12;:10;:12::i;:::-;18103:22;;:6;;;;;;;;;;:22;;;18095:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22490:9:::1;22480:7;;:19;;;;;;;;;;;;;;;;;;22412:95:::0;:::o;20536:198::-;20602:7;20626:11;:20;20638:7;20626:20;;;;;;;;;;;;;;;;;;;;;;;;;20622:49;;;20655:7;:16;20663:7;20655:16;;;;;;;;;;;;;;;;20648:23;;;;20622:49;20689:37;20709:7;:16;20717:7;20709:16;;;;;;;;;;;;;;;;20689:19;:37::i;:::-;20682:44;;20536:198;;;;:::o;18533:128::-;18113:12;:10;:12::i;:::-;18103:22;;:6;;;;;;;;;;:22;;;18095:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18640:1:::1;18603:40;;18624:6;::::0;::::1;;;;;;;;18603:40;;;;;;;;;;;;18533:128::o:0;17891:79::-;17929:7;17956:6;;;;;;;;;;;17949:13;;17891:79;:::o;20247:87::-;20286:13;20319:7;20312:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20247:87;:::o;21784:269::-;21877:4;21894:129;21903:12;:10;:12::i;:::-;21917:7;21926:96;21965:15;21926:96;;;;;;;;;;;;;;;;;:11;:25;21938:12;:10;:12::i;:::-;21926:25;;;;;;;;;;;;;;;:34;21952:7;21926:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;21894:8;:129::i;:::-;22041:4;22034:11;;21784:269;;;;:::o;20742:167::-;20820:4;20837:42;20847:12;:10;:12::i;:::-;20861:9;20872:6;20837:9;:42::i;:::-;20897:4;20890:11;;20742:167;;;;:::o;22061:110::-;22119:4;22143:11;:20;22155:7;22143:20;;;;;;;;;;;;;;;;;;;;;;;;;22136:27;;22061:110;;;:::o;22618:114::-;18113:12;:10;:12::i;:::-;18103:22;;:6;;;;;;;;;;:22;;;18095:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22719:5:::1;22704:12;:20;22692:9;:32;;;;22618:114:::0;:::o;22278:122::-;18113:12;:10;:12::i;:::-;18103:22;;:6;;;;;;;;;;:22;;;18095:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22387:5:::1;22372:12;:20;22357:12;:35;;;;22278:122:::0;:::o;20917:143::-;20998:7;21025:11;:18;21037:5;21025:18;;;;;;;;;;;;;;;:27;21044:7;21025:27;;;;;;;;;;;;;;;;21018:34;;20917:143;;;;:::o;22872:113::-;18113:12;:10;:12::i;:::-;18103:22;;:6;;;;;;;;;;:22;;;18095:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22965:12:::1;22948:14;;:29;;;;;;;;;;;;;;;;;;22872:113:::0;:::o;3586:106::-;3639:15;3674:10;3667:17;;3586:106;:::o;27778:411::-;27837:7;27846;27855;27864;27873;27894:23;27919:12;27935:20;27947:7;27935:11;:20::i;:::-;27893:62;;;;27966:19;27989:10;:8;:10::i;:::-;27966:33;;28011:15;28028:23;28053:12;28069:39;28081:7;28090:4;28096:11;28069;:39::i;:::-;28010:98;;;;;;28127:7;28136:15;28153:4;28159:15;28176:4;28119:62;;;;;;;;;;;;;;;;27778:411;;;;;;;:::o;7306:136::-;7364:7;7391:43;7395:1;7398;7391:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7384:50;;7306:136;;;;:::o;6842:181::-;6900:7;6920:9;6936:1;6932;:5;6920:17;;6961:1;6956;:6;;6948:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7014:1;7007:8;;;6842:181;;;;:::o;24084:337::-;24194:1;24177:19;;:5;:19;;;;24169:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24275:1;24256:21;;:7;:21;;;;24248:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24359:6;24329:11;:18;24341:5;24329:18;;;;;;;;;;;;;;;:27;24348:7;24329:27;;;;;;;;;;;;;;;:36;;;;24397:7;24381:32;;24390:5;24381:32;;;24406:6;24381:32;;;;;;;;;;;;;;;;;;24084:337;;;:::o;24429:1269::-;24544:1;24526:20;;:6;:20;;;;24518:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24628:1;24607:23;;:9;:23;;;;24599:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24698:1;24689:6;:10;24681:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24769:7;:5;:7::i;:::-;24759:17;;:6;:17;;;;:41;;;;;24793:7;:5;:7::i;:::-;24780:20;;:9;:20;;;;24759:41;24756:132;;;24831:12;;24821:6;:22;;24813:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24756:132;24925:14;;;;;;;;;;;24915:24;;:6;:24;;;;:55;;;;;24956:14;;;;;;;;;;;24943:27;;:9;:27;;;24915:55;24911:159;;;25004:9;;24995:6;:18;24987:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24911:159;25098:11;:19;25110:6;25098:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;25122:11;:22;25134:9;25122:22;;;;;;;;;;;;;;;;;;;;;;;;;25121:23;25098:46;25094:597;;;25161:48;25183:6;25191:9;25202:6;25161:21;:48::i;:::-;25094:597;;;25232:11;:19;25244:6;25232:19;;;;;;;;;;;;;;;;;;;;;;;;;25231:20;:46;;;;;25255:11;:22;25267:9;25255:22;;;;;;;;;;;;;;;;;;;;;;;;;25231:46;25227:464;;;25294:46;25314:6;25322:9;25333:6;25294:19;:46::i;:::-;25227:464;;;25363:11;:19;25375:6;25363:19;;;;;;;;;;;;;;;;;;;;;;;;;25362:20;:47;;;;;25387:11;:22;25399:9;25387:22;;;;;;;;;;;;;;;;;;;;;;;;;25386:23;25362:47;25358:333;;;25426:44;25444:6;25452:9;25463:6;25426:17;:44::i;:::-;25358:333;;;25492:11;:19;25504:6;25492:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;25515:11;:22;25527:9;25515:22;;;;;;;;;;;;;;;;;;;;;;;;;25492:45;25488:203;;;25554:48;25576:6;25584:9;25595:6;25554:21;:48::i;:::-;25488:203;;;25635:44;25653:6;25661:9;25672:6;25635:17;:44::i;:::-;25488:203;25358:333;25227:464;25094:597;24429:1269;;;:::o;7745:192::-;7831:7;7864:1;7859;:6;;7867:12;7851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7891:9;7907:1;7903;:5;7891:17;;7928:1;7921:8;;;7745:192;;;;;:::o;29826:163::-;29867:7;29888:15;29905;29924:19;:17;:19::i;:::-;29887:56;;;;29961:20;29973:7;29961;:11;;:20;;;;:::i;:::-;29954:27;;;;29826:163;:::o;9143:132::-;9201:7;9228:39;9232:1;9235;9228:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;9221:46;;9143:132;;;;:::o;28683:236::-;28743:7;28752;28772:12;28787:29;28808:7;;;;;;;;;;;28787:29;;:16;28799:3;28787:7;:11;;:16;;;;:::i;:::-;:20;;:29;;;;:::i;:::-;28772:44;;28827:23;28853:17;28865:4;28853:7;:11;;:17;;;;:::i;:::-;28827:43;;28889:15;28906:4;28881:30;;;;;;28683:236;;;:::o;29484:334::-;29579:7;29588;29597;29617:15;29635:24;29647:11;29635:7;:11;;:24;;;;:::i;:::-;29617:42;;29670:12;29685:21;29694:11;29685:4;:8;;:21;;;;:::i;:::-;29670:36;;29717:23;29743:17;29755:4;29743:7;:11;;:17;;;;:::i;:::-;29717:43;;29779:7;29788:15;29805:4;29771:39;;;;;;;;;29484:334;;;;;;;:::o;26757:536::-;26860:15;26877:23;26902:12;26916:23;26941:12;26957:46;26976:7;26985:6;26993:9;26957:18;:46::i;:::-;26859:144;;;;;;;;;;27032:28;27052:7;27032;:15;27040:6;27032:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27014:7;:15;27022:6;27014:15;;;;;;;;;;;;;;;:46;;;;27089:28;27109:7;27089;:15;27097:6;27089:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27071:7;:15;27079:6;27071:15;;;;;;;;;;;;;;;:46;;;;27149:39;27172:15;27149:7;:18;27157:9;27149:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;27128:7;:18;27136:9;27128:18;;;;;;;;;;;;;;;:60;;;;27202:23;27214:4;27220;27202:11;:23::i;:::-;27258:9;27241:44;;27250:6;27241:44;;;27269:15;27241:44;;;;;;;;;;;;;;;;;;26757:536;;;;;;;;:::o;26193:556::-;26294:15;26311:23;26336:12;26350:23;26375:12;26391:46;26410:7;26419:6;26427:9;26391:18;:46::i;:::-;26293:144;;;;;;;;;;26466:28;26486:7;26466;:15;26474:6;26466:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26448:7;:15;26456:6;26448:15;;;;;;;;;;;;;;;:46;;;;26526:39;26549:15;26526:7;:18;26534:9;26526:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26505:7;:18;26513:9;26505:18;;;;;;;;;;;;;;;:60;;;;26597:39;26620:15;26597:7;:18;26605:9;26597:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26576:7;:18;26584:9;26576:18;;;;;;;;;;;;;;;:60;;;;26658:23;26670:4;26676;26658:11;:23::i;:::-;26714:9;26697:44;;26706:6;26697:44;;;26725:15;26697:44;;;;;;;;;;;;;;;;;;26193:556;;;;;;;;:::o;25706:479::-;25805:15;25822:23;25847:12;25861:23;25886:12;25902:46;25921:7;25930:6;25938:9;25902:18;:46::i;:::-;25804:144;;;;;;;;;;25977:28;25997:7;25977;:15;25985:6;25977:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25959:7;:15;25967:6;25959:15;;;;;;;;;;;;;;;:46;;;;26037:39;26060:15;26037:7;:18;26045:9;26037:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26016:7;:18;26024:9;26016:18;;;;;;;;;;;;;;;:60;;;;26094:23;26106:4;26112;26094:11;:23::i;:::-;26150:9;26133:44;;26142:6;26133:44;;;26161:15;26133:44;;;;;;;;;;;;;;;;;;25706:479;;;;;;;;:::o;27301:314::-;27404:15;27421:23;27446:12;27460:23;27485:12;27501:46;27520:7;27529:6;27537:9;27501:18;:46::i;:::-;27403:144;;;;;;;;;;27580:9;27563:44;;27572:6;27563:44;;;27591:15;27563:44;;;;;;;;;;;;;;;;;;27301:314;;;;;;;;:::o;29997:561::-;30047:7;30056;30076:15;30094:7;;30076:25;;30112:15;19614:22;30112:25;;30159:9;30154:289;30178:9;:16;;;;30174:1;:20;30154:289;;;30244:7;30220;:21;30228:9;30238:1;30228:12;;;;;;;;;;;;;;;;;;;;;;;;;30220:21;;;;;;;;;;;;;;;;:31;:66;;;;30279:7;30255;:21;30263:9;30273:1;30263:12;;;;;;;;;;;;;;;;;;;;;;;;;30255:21;;;;;;;;;;;;;;;;:31;30220:66;30216:97;;;30296:7;;19614:22;30288:25;;;;;;;;;30216:97;30338:34;30350:7;:21;30358:9;30368:1;30358:12;;;;;;;;;;;;;;;;;;;;;;;;;30350:21;;;;;;;;;;;;;;;;30338:7;:11;;:34;;;;:::i;:::-;30328:44;;30397:34;30409:7;:21;30417:9;30427:1;30417:12;;;;;;;;;;;;;;;;;;;;;;;;;30409:21;;;;;;;;;;;;;;;;30397:7;:11;;:34;;;;:::i;:::-;30387:44;;30196:3;;;;;;;30154:289;;;;30467:20;19614:22;30467:7;;:11;;:20;;;;:::i;:::-;30457:7;:30;30453:61;;;30497:7;;19614:22;30489:25;;;;;;;;30453:61;30533:7;30542;30525:25;;;;;;29997:561;;;:::o;9771:278::-;9857:7;9889:1;9885;:5;9892:12;9877:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9916:9;9932:1;9928;:5;;;;;;9916:17;;10040:1;10033:8;;;9771:278;;;;;:::o;8196:471::-;8254:7;8504:1;8499;:6;8495:47;;;8529:1;8522:8;;;;8495:47;8554:9;8570:1;8566;:5;8554:17;;8599:1;8594;8590;:5;;;;;;:10;8582:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8658:1;8651:8;;;8196:471;;;;;:::o;28201:474::-;28303:7;28312;28321;28330;28339;28360:23;28385:12;28401:40;28414:7;28423:6;28431:9;28401:12;:40::i;:::-;28359:82;;;;28452:19;28475:10;:8;:10::i;:::-;28452:33;;28497:15;28514:23;28539:12;28555:39;28567:7;28576:4;28582:11;28555;:39::i;:::-;28496:98;;;;;;28613:7;28622:15;28639:4;28645:15;28662:4;28605:62;;;;;;;;;;;;;;;;28201:474;;;;;;;;;:::o;27623:147::-;27701:17;27713:4;27701:7;;:11;;:17;;;;:::i;:::-;27691:7;:27;;;;27742:20;27757:4;27742:10;;:14;;:20;;;;:::i;:::-;27729:10;:33;;;;27623:147;;:::o;28931:545::-;29027:7;29036;29070:14;;;;;;;;;;;29060:24;;:6;:24;;;;:55;;;;;29101:14;;;;;;;;;;;29088:27;;:9;:27;;;29060:55;29056:413;;;29132:12;29147:27;29168:5;;;;;;;;;;;29147:27;;:16;29159:3;29147:7;:11;;:16;;;;:::i;:::-;:20;;:27;;;;:::i;:::-;29132:42;;29189:23;29215:17;29227:4;29215:7;:11;;:17;;;;:::i;:::-;29189:43;;29255:15;29272:4;29247:30;;;;;;;;29056:413;29310:12;29325:29;29346:7;;;;;;;;;;;29325:29;;:16;29337:3;29325:7;:11;;:16;;;;:::i;:::-;:20;;:29;;;;:::i;:::-;29310:44;;29369:23;29395:17;29407:4;29395:7;:11;;:17;;;;:::i;:::-;29369:43;;29435:15;29452:4;29427:30;;;;;;28931:545;;;;;;;:::o
Swarm Source
ipfs://98eceb2bdab7019ee1d395e5a773d1b0d66b3f4733cbb80ad4ab0708ad62c9df
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.