Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 65 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 18021396 | 910 days ago | IN | 0 ETH | 0.00629874 | ||||
| Approve | 18014264 | 911 days ago | IN | 0 ETH | 0.00131348 | ||||
| Approve | 18012930 | 911 days ago | IN | 0 ETH | 0.00044171 | ||||
| Approve | 18012926 | 911 days ago | IN | 0 ETH | 0.00042947 | ||||
| Approve | 18012919 | 911 days ago | IN | 0 ETH | 0.00078448 | ||||
| Approve | 18012913 | 911 days ago | IN | 0 ETH | 0.00037156 | ||||
| Approve | 18012910 | 911 days ago | IN | 0 ETH | 0.00038248 | ||||
| Approve | 18012910 | 911 days ago | IN | 0 ETH | 0.00042712 | ||||
| Approve | 18012892 | 911 days ago | IN | 0 ETH | 0.00084824 | ||||
| Approve | 18012891 | 911 days ago | IN | 0 ETH | 0.00073234 | ||||
| Approve | 18012890 | 911 days ago | IN | 0 ETH | 0.0008739 | ||||
| Approve | 18012890 | 911 days ago | IN | 0 ETH | 0.00086769 | ||||
| Approve | 18012888 | 911 days ago | IN | 0 ETH | 0.00088047 | ||||
| Approve | 18012886 | 911 days ago | IN | 0 ETH | 0.00089279 | ||||
| Approve | 18012884 | 911 days ago | IN | 0 ETH | 0.00094606 | ||||
| Approve | 18012881 | 911 days ago | IN | 0 ETH | 0.00093625 | ||||
| Approve | 18012854 | 911 days ago | IN | 0 ETH | 0.00096585 | ||||
| Approve | 18012813 | 911 days ago | IN | 0 ETH | 0.00100909 | ||||
| Approve | 18012808 | 911 days ago | IN | 0 ETH | 0.00096049 | ||||
| Approve | 18012806 | 911 days ago | IN | 0 ETH | 0.00091648 | ||||
| Approve | 18012803 | 911 days ago | IN | 0 ETH | 0.00120014 | ||||
| Approve | 18012795 | 911 days ago | IN | 0 ETH | 0.00092987 | ||||
| Approve | 18012784 | 911 days ago | IN | 0 ETH | 0.00112864 | ||||
| Approve | 18012777 | 911 days ago | IN | 0 ETH | 0.00118705 | ||||
| Approve | 18012773 | 911 days ago | IN | 0 ETH | 0.00121666 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 18012882 | 911 days ago | 0.01212254 ETH | ||||
| Transfer | 18012882 | 911 days ago | 0.01212254 ETH | ||||
| Transfer | 18012805 | 911 days ago | 0.01389294 ETH | ||||
| Transfer | 18012805 | 911 days ago | 0.01389294 ETH | ||||
| Transfer | 18012804 | 911 days ago | 0.01499091 ETH | ||||
| Transfer | 18012804 | 911 days ago | 0.01499091 ETH | ||||
| Transfer | 18012803 | 911 days ago | 0.01569595 ETH | ||||
| Transfer | 18012803 | 911 days ago | 0.01569595 ETH | ||||
| Transfer | 18012803 | 911 days ago | 0.01697989 ETH | ||||
| Transfer | 18012803 | 911 days ago | 0.01697989 ETH | ||||
| Transfer | 18012803 | 911 days ago | 0.01842815 ETH | ||||
| Transfer | 18012803 | 911 days ago | 0.01842815 ETH | ||||
| Transfer | 18012803 | 911 days ago | 0.02007004 ETH | ||||
| Transfer | 18012803 | 911 days ago | 0.02007004 ETH | ||||
| Transfer | 18012801 | 911 days ago | 0.02153629 ETH | ||||
| Transfer | 18012801 | 911 days ago | 0.02153629 ETH | ||||
| Transfer | 18012791 | 911 days ago | 0.02426062 ETH | ||||
| Transfer | 18012791 | 911 days ago | 0.02426062 ETH | ||||
| Transfer | 18012788 | 911 days ago | 0.02566368 ETH | ||||
| Transfer | 18012788 | 911 days ago | 0.02566368 ETH | ||||
| Transfer | 18012785 | 911 days ago | 0.0286816 ETH | ||||
| Transfer | 18012785 | 911 days ago | 0.0286816 ETH | ||||
| Transfer | 18012771 | 911 days ago | 0.01937702 ETH | ||||
| Transfer | 18012771 | 911 days ago | 0.01937702 ETH | ||||
| Transfer | 18012768 | 911 days ago | 0.01956124 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PEPESHIA
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/**
$PEPESHIA - THe sushi master Pepe San.
Unite $PEPE and $SHIA: The Ultimate Coin Merging Both Communities.
Website: https://www.pepeshia.com/
Twitter: https://twitter.com/PepeShiaToken
Telegram:https://t.me/pepeshiaportal
*/
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
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 {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @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);
/**
* @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 `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, 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 `from` to `to` 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 from,
address to,
uint256 amount
) external returns (bool);
}
pragma solidity ^0.8.19;
interface IUniswapV2Router02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address UNISWAP_V2_PAIR);
}
contract PEPESHIA is IERC20, Ownable {
event Reflect(uint256 amountReflected, uint256 newTotalProportion);
event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
address constant DEAD = 0x000000000000000000000000000000000000dEaD;
address constant ZERO = 0x0000000000000000000000000000000000000000;
uint256 constant MAX_FEE = 10;
IUniswapV2Router02 public constant UNISWAP_V2_ROUTER =
IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address public immutable UNISWAP_V2_PAIR;
mapping(address => bool) public automatedMarketMakerPairs;
struct Fee {
uint8 reflection;
uint8 marketing;
uint8 lp;
uint8 buyback;
uint8 burn;
uint128 total;
}
string _name = "PEPESHIA";
string _symbol = "PEPESHIA";
uint256 _totalSupply = 100_000_000 ether;
uint256 public _maxTxAmount = _totalSupply * 3 / 100;
uint256 public _maxWalletAmount = _totalSupply * 3 / 100;
/* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */
mapping(address => uint256) public _rOwned;
uint256 public _totalProportion = _totalSupply;
mapping(address => mapping(address => uint256)) _allowances;
bool public tradingActive = false;
bool public transferDelayEnabled = false;
bool public limitsEnabled = true;
mapping(address => bool) isFeeExempt;
mapping(address => bool) isLimitExempt;
Fee public buyFee = Fee({reflection: 0, marketing: 15, lp: 0, buyback: 0, burn: 0, total: 15});
Fee public sellFee = Fee({reflection: 0, marketing: 25, lp: 0, buyback: 0, burn: 0, total: 25});
address private marketingFeeReceiver;
address private lpFeeReceiver;
address private buybackFeeReceiver;
bool public claimingFees = false;
uint256 public swapThreshold = (_totalSupply * 5) / 1000;
bool inSwap;
mapping(address => bool) public blacklists;
mapping(address => uint256) private _holderLastTransferTimestamp;
modifier swapping() {
inSwap = true;
_;
inSwap = false;
}
constructor() {
// create uniswap pair
address _uniswapPair =
IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH());
UNISWAP_V2_PAIR = _uniswapPair;
_setAutomatedMarketMakerPair(address(_uniswapPair), true);
_allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max;
_allowances[address(this)][owner()] = type(uint256).max;
isLimitExempt[address(this)] = true;
isLimitExempt[DEAD] = true;
isLimitExempt[owner()] = true;
isLimitExempt[UNISWAP_V2_PAIR] = true;
isFeeExempt[address(this)] = true;
isFeeExempt[DEAD] = true;
isFeeExempt[owner()] = true;
marketingFeeReceiver = 0xef8A2406f0856aBC52d7aA7924F01998CED442D1;
lpFeeReceiver = 0xef8A2406f0856aBC52d7aA7924F01998CED442D1;
buybackFeeReceiver = 0xef8A2406f0856aBC52d7aA7924F01998CED442D1;
_rOwned[tx.origin] = _totalSupply;
emit Transfer(address(0), tx.origin, _totalSupply);
}
receive() external payable {}
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
require(_allowances[sender][msg.sender] >= amount, "ERC20: insufficient allowance");
_allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
}
return _transferFrom(sender, recipient, amount);
}
function totalSupply() external view override returns (uint256) {
return _totalSupply;
}
function decimals() external pure returns (uint8) {
return 18;
}
function name() external view returns (string memory) {
return _name;
}
function symbol() external view returns (string memory) {
return _symbol;
}
function balanceOf(address account) public view override returns (uint256) {
return tokenFromReflection(_rOwned[account]);
}
function allowance(address holder, address spender) external view override returns (uint256) {
return _allowances[holder][spender];
}
function tokensToProportion(uint256 tokens) public view returns (uint256) {
return tokens * _totalProportion / _totalSupply;
}
function tokenFromReflection(uint256 proportion) public view returns (uint256) {
return proportion * _totalSupply / _totalProportion;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
}
function enableTrading() external onlyOwner {
tradingActive = true;
claimingFees = true;
}
function setAutomatedMarketMakerPair(address pair, bool value)
public
onlyOwner
{
require(
pair != UNISWAP_V2_PAIR,
"The pair cannot be removed from automatedMarketMakerPairs"
);
_setAutomatedMarketMakerPair(pair, value);
}
function _setAutomatedMarketMakerPair(address pair, bool value) private {
automatedMarketMakerPairs[pair] = value;
emit SetAutomatedMarketMakerPair(pair, value);
}
function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
require(
newNum >= ((_totalSupply * 1) / 1000) / 1e18,
"Cannot set maxTransactionAmount lower than 0.1%"
);
_maxTxAmount = newNum * (10**18);
}
function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
require(
newNum >= ((_totalSupply * 5) / 1000) / 1e18,
"Cannot set maxWallet lower than 0.5%"
);
_maxWalletAmount = newNum * (10**18);
}
function clearStuckBalance() external onlyOwner {
(bool success,) = payable(msg.sender).call{value: address(this).balance}("");
require(success);
}
function clearStuckToken() external onlyOwner {
_transferFrom(address(this), msg.sender, balanceOf(address(this)));
}
function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
claimingFees = _enabled;
swapThreshold = _amount;
}
function changeFees(
uint8 reflectionFeeBuy,
uint8 marketingFeeBuy,
uint8 lpFeeBuy,
uint8 buybackFeeBuy,
uint8 burnFeeBuy,
uint8 reflectionFeeSell,
uint8 marketingFeeSell,
uint8 lpFeeSell,
uint8 buybackFeeSell,
uint8 burnFeeSell
) external onlyOwner {
uint128 __totalBuyFee = reflectionFeeBuy + marketingFeeBuy + lpFeeBuy + buybackFeeBuy + burnFeeBuy;
uint128 __totalSellFee = reflectionFeeSell + marketingFeeSell + lpFeeSell + buybackFeeSell + burnFeeSell;
buyFee = Fee({
reflection: reflectionFeeBuy,
marketing: marketingFeeBuy,
lp: lpFeeBuy,
buyback: buybackFeeBuy,
burn: burnFeeBuy,
total: __totalBuyFee
});
sellFee = Fee({
reflection: reflectionFeeSell,
marketing: marketingFeeSell,
lp: lpFeeSell,
buyback: buybackFeeSell,
burn: burnFeeSell,
total: __totalSellFee
});
}
function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
}
function setisLimitExempt(address holder, bool exempt) external onlyOwner {
isLimitExempt[holder] = exempt;
}
function setFeeReceivers(address m_, address lp_, address b_) external onlyOwner {
marketingFeeReceiver = m_;
lpFeeReceiver = lp_;
buybackFeeReceiver = b_;
}
function setLimitsEnabled(bool e_) external onlyOwner {
limitsEnabled = e_;
}
// Set Transfer delay
function disableTransferDelay(bool e_) external onlyOwner returns (bool) {
transferDelayEnabled = e_;
return true;
}
function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
blacklists[_address] = _isBlacklisting;
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
require(!blacklists[recipient] && !blacklists[sender], "Blacklisted");
if (inSwap) {
return _basicTransfer(sender, recipient, amount);
}
if (limitsEnabled) {
if (!tradingActive)
{
require(
isFeeExempt[sender] || isFeeExempt[recipient],
"Trading is not active."
);
}
//when buy
if (automatedMarketMakerPairs[sender] && !isLimitExempt[recipient])
{
require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
require(amount + balanceOf(recipient) <= _maxWalletAmount, "Max wallet exceeded");
}
//when sell
else if (automatedMarketMakerPairs[recipient] && !isLimitExempt[sender])
{
require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
}
else if (!isLimitExempt[recipient])
{
require(amount + balanceOf(recipient) <= _maxWalletAmount, "Max wallet exceeded");
}
// at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
if (transferDelayEnabled) {
if (
recipient != owner() &&
recipient != address(UNISWAP_V2_ROUTER) &&
recipient != UNISWAP_V2_PAIR
) {
require(
_holderLastTransferTimestamp[tx.origin] + 1 <
block.number,
"_transfer:: Transfer Delay enabled. Only one purchase per two blocks allowed."
);
_holderLastTransferTimestamp[tx.origin] = block.number;
}
}
}
if (_shouldSwapBack()) {
_swapBack();
}
uint256 proportionAmount = tokensToProportion(amount);
require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
_rOwned[sender] = _rOwned[sender] - proportionAmount;
uint256 proportionReceived = _shouldTakeFee(sender, recipient)
? _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, proportionAmount)
: proportionAmount;
_rOwned[recipient] = _rOwned[recipient] + proportionReceived;
emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
uint256 proportionAmount = tokensToProportion(amount);
require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
_rOwned[sender] = _rOwned[sender] - proportionAmount;
_rOwned[recipient] = _rOwned[recipient] + proportionAmount;
emit Transfer(sender, recipient, amount);
return true;
}
function _takeFeeInProportions(bool buying, address sender, uint256 proportionAmount) internal returns (uint256) {
Fee memory __buyFee = buyFee;
Fee memory __sellFee = sellFee;
uint256 proportionFeeAmount =
buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100;
// reflect
uint256 proportionReflected = buying == true
? proportionFeeAmount * __buyFee.reflection / __buyFee.total
: proportionFeeAmount * __sellFee.reflection / __sellFee.total;
_totalProportion = _totalProportion - proportionReflected;
// take fees
uint256 _proportionToContract = proportionFeeAmount - proportionReflected;
if (_proportionToContract > 0) {
_rOwned[address(this)] = _rOwned[address(this)] + _proportionToContract;
emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
}
emit Reflect(proportionReflected, _totalProportion);
return proportionAmount - proportionFeeAmount;
}
function _shouldSwapBack() internal view returns (bool) {
return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold;
}
function _swapBack() internal swapping {
Fee memory __sellFee = sellFee;
uint256 __swapThreshold = swapThreshold;
uint256 amountToBurn = __swapThreshold * __sellFee.burn / __sellFee.total;
uint256 amountToSwap = __swapThreshold - amountToBurn;
approve(address(UNISWAP_V2_ROUTER), amountToSwap);
if(amountToBurn > 0)
{
// burn
_transferFrom(address(this), DEAD, amountToBurn);
}
// swap
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = UNISWAP_V2_ROUTER.WETH();
UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap, 0, path, address(this), block.timestamp
);
uint256 amountETH = address(this).balance;
uint256 totalSwapFee = __sellFee.total - __sellFee.reflection - __sellFee.burn;
//uint256 amountETHMarketing = amountETH * __sellFee.marketing / totalSwapFee;
uint256 amountETHLP = amountETH * __sellFee.lp / totalSwapFee;
uint256 amountETHBuyback = amountETH * __sellFee.buyback / totalSwapFee;
// send
(bool tmpSuccess,) = payable(lpFeeReceiver).call{value: amountETHLP}("");
(tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}("");
(tmpSuccess,) = address(marketingFeeReceiver).call{value: address(this).balance}("");
}
function _shouldTakeFee(address sender, address recipient) internal view returns (bool) {
return !isFeeExempt[sender] && !isFeeExempt[recipient];
}
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"reflectionFeeBuy","type":"uint8"},{"internalType":"uint8","name":"marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"lpFeeBuy","type":"uint8"},{"internalType":"uint8","name":"buybackFeeBuy","type":"uint8"},{"internalType":"uint8","name":"burnFeeBuy","type":"uint8"},{"internalType":"uint8","name":"reflectionFeeSell","type":"uint8"},{"internalType":"uint8","name":"marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"lpFeeSell","type":"uint8"},{"internalType":"uint8","name":"buybackFeeSell","type":"uint8"},{"internalType":"uint8","name":"burnFeeSell","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"},{"internalType":"address","name":"lp_","type":"address"},{"internalType":"address","name":"b_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"setLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a06040526040518060400160405280600881526020017f5045504553484941000000000000000000000000000000000000000000000000815250600290816200004a919062000faf565b506040518060400160405280600881526020017f50455045534849410000000000000000000000000000000000000000000000008152506003908162000091919062000faf565b506a52b7d2dcc80cd2e400000060045560646003600454620000b49190620010c5565b620000c091906200113f565b60055560646003600454620000d69190620010c5565b620000e291906200113f565b6006556004546008556000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff0219169083151502179055506040518060c00160405280600060ff168152602001600f60ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600f6fffffffffffffffffffffffffffffffff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506040518060c00160405280600060ff168152602001601960ff168152602001600060ff168152602001600060ff168152602001600060ff16815260200160196fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506000601160146101000a81548160ff0219169083151502179055506103e86005600454620003e39190620010c5565b620003ef91906200113f565b601255348015620003ff57600080fd5b50620004206200041462000b9f60201b60201c565b62000ba760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000482573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a89190620011e1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200054a9190620011e1565b6040518363ffffffff1660e01b81526004016200056992919062001224565b6020604051808303816000875af115801562000589573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005af9190620011e1565b90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620005f881600162000c6b60201b60201c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006200071f62000d0c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200082562000d0c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200099862000d0c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555073ef8a2406f0856abc52d7aa7924f01998ced442d1600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef8a2406f0856abc52d7aa7924f01998ced442d1601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef8a2406f0856abc52d7aa7924f01998ced442d1601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000b90919062001262565b60405180910390a3506200127f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000db757607f821691505b60208210810362000dcd5762000dcc62000d6f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000e377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000df8565b62000e43868362000df8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e9062000e8a62000e848462000e5b565b62000e65565b62000e5b565b9050919050565b6000819050919050565b62000eac8362000e6f565b62000ec462000ebb8262000e97565b84845462000e05565b825550505050565b600090565b62000edb62000ecc565b62000ee881848462000ea1565b505050565b5b8181101562000f105762000f0460008262000ed1565b60018101905062000eee565b5050565b601f82111562000f5f5762000f298162000dd3565b62000f348462000de8565b8101602085101562000f44578190505b62000f5c62000f538562000de8565b83018262000eed565b50505b505050565b600082821c905092915050565b600062000f846000198460080262000f64565b1980831691505092915050565b600062000f9f838362000f71565b9150826002028217905092915050565b62000fba8262000d35565b67ffffffffffffffff81111562000fd65762000fd562000d40565b5b62000fe2825462000d9e565b62000fef82828562000f14565b600060209050601f83116001811462001027576000841562001012578287015190505b6200101e858262000f91565b8655506200108e565b601f198416620010378662000dd3565b60005b8281101562001061578489015182556001820191506020850194506020810190506200103a565b868310156200108157848901516200107d601f89168262000f71565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010d28262000e5b565b9150620010df8362000e5b565b9250828202620010ef8162000e5b565b9150828204841483151762001109576200110862001096565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200114c8262000e5b565b9150620011598362000e5b565b9250826200116c576200116b62001110565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011a9826200117c565b9050919050565b620011bb816200119c565b8114620011c757600080fd5b50565b600081519050620011db81620011b0565b92915050565b600060208284031215620011fa57620011f962001177565b5b60006200120a84828501620011ca565b91505092915050565b6200121e816200119c565b82525050565b60006040820190506200123b600083018562001213565b6200124a602083018462001213565b9392505050565b6200125c8162000e5b565b82525050565b600060208201905062001279600083018462001251565b92915050565b6080516145df620012b7600039600081816114c001528181611b89015281816121c80152818161243e015261293a01526145df6000f3fe6080604052600436106102765760003560e01c8063658d4b7f1161014f578063b0f7ec38116100c1578063d7c010321161007a578063d7c0103214610993578063d85a2828146109bc578063dd62ed3e146109d3578063df20fd4914610a10578063f2fde38b14610a39578063f40acc3d14610a625761027d565b8063b0f7ec3814610883578063b62496f5146108ae578063bbc0c742146108eb578063c18bc19514610916578063c38a31de1461093f578063c876d0b9146109685761027d565b80638a8c523c116101135780638a8c523c146107855780638da5cb5b1461079c57806395d89b41146107c75780639a7a23d6146107f2578063a82ed9ec1461081b578063a9059cbb146108465761027d565b8063658d4b7f146106b25780636c0a24eb146106db57806370a0823114610706578063715018a6146107435780637d1db4a51461075a5761027d565b80632b14ca56116101e8578063364333f4116101ac578063364333f41461059f578063404e5129146105b657806341aea9de146105df57806345ce5365146106085780634706240214610645578063571ac8b0146106755761027d565b80632b14ca561461049f5780632d838119146104cf578063313ce5671461050c57806334b86560146105375780633582ad23146105745761027d565b8063178002871161023a578063178002871461038f57806318160ddd146103ba578063203e727e146103e557806323b872dd1461040e57806324c390231461044b5780632b112e49146104745761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d85780630cfc15f91461031557806316c02129146103525761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a8d565b6040516102a491906134be565b60405180910390f35b3480156102b957600080fd5b506102c2610a93565b6040516102cf9190613569565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061361a565b610b25565b60405161030c9190613675565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613690565b610c17565b60405161034991906134be565b60405180910390f35b34801561035e57600080fd5b5061037960048036038101906103749190613690565b610c2f565b6040516103869190613675565b60405180910390f35b34801561039b57600080fd5b506103a4610c4f565b6040516103b191906134be565b60405180910390f35b3480156103c657600080fd5b506103cf610c55565b6040516103dc91906134be565b60405180910390f35b3480156103f157600080fd5b5061040c600480360381019061040791906136bd565b610c5f565b005b34801561041a57600080fd5b50610435600480360381019061043091906136ea565b610cf5565b6040516104429190613675565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190613769565b610f76565b005b34801561048057600080fd5b50610489610fd9565b60405161049691906134be565b60405180910390f35b3480156104ab57600080fd5b506104b461100c565b6040516104c6969594939291906137f0565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f191906136bd565b611093565b60405161050391906134be565b60405180910390f35b34801561051857600080fd5b506105216110b7565b60405161052e9190613851565b60405180910390f35b34801561054357600080fd5b5061055e6004803603810190610559919061386c565b6110c0565b60405161056b9190613675565b60405180910390f35b34801561058057600080fd5b506105896110ed565b6040516105969190613675565b60405180910390f35b3480156105ab57600080fd5b506105b4611100565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190613769565b611181565b005b3480156105eb57600080fd5b506106066004803603810190610601919061386c565b6111e4565b005b34801561061457600080fd5b5061062f600480360381019061062a91906136bd565b611209565b60405161063c91906134be565b60405180910390f35b34801561065157600080fd5b5061065a61122d565b60405161066c969594939291906137f0565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190613690565b6112b4565b6040516106a99190613675565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190613769565b6112e7565b005b3480156106e757600080fd5b506106f061134a565b6040516106fd91906134be565b60405180910390f35b34801561071257600080fd5b5061072d60048036038101906107289190613690565b611350565b60405161073a91906134be565b60405180910390f35b34801561074f57600080fd5b506107586113a1565b005b34801561076657600080fd5b5061076f6113b5565b60405161077c91906134be565b60405180910390f35b34801561079157600080fd5b5061079a6113bb565b005b3480156107a857600080fd5b506107b16113fb565b6040516107be91906138a8565b60405180910390f35b3480156107d357600080fd5b506107dc611424565b6040516107e99190613569565b60405180910390f35b3480156107fe57600080fd5b5061081960048036038101906108149190613769565b6114b6565b005b34801561082757600080fd5b5061083061155a565b60405161083d9190613922565b60405180910390f35b34801561085257600080fd5b5061086d6004803603810190610868919061361a565b611572565b60405161087a9190613675565b60405180910390f35b34801561088f57600080fd5b50610898611587565b6040516108a59190613675565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d09190613690565b61159a565b6040516108e29190613675565b60405180910390f35b3480156108f757600080fd5b506109006115ba565b60405161090d9190613675565b60405180910390f35b34801561092257600080fd5b5061093d600480360381019061093891906136bd565b6115cd565b005b34801561094b57600080fd5b5061096660048036038101906109619190613969565b611663565b005b34801561097457600080fd5b5061097d61194f565b60405161098a9190613675565b60405180910390f35b34801561099f57600080fd5b506109ba60048036038101906109b59190613a48565b611962565b005b3480156109c857600080fd5b506109d1611a32565b005b3480156109df57600080fd5b506109fa60048036038101906109f59190613a9b565b611a50565b604051610a0791906134be565b60405180910390f35b348015610a1c57600080fd5b50610a376004803603810190610a329190613adb565b611ad7565b005b348015610a4557600080fd5b50610a606004803603810190610a5b9190613690565b611b04565b005b348015610a6e57600080fd5b50610a77611b87565b604051610a8491906138a8565b60405180910390f35b60125481565b606060028054610aa290613b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ace90613b4a565b8015610b1b5780601f10610af057610100808354040283529160200191610b1b565b820191906000526020600020905b815481529060010190602001808311610afe57829003601f168201915b5050505050905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c0591906134be565b60405180910390a36001905092915050565b60076020528060005260406000206000915090505481565b60146020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600454905090565b610c67611bab565b670de0b6b3a76400006103e86001600454610c829190613baa565b610c8c9190613c1b565b610c969190613c1b565b811015610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf90613cbe565b60405180910390fd5b670de0b6b3a764000081610cec9190613baa565b60058190555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f625781600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090613d2a565b60405180910390fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ee19190613d4a565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f6d848484611c29565b90509392505050565b610f7e611bab565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610fe56000611350565b610ff061dead611350565b600454610ffd9190613d4a565b6110079190613d4a565b905090565b600e8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b6000600854600454836110a69190613baa565b6110b09190613c1b565b9050919050565b60006012905090565b60006110ca611bab565b81600a60016101000a81548160ff02191690831515021790555060019050919050565b600a60029054906101000a900460ff1681565b611108611bab565b60003373ffffffffffffffffffffffffffffffffffffffff164760405161112e90613daf565b60006040518083038185875af1925050503d806000811461116b576040519150601f19603f3d011682016040523d82523d6000602084013e611170565b606091505b505090508061117e57600080fd5b50565b611189611bab565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6111ec611bab565b80600a60026101000a81548160ff02191690831515021790555050565b60006004546008548361121c9190613baa565b6112269190613c1b565b9050919050565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b60006112e0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b25565b9050919050565b6112ef611bab565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60065481565b600061139a600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611093565b9050919050565b6113a9611bab565b6113b360006125ac565b565b60055481565b6113c3611bab565b6001600a60006101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461143390613b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461145f90613b4a565b80156114ac5780601f10611481576101008083540402835291602001916114ac565b820191906000526020600020905b81548152906001019060200180831161148f57829003601f168201915b5050505050905090565b6114be611bab565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390613e36565b60405180910390fd5b6115568282612670565b5050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600061157f338484611c29565b905092915050565b601160149054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b6115d5611bab565b670de0b6b3a76400006103e860056004546115f09190613baa565b6115fa9190613c1b565b6116049190613c1b565b811015611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d90613ec8565b60405180910390fd5b670de0b6b3a76400008161165a9190613baa565b60068190555050565b61166b611bab565b600086888a8c8e61167c9190613ee8565b6116869190613ee8565b6116909190613ee8565b61169a9190613ee8565b60ff1690506000828486888a6116b09190613ee8565b6116ba9190613ee8565b6116c49190613ee8565b6116ce9190613ee8565b60ff1690506040518060c001604052808d60ff1681526020018c60ff1681526020018b60ff1681526020018a60ff1681526020018960ff168152602001836fffffffffffffffffffffffffffffffff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506040518060c001604052808860ff1681526020018760ff1681526020018660ff1681526020018560ff1681526020018460ff168152602001826fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050505050505050505050505050565b600a60019054906101000a900460ff1681565b61196a611bab565b82600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611a3a611bab565b611a4d3033611a4830611350565b611c29565b50565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611adf611bab565b81601160146101000a81548160ff021916908315150217905550806012819055505050565b611b0c611bab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7290613f8f565b60405180910390fd5b611b84816125ac565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b611bb3612711565b73ffffffffffffffffffffffffffffffffffffffff16611bd16113fb565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613ffb565b60405180910390fd5b565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ccf5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590614067565b60405180910390fd5b601360009054906101000a900460ff1615611d3557611d2e848484612719565b90506125a5565b600a60029054906101000a900460ff16156122f057600a60009054906101000a900460ff16611e3f57600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dff5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e35906140d3565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee25750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f8957600554821115611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614165565b60405180910390fd5b600654611f3884611350565b83611f439190614185565b1115611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b90614205565b60405180910390fd5b612127565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561202c5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207b57600554821115612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d90614165565b60405180910390fd5b612126565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612125576006546120d884611350565b836120e39190614185565b1115612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90614205565b60405180910390fd5b5b5b5b600a60019054906101000a900460ff16156122ef576121446113fb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121bf5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561221757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ee57436001601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122699190614185565b106122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a0906142bd565b60405180910390fd5b43601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b6122f8612936565b15612306576123056129d4565b5b600061231183611209565b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c90614329565b60405180910390fd5b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e09190613d4a565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061242f8686612fb0565b61243957816124a1565b6124a07f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612496576000612499565b60015b878461305e565b5b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ee9190614185565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61258984611093565b60405161259691906134be565b60405180910390a36001925050505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600033905090565b60008061272583611209565b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156127a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a090614329565b60405180910390fd5b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127f49190613d4a565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128829190614185565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161292291906134be565b60405180910390a360019150509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156129a15750601360009054906101000a900460ff16155b80156129b95750601160149054906101000a900460ff165b80156129cf57506012546129cc30611350565b10155b905090565b6001601360006101000a81548160ff0219169083151502179055506000600e6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000601254905060008260a001516fffffffffffffffffffffffffffffffff16836080015160ff1683612b0e9190613baa565b612b189190613c1b565b905060008183612b289190613d4a565b9050612b48737a250d5630b4cf539739df2c5dacb4c659f2488d82610b25565b506000821115612b6157612b5f3061dead84611c29565b505b6000600267ffffffffffffffff811115612b7e57612b7d614349565b5b604051908082528060200260200182016040528015612bac5781602001602082028036833780820191505090505b5090503081600081518110612bc457612bc3614378565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8191906143bc565b81600181518110612c9557612c94614378565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d259594939291906144e2565b600060405180830381600087803b158015612d3f57600080fd5b505af1158015612d53573d6000803e3d6000fd5b5050505060004790506000866080015160ff16876000015160ff168860a00151612d7d919061453c565b612d87919061453c565b6fffffffffffffffffffffffffffffffff169050600081886040015160ff1684612db19190613baa565b612dbb9190613c1b565b9050600082896060015160ff1685612dd39190613baa565b612ddd9190613c1b565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e2790613daf565b60006040518083038185875af1925050503d8060008114612e64576040519150601f19603f3d011682016040523d82523d6000602084013e612e69565b606091505b50509050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612eb390613daf565b60006040518083038185875af1925050503d8060008114612ef0576040519150601f19603f3d011682016040523d82523d6000602084013e612ef5565b606091505b505080915050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612f4190613daf565b60006040518083038185875af1925050503d8060008114612f7e576040519150601f19603f3d011682016040523d82523d6000602084013e612f83565b606091505b505080915050505050505050505050506000601360006101000a81548160ff021916908315150217905550565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130565750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080600d6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000600e6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600060011515871515146132785760648260a001516fffffffffffffffffffffffffffffffff16866132699190613baa565b6132739190613c1b565b6132a7565b60648360a001516fffffffffffffffffffffffffffffffff168661329c9190613baa565b6132a69190613c1b565b5b9050600060011515881515146132f0578260a001516fffffffffffffffffffffffffffffffff16836000015160ff16836132e19190613baa565b6132eb9190613c1b565b613325565b8360a001516fffffffffffffffffffffffffffffffff16846000015160ff168361331a9190613baa565b6133249190613c1b565b5b9050806008546133359190613d4a565b600881905550600081836133499190613d4a565b905060008111156134505780600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461339f9190614185565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61343a84611093565b60405161344791906134be565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac82600854604051613483929190614580565b60405180910390a182876134979190613d4a565b955050505050509392505050565b6000819050919050565b6134b8816134a5565b82525050565b60006020820190506134d360008301846134af565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135135780820151818401526020810190506134f8565b60008484015250505050565b6000601f19601f8301169050919050565b600061353b826134d9565b61354581856134e4565b93506135558185602086016134f5565b61355e8161351f565b840191505092915050565b600060208201905081810360008301526135838184613530565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135bb82613590565b9050919050565b6135cb816135b0565b81146135d657600080fd5b50565b6000813590506135e8816135c2565b92915050565b6135f7816134a5565b811461360257600080fd5b50565b600081359050613614816135ee565b92915050565b600080604083850312156136315761363061358b565b5b600061363f858286016135d9565b925050602061365085828601613605565b9150509250929050565b60008115159050919050565b61366f8161365a565b82525050565b600060208201905061368a6000830184613666565b92915050565b6000602082840312156136a6576136a561358b565b5b60006136b4848285016135d9565b91505092915050565b6000602082840312156136d3576136d261358b565b5b60006136e184828501613605565b91505092915050565b6000806000606084860312156137035761370261358b565b5b6000613711868287016135d9565b9350506020613722868287016135d9565b925050604061373386828701613605565b9150509250925092565b6137468161365a565b811461375157600080fd5b50565b6000813590506137638161373d565b92915050565b600080604083850312156137805761377f61358b565b5b600061378e858286016135d9565b925050602061379f85828601613754565b9150509250929050565b600060ff82169050919050565b6137bf816137a9565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6137ea816137c5565b82525050565b600060c08201905061380560008301896137b6565b61381260208301886137b6565b61381f60408301876137b6565b61382c60608301866137b6565b61383960808301856137b6565b61384660a08301846137e1565b979650505050505050565b600060208201905061386660008301846137b6565b92915050565b6000602082840312156138825761388161358b565b5b600061389084828501613754565b91505092915050565b6138a2816135b0565b82525050565b60006020820190506138bd6000830184613899565b92915050565b6000819050919050565b60006138e86138e36138de84613590565b6138c3565b613590565b9050919050565b60006138fa826138cd565b9050919050565b600061390c826138ef565b9050919050565b61391c81613901565b82525050565b60006020820190506139376000830184613913565b92915050565b613946816137a9565b811461395157600080fd5b50565b6000813590506139638161393d565b92915050565b6000806000806000806000806000806101408b8d03121561398d5761398c61358b565b5b600061399b8d828e01613954565b9a505060206139ac8d828e01613954565b99505060406139bd8d828e01613954565b98505060606139ce8d828e01613954565b97505060806139df8d828e01613954565b96505060a06139f08d828e01613954565b95505060c0613a018d828e01613954565b94505060e0613a128d828e01613954565b935050610100613a248d828e01613954565b925050610120613a368d828e01613954565b9150509295989b9194979a5092959850565b600080600060608486031215613a6157613a6061358b565b5b6000613a6f868287016135d9565b9350506020613a80868287016135d9565b9250506040613a91868287016135d9565b9150509250925092565b60008060408385031215613ab257613ab161358b565b5b6000613ac0858286016135d9565b9250506020613ad1858286016135d9565b9150509250929050565b60008060408385031215613af257613af161358b565b5b6000613b0085828601613754565b9250506020613b1185828601613605565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b6257607f821691505b602082108103613b7557613b74613b1b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bb5826134a5565b9150613bc0836134a5565b9250828202613bce816134a5565b91508282048414831517613be557613be4613b7b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c26826134a5565b9150613c31836134a5565b925082613c4157613c40613bec565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613ca8602f836134e4565b9150613cb382613c4c565b604082019050919050565b60006020820190508181036000830152613cd781613c9b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613d14601d836134e4565b9150613d1f82613cde565b602082019050919050565b60006020820190508181036000830152613d4381613d07565b9050919050565b6000613d55826134a5565b9150613d60836134a5565b9250828203905081811115613d7857613d77613b7b565b5b92915050565b600081905092915050565b50565b6000613d99600083613d7e565b9150613da482613d89565b600082019050919050565b6000613dba82613d8c565b9150819050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613e206039836134e4565b9150613e2b82613dc4565b604082019050919050565b60006020820190508181036000830152613e4f81613e13565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613eb26024836134e4565b9150613ebd82613e56565b604082019050919050565b60006020820190508181036000830152613ee181613ea5565b9050919050565b6000613ef3826137a9565b9150613efe836137a9565b9250828201905060ff811115613f1757613f16613b7b565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f796026836134e4565b9150613f8482613f1d565b604082019050919050565b60006020820190508181036000830152613fa881613f6c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fe56020836134e4565b9150613ff082613faf565b602082019050919050565b6000602082019050818103600083015261401481613fd8565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614051600b836134e4565b915061405c8261401b565b602082019050919050565b6000602082019050818103600083015261408081614044565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006140bd6016836134e4565b91506140c882614087565b602082019050919050565b600060208201905081810360008301526140ec816140b0565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061414f6028836134e4565b915061415a826140f3565b604082019050919050565b6000602082019050818103600083015261417e81614142565b9050919050565b6000614190826134a5565b915061419b836134a5565b92508282019050808211156141b3576141b2613b7b565b5b92915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006141ef6013836134e4565b91506141fa826141b9565b602082019050919050565b6000602082019050818103600083015261421e816141e2565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260208201527f6c6f636b7320616c6c6f7765642e000000000000000000000000000000000000604082015250565b60006142a7604e836134e4565b91506142b282614225565b606082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b60006143136014836134e4565b915061431e826142dd565b602082019050919050565b6000602082019050818103600083015261434281614306565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143b6816135c2565b92915050565b6000602082840312156143d2576143d161358b565b5b60006143e0848285016143a7565b91505092915050565b6000819050919050565b600061440e614409614404846143e9565b6138c3565b6134a5565b9050919050565b61441e816143f3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614459816135b0565b82525050565b600061446b8383614450565b60208301905092915050565b6000602082019050919050565b600061448f82614424565b614499818561442f565b93506144a483614440565b8060005b838110156144d55781516144bc888261445f565b97506144c783614477565b9250506001810190506144a8565b5085935050505092915050565b600060a0820190506144f760008301886134af565b6145046020830187614415565b81810360408301526145168186614484565b90506145256060830185613899565b61453260808301846134af565b9695505050505050565b6000614547826137c5565b9150614552836137c5565b925082820390506fffffffffffffffffffffffffffffffff81111561457a57614579613b7b565b5b92915050565b600060408201905061459560008301856134af565b6145a260208301846134af565b939250505056fea26469706673582212206c67a746744366e2fc6119788ef3eee1b574c3df6f44c7a4c9561b2d680065a964736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102765760003560e01c8063658d4b7f1161014f578063b0f7ec38116100c1578063d7c010321161007a578063d7c0103214610993578063d85a2828146109bc578063dd62ed3e146109d3578063df20fd4914610a10578063f2fde38b14610a39578063f40acc3d14610a625761027d565b8063b0f7ec3814610883578063b62496f5146108ae578063bbc0c742146108eb578063c18bc19514610916578063c38a31de1461093f578063c876d0b9146109685761027d565b80638a8c523c116101135780638a8c523c146107855780638da5cb5b1461079c57806395d89b41146107c75780639a7a23d6146107f2578063a82ed9ec1461081b578063a9059cbb146108465761027d565b8063658d4b7f146106b25780636c0a24eb146106db57806370a0823114610706578063715018a6146107435780637d1db4a51461075a5761027d565b80632b14ca56116101e8578063364333f4116101ac578063364333f41461059f578063404e5129146105b657806341aea9de146105df57806345ce5365146106085780634706240214610645578063571ac8b0146106755761027d565b80632b14ca561461049f5780632d838119146104cf578063313ce5671461050c57806334b86560146105375780633582ad23146105745761027d565b8063178002871161023a578063178002871461038f57806318160ddd146103ba578063203e727e146103e557806323b872dd1461040e57806324c390231461044b5780632b112e49146104745761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d85780630cfc15f91461031557806316c02129146103525761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a8d565b6040516102a491906134be565b60405180910390f35b3480156102b957600080fd5b506102c2610a93565b6040516102cf9190613569565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061361a565b610b25565b60405161030c9190613675565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613690565b610c17565b60405161034991906134be565b60405180910390f35b34801561035e57600080fd5b5061037960048036038101906103749190613690565b610c2f565b6040516103869190613675565b60405180910390f35b34801561039b57600080fd5b506103a4610c4f565b6040516103b191906134be565b60405180910390f35b3480156103c657600080fd5b506103cf610c55565b6040516103dc91906134be565b60405180910390f35b3480156103f157600080fd5b5061040c600480360381019061040791906136bd565b610c5f565b005b34801561041a57600080fd5b50610435600480360381019061043091906136ea565b610cf5565b6040516104429190613675565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190613769565b610f76565b005b34801561048057600080fd5b50610489610fd9565b60405161049691906134be565b60405180910390f35b3480156104ab57600080fd5b506104b461100c565b6040516104c6969594939291906137f0565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f191906136bd565b611093565b60405161050391906134be565b60405180910390f35b34801561051857600080fd5b506105216110b7565b60405161052e9190613851565b60405180910390f35b34801561054357600080fd5b5061055e6004803603810190610559919061386c565b6110c0565b60405161056b9190613675565b60405180910390f35b34801561058057600080fd5b506105896110ed565b6040516105969190613675565b60405180910390f35b3480156105ab57600080fd5b506105b4611100565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190613769565b611181565b005b3480156105eb57600080fd5b506106066004803603810190610601919061386c565b6111e4565b005b34801561061457600080fd5b5061062f600480360381019061062a91906136bd565b611209565b60405161063c91906134be565b60405180910390f35b34801561065157600080fd5b5061065a61122d565b60405161066c969594939291906137f0565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190613690565b6112b4565b6040516106a99190613675565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190613769565b6112e7565b005b3480156106e757600080fd5b506106f061134a565b6040516106fd91906134be565b60405180910390f35b34801561071257600080fd5b5061072d60048036038101906107289190613690565b611350565b60405161073a91906134be565b60405180910390f35b34801561074f57600080fd5b506107586113a1565b005b34801561076657600080fd5b5061076f6113b5565b60405161077c91906134be565b60405180910390f35b34801561079157600080fd5b5061079a6113bb565b005b3480156107a857600080fd5b506107b16113fb565b6040516107be91906138a8565b60405180910390f35b3480156107d357600080fd5b506107dc611424565b6040516107e99190613569565b60405180910390f35b3480156107fe57600080fd5b5061081960048036038101906108149190613769565b6114b6565b005b34801561082757600080fd5b5061083061155a565b60405161083d9190613922565b60405180910390f35b34801561085257600080fd5b5061086d6004803603810190610868919061361a565b611572565b60405161087a9190613675565b60405180910390f35b34801561088f57600080fd5b50610898611587565b6040516108a59190613675565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d09190613690565b61159a565b6040516108e29190613675565b60405180910390f35b3480156108f757600080fd5b506109006115ba565b60405161090d9190613675565b60405180910390f35b34801561092257600080fd5b5061093d600480360381019061093891906136bd565b6115cd565b005b34801561094b57600080fd5b5061096660048036038101906109619190613969565b611663565b005b34801561097457600080fd5b5061097d61194f565b60405161098a9190613675565b60405180910390f35b34801561099f57600080fd5b506109ba60048036038101906109b59190613a48565b611962565b005b3480156109c857600080fd5b506109d1611a32565b005b3480156109df57600080fd5b506109fa60048036038101906109f59190613a9b565b611a50565b604051610a0791906134be565b60405180910390f35b348015610a1c57600080fd5b50610a376004803603810190610a329190613adb565b611ad7565b005b348015610a4557600080fd5b50610a606004803603810190610a5b9190613690565b611b04565b005b348015610a6e57600080fd5b50610a77611b87565b604051610a8491906138a8565b60405180910390f35b60125481565b606060028054610aa290613b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ace90613b4a565b8015610b1b5780601f10610af057610100808354040283529160200191610b1b565b820191906000526020600020905b815481529060010190602001808311610afe57829003601f168201915b5050505050905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c0591906134be565b60405180910390a36001905092915050565b60076020528060005260406000206000915090505481565b60146020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600454905090565b610c67611bab565b670de0b6b3a76400006103e86001600454610c829190613baa565b610c8c9190613c1b565b610c969190613c1b565b811015610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf90613cbe565b60405180910390fd5b670de0b6b3a764000081610cec9190613baa565b60058190555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f625781600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090613d2a565b60405180910390fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ee19190613d4a565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f6d848484611c29565b90509392505050565b610f7e611bab565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610fe56000611350565b610ff061dead611350565b600454610ffd9190613d4a565b6110079190613d4a565b905090565b600e8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b6000600854600454836110a69190613baa565b6110b09190613c1b565b9050919050565b60006012905090565b60006110ca611bab565b81600a60016101000a81548160ff02191690831515021790555060019050919050565b600a60029054906101000a900460ff1681565b611108611bab565b60003373ffffffffffffffffffffffffffffffffffffffff164760405161112e90613daf565b60006040518083038185875af1925050503d806000811461116b576040519150601f19603f3d011682016040523d82523d6000602084013e611170565b606091505b505090508061117e57600080fd5b50565b611189611bab565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6111ec611bab565b80600a60026101000a81548160ff02191690831515021790555050565b60006004546008548361121c9190613baa565b6112269190613c1b565b9050919050565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b60006112e0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b25565b9050919050565b6112ef611bab565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60065481565b600061139a600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611093565b9050919050565b6113a9611bab565b6113b360006125ac565b565b60055481565b6113c3611bab565b6001600a60006101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461143390613b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461145f90613b4a565b80156114ac5780601f10611481576101008083540402835291602001916114ac565b820191906000526020600020905b81548152906001019060200180831161148f57829003601f168201915b5050505050905090565b6114be611bab565b7f00000000000000000000000053c53489a87715440d84fec015dd548c25aa50ef73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390613e36565b60405180910390fd5b6115568282612670565b5050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600061157f338484611c29565b905092915050565b601160149054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b6115d5611bab565b670de0b6b3a76400006103e860056004546115f09190613baa565b6115fa9190613c1b565b6116049190613c1b565b811015611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d90613ec8565b60405180910390fd5b670de0b6b3a76400008161165a9190613baa565b60068190555050565b61166b611bab565b600086888a8c8e61167c9190613ee8565b6116869190613ee8565b6116909190613ee8565b61169a9190613ee8565b60ff1690506000828486888a6116b09190613ee8565b6116ba9190613ee8565b6116c49190613ee8565b6116ce9190613ee8565b60ff1690506040518060c001604052808d60ff1681526020018c60ff1681526020018b60ff1681526020018a60ff1681526020018960ff168152602001836fffffffffffffffffffffffffffffffff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506040518060c001604052808860ff1681526020018760ff1681526020018660ff1681526020018560ff1681526020018460ff168152602001826fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050505050505050505050505050565b600a60019054906101000a900460ff1681565b61196a611bab565b82600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611a3a611bab565b611a4d3033611a4830611350565b611c29565b50565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611adf611bab565b81601160146101000a81548160ff021916908315150217905550806012819055505050565b611b0c611bab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7290613f8f565b60405180910390fd5b611b84816125ac565b50565b7f00000000000000000000000053c53489a87715440d84fec015dd548c25aa50ef81565b611bb3612711565b73ffffffffffffffffffffffffffffffffffffffff16611bd16113fb565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613ffb565b60405180910390fd5b565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ccf5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590614067565b60405180910390fd5b601360009054906101000a900460ff1615611d3557611d2e848484612719565b90506125a5565b600a60029054906101000a900460ff16156122f057600a60009054906101000a900460ff16611e3f57600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dff5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e35906140d3565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee25750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f8957600554821115611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614165565b60405180910390fd5b600654611f3884611350565b83611f439190614185565b1115611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b90614205565b60405180910390fd5b612127565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561202c5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207b57600554821115612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d90614165565b60405180910390fd5b612126565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612125576006546120d884611350565b836120e39190614185565b1115612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90614205565b60405180910390fd5b5b5b5b600a60019054906101000a900460ff16156122ef576121446113fb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121bf5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561221757507f00000000000000000000000053c53489a87715440d84fec015dd548c25aa50ef73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ee57436001601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122699190614185565b106122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a0906142bd565b60405180910390fd5b43601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b6122f8612936565b15612306576123056129d4565b5b600061231183611209565b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c90614329565b60405180910390fd5b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e09190613d4a565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061242f8686612fb0565b61243957816124a1565b6124a07f00000000000000000000000053c53489a87715440d84fec015dd548c25aa50ef73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612496576000612499565b60015b878461305e565b5b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ee9190614185565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61258984611093565b60405161259691906134be565b60405180910390a36001925050505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600033905090565b60008061272583611209565b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156127a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a090614329565b60405180910390fd5b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127f49190613d4a565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128829190614185565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161292291906134be565b60405180910390a360019150509392505050565b60007f00000000000000000000000053c53489a87715440d84fec015dd548c25aa50ef73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156129a15750601360009054906101000a900460ff16155b80156129b95750601160149054906101000a900460ff165b80156129cf57506012546129cc30611350565b10155b905090565b6001601360006101000a81548160ff0219169083151502179055506000600e6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000601254905060008260a001516fffffffffffffffffffffffffffffffff16836080015160ff1683612b0e9190613baa565b612b189190613c1b565b905060008183612b289190613d4a565b9050612b48737a250d5630b4cf539739df2c5dacb4c659f2488d82610b25565b506000821115612b6157612b5f3061dead84611c29565b505b6000600267ffffffffffffffff811115612b7e57612b7d614349565b5b604051908082528060200260200182016040528015612bac5781602001602082028036833780820191505090505b5090503081600081518110612bc457612bc3614378565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8191906143bc565b81600181518110612c9557612c94614378565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d259594939291906144e2565b600060405180830381600087803b158015612d3f57600080fd5b505af1158015612d53573d6000803e3d6000fd5b5050505060004790506000866080015160ff16876000015160ff168860a00151612d7d919061453c565b612d87919061453c565b6fffffffffffffffffffffffffffffffff169050600081886040015160ff1684612db19190613baa565b612dbb9190613c1b565b9050600082896060015160ff1685612dd39190613baa565b612ddd9190613c1b565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e2790613daf565b60006040518083038185875af1925050503d8060008114612e64576040519150601f19603f3d011682016040523d82523d6000602084013e612e69565b606091505b50509050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612eb390613daf565b60006040518083038185875af1925050503d8060008114612ef0576040519150601f19603f3d011682016040523d82523d6000602084013e612ef5565b606091505b505080915050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612f4190613daf565b60006040518083038185875af1925050503d8060008114612f7e576040519150601f19603f3d011682016040523d82523d6000602084013e612f83565b606091505b505080915050505050505050505050506000601360006101000a81548160ff021916908315150217905550565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130565750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080600d6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000600e6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600060011515871515146132785760648260a001516fffffffffffffffffffffffffffffffff16866132699190613baa565b6132739190613c1b565b6132a7565b60648360a001516fffffffffffffffffffffffffffffffff168661329c9190613baa565b6132a69190613c1b565b5b9050600060011515881515146132f0578260a001516fffffffffffffffffffffffffffffffff16836000015160ff16836132e19190613baa565b6132eb9190613c1b565b613325565b8360a001516fffffffffffffffffffffffffffffffff16846000015160ff168361331a9190613baa565b6133249190613c1b565b5b9050806008546133359190613d4a565b600881905550600081836133499190613d4a565b905060008111156134505780600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461339f9190614185565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61343a84611093565b60405161344791906134be565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac82600854604051613483929190614580565b60405180910390a182876134979190613d4a565b955050505050509392505050565b6000819050919050565b6134b8816134a5565b82525050565b60006020820190506134d360008301846134af565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135135780820151818401526020810190506134f8565b60008484015250505050565b6000601f19601f8301169050919050565b600061353b826134d9565b61354581856134e4565b93506135558185602086016134f5565b61355e8161351f565b840191505092915050565b600060208201905081810360008301526135838184613530565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135bb82613590565b9050919050565b6135cb816135b0565b81146135d657600080fd5b50565b6000813590506135e8816135c2565b92915050565b6135f7816134a5565b811461360257600080fd5b50565b600081359050613614816135ee565b92915050565b600080604083850312156136315761363061358b565b5b600061363f858286016135d9565b925050602061365085828601613605565b9150509250929050565b60008115159050919050565b61366f8161365a565b82525050565b600060208201905061368a6000830184613666565b92915050565b6000602082840312156136a6576136a561358b565b5b60006136b4848285016135d9565b91505092915050565b6000602082840312156136d3576136d261358b565b5b60006136e184828501613605565b91505092915050565b6000806000606084860312156137035761370261358b565b5b6000613711868287016135d9565b9350506020613722868287016135d9565b925050604061373386828701613605565b9150509250925092565b6137468161365a565b811461375157600080fd5b50565b6000813590506137638161373d565b92915050565b600080604083850312156137805761377f61358b565b5b600061378e858286016135d9565b925050602061379f85828601613754565b9150509250929050565b600060ff82169050919050565b6137bf816137a9565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6137ea816137c5565b82525050565b600060c08201905061380560008301896137b6565b61381260208301886137b6565b61381f60408301876137b6565b61382c60608301866137b6565b61383960808301856137b6565b61384660a08301846137e1565b979650505050505050565b600060208201905061386660008301846137b6565b92915050565b6000602082840312156138825761388161358b565b5b600061389084828501613754565b91505092915050565b6138a2816135b0565b82525050565b60006020820190506138bd6000830184613899565b92915050565b6000819050919050565b60006138e86138e36138de84613590565b6138c3565b613590565b9050919050565b60006138fa826138cd565b9050919050565b600061390c826138ef565b9050919050565b61391c81613901565b82525050565b60006020820190506139376000830184613913565b92915050565b613946816137a9565b811461395157600080fd5b50565b6000813590506139638161393d565b92915050565b6000806000806000806000806000806101408b8d03121561398d5761398c61358b565b5b600061399b8d828e01613954565b9a505060206139ac8d828e01613954565b99505060406139bd8d828e01613954565b98505060606139ce8d828e01613954565b97505060806139df8d828e01613954565b96505060a06139f08d828e01613954565b95505060c0613a018d828e01613954565b94505060e0613a128d828e01613954565b935050610100613a248d828e01613954565b925050610120613a368d828e01613954565b9150509295989b9194979a5092959850565b600080600060608486031215613a6157613a6061358b565b5b6000613a6f868287016135d9565b9350506020613a80868287016135d9565b9250506040613a91868287016135d9565b9150509250925092565b60008060408385031215613ab257613ab161358b565b5b6000613ac0858286016135d9565b9250506020613ad1858286016135d9565b9150509250929050565b60008060408385031215613af257613af161358b565b5b6000613b0085828601613754565b9250506020613b1185828601613605565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b6257607f821691505b602082108103613b7557613b74613b1b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bb5826134a5565b9150613bc0836134a5565b9250828202613bce816134a5565b91508282048414831517613be557613be4613b7b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c26826134a5565b9150613c31836134a5565b925082613c4157613c40613bec565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613ca8602f836134e4565b9150613cb382613c4c565b604082019050919050565b60006020820190508181036000830152613cd781613c9b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613d14601d836134e4565b9150613d1f82613cde565b602082019050919050565b60006020820190508181036000830152613d4381613d07565b9050919050565b6000613d55826134a5565b9150613d60836134a5565b9250828203905081811115613d7857613d77613b7b565b5b92915050565b600081905092915050565b50565b6000613d99600083613d7e565b9150613da482613d89565b600082019050919050565b6000613dba82613d8c565b9150819050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613e206039836134e4565b9150613e2b82613dc4565b604082019050919050565b60006020820190508181036000830152613e4f81613e13565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613eb26024836134e4565b9150613ebd82613e56565b604082019050919050565b60006020820190508181036000830152613ee181613ea5565b9050919050565b6000613ef3826137a9565b9150613efe836137a9565b9250828201905060ff811115613f1757613f16613b7b565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f796026836134e4565b9150613f8482613f1d565b604082019050919050565b60006020820190508181036000830152613fa881613f6c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fe56020836134e4565b9150613ff082613faf565b602082019050919050565b6000602082019050818103600083015261401481613fd8565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614051600b836134e4565b915061405c8261401b565b602082019050919050565b6000602082019050818103600083015261408081614044565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006140bd6016836134e4565b91506140c882614087565b602082019050919050565b600060208201905081810360008301526140ec816140b0565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061414f6028836134e4565b915061415a826140f3565b604082019050919050565b6000602082019050818103600083015261417e81614142565b9050919050565b6000614190826134a5565b915061419b836134a5565b92508282019050808211156141b3576141b2613b7b565b5b92915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006141ef6013836134e4565b91506141fa826141b9565b602082019050919050565b6000602082019050818103600083015261421e816141e2565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260208201527f6c6f636b7320616c6c6f7765642e000000000000000000000000000000000000604082015250565b60006142a7604e836134e4565b91506142b282614225565b606082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b60006143136014836134e4565b915061431e826142dd565b602082019050919050565b6000602082019050818103600083015261434281614306565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143b6816135c2565b92915050565b6000602082840312156143d2576143d161358b565b5b60006143e0848285016143a7565b91505092915050565b6000819050919050565b600061440e614409614404846143e9565b6138c3565b6134a5565b9050919050565b61441e816143f3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614459816135b0565b82525050565b600061446b8383614450565b60208301905092915050565b6000602082019050919050565b600061448f82614424565b614499818561442f565b93506144a483614440565b8060005b838110156144d55781516144bc888261445f565b97506144c783614477565b9250506001810190506144a8565b5085935050505092915050565b600060a0820190506144f760008301886134af565b6145046020830187614415565b81810360408301526145168186614484565b90506145256060830185613899565b61453260808301846134af565b9695505050505050565b6000614547826137c5565b9150614552836137c5565b925082820390506fffffffffffffffffffffffffffffffff81111561457a57614579613b7b565b5b92915050565b600060408201905061459560008301856134af565b6145a260208301846134af565b939250505056fea26469706673582212206c67a746744366e2fc6119788ef3eee1b574c3df6f44c7a4c9561b2d680065a964736f6c63430008130033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.