More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 86 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20306883 | 48 days ago | IN | 0 ETH | 0.00016642 | ||||
Approve | 20306286 | 48 days ago | IN | 0 ETH | 0.00020662 | ||||
Approve | 20306225 | 48 days ago | IN | 0 ETH | 0.00022219 | ||||
Approve | 20306198 | 48 days ago | IN | 0 ETH | 0.00015433 | ||||
Approve | 20306186 | 48 days ago | IN | 0 ETH | 0.00024387 | ||||
Approve | 20306182 | 48 days ago | IN | 0 ETH | 0.00026794 | ||||
Approve | 20306153 | 48 days ago | IN | 0 ETH | 0.00045386 | ||||
Approve | 20306143 | 48 days ago | IN | 0 ETH | 0.00048022 | ||||
Approve | 20306141 | 48 days ago | IN | 0 ETH | 0.00025597 | ||||
Transfer | 20306135 | 48 days ago | IN | 0 ETH | 0.00035556 | ||||
Approve | 20306134 | 48 days ago | IN | 0 ETH | 0.00031921 | ||||
Transfer | 20306133 | 48 days ago | IN | 0 ETH | 0.0003659 | ||||
Transfer | 20306132 | 48 days ago | IN | 0 ETH | 0.00035383 | ||||
Transfer | 20306130 | 48 days ago | IN | 0 ETH | 0.00032947 | ||||
Transfer | 20306130 | 48 days ago | IN | 0 ETH | 0.00032947 | ||||
Approve | 20306126 | 48 days ago | IN | 0 ETH | 0.00046863 | ||||
Approve | 20306117 | 48 days ago | IN | 0 ETH | 0.00036266 | ||||
Approve | 20306115 | 48 days ago | IN | 0 ETH | 0.00028326 | ||||
Approve | 20306100 | 48 days ago | IN | 0 ETH | 0.00044529 | ||||
Approve | 20306100 | 48 days ago | IN | 0 ETH | 0.00044529 | ||||
Approve | 20306100 | 48 days ago | IN | 0 ETH | 0.00044529 | ||||
Approve | 20306100 | 48 days ago | IN | 0 ETH | 0.00044529 | ||||
Approve | 20306100 | 48 days ago | IN | 0 ETH | 0.00044529 | ||||
Transfer | 20306096 | 48 days ago | IN | 0 ETH | 0.00026716 | ||||
Transfer | 20306095 | 48 days ago | IN | 0 ETH | 0.00026716 |
Latest 17 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
20306076 | 48 days ago | 0.00163801 ETH | ||||
20306076 | 48 days ago | 0.00163801 ETH | ||||
20306056 | 48 days ago | 0.01627001 ETH | ||||
20306056 | 48 days ago | 0.01627001 ETH | ||||
20306056 | 48 days ago | 0.01758902 ETH | ||||
20306056 | 48 days ago | 0.01758902 ETH | ||||
20306055 | 48 days ago | 0.01775656 ETH | ||||
20306055 | 48 days ago | 0.01775656 ETH | ||||
20306053 | 48 days ago | 0.02046966 ETH | ||||
20306053 | 48 days ago | 0.02046966 ETH | ||||
20306046 | 48 days ago | 0.02067184 ETH | ||||
20306046 | 48 days ago | 0.02067184 ETH | ||||
20306046 | 48 days ago | 0.02201721 ETH | ||||
20306046 | 48 days ago | 0.02201721 ETH | ||||
20306046 | 48 days ago | 0.02349842 ETH | ||||
20306046 | 48 days ago | 0.02349842 ETH | ||||
20306009 | 48 days ago | 1 ETH |
Loading...
Loading
Contract Name:
EAR
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-14 */ pragma solidity 0.8.19; // SPDX-License-Identifier: MIT /* website : https://donaldtrumpwifear.live twitter : https://x.com/donaldtrump_ear telegram : https://t.me/donaldtrumpwifear */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer( address recipient, uint256 amount ) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance( address owner, address spender ) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _transferStandard( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { 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); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } 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 returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external 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 Address { function isContract(address account) internal view returns (bool) { return account.code.length > 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 functionCallWithValue( target, data, 0, "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); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data ) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data ) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. * * _Available since v4.8._ */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } /** * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason or using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert( bytes memory returndata, string memory errorMessage ) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } library SafeERC20 { using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transfer.selector, to, value) ); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value) ); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall( data, "SafeERC20: low-level call failed" ); if (returndata.length > 0) { require( abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed" ); } } function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, value) ); } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapETHForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function getAmountsOut( uint amountIn, address[] calldata path ) external view returns (uint[] memory amounts); } interface IDexFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } contract EAR is ERC20, Ownable { mapping(address => bool) public exemptFromFees; mapping(address => bool) public exemptFromLimits; bool public tradingActive; mapping(address => bool) public isAMMPair; uint256 public maxTransaction; uint256 public maxWallet; uint256 public maxTax; address public taxReceiverAddress; uint256 public buyTotalTax = 0; uint256 public sellTotalTax = 0; uint256 private reduceAt = 10; uint256 private initialTax = 4200; uint256 private buyCount = 0; bool public limitsInEffect = true; bool public swapEnabled = false; bool private swapping; address public lpPair; IDexRouter public dexRouter; uint256 public constant FEE_DIVISOR = 10000; // events event UpdatedMaxTransaction(uint256 newMax); event UpdatedMaxWallet(uint256 newMax); event SetExemptFromFees(address _address, bool _isExempt); event SetExemptFromLimits(address _address, bool _isExempt); event RemovedLimits(); event UpdatedBuyTax(uint256 newAmt); event UpdatedSellTax(uint256 newAmt); // constructor constructor(address payable _wallet) ERC20("Donald Trump Wif Ear", "EAR") { address newOwner = msg.sender; _mint(newOwner, 100_000_000 * (10 ** decimals())); address _v2Router; // @dev assumes WETH pair if (block.chainid == 1) { _v2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; } else if (block.chainid == 5) { _v2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; } else if (block.chainid == 97) { _v2Router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; } else if (block.chainid == 42161) { _v2Router = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506; } else if (block.chainid == 8453) { _v2Router = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24; } else { revert("Chain not configured"); } dexRouter = IDexRouter(_v2Router); maxTransaction = (totalSupply() * 20) / 1000; maxWallet = (totalSupply() * 20) / 1000; maxTax = (totalSupply() * 10) / 1000; taxReceiverAddress = _wallet; exemptFromLimits[msg.sender] = true; exemptFromLimits[address(this)] = true; exemptFromLimits[taxReceiverAddress] = true; exemptFromFees[msg.sender] = true; exemptFromFees[address(this)] = true; exemptFromFees[taxReceiverAddress] = true; } function _transfer( address from, address to, uint256 amount ) internal virtual override { checkLimits(from, to, amount); if (!swapEnabled || swapping) return; amount -= handleEarTax(from, to, amount); super._transfer(from, to, amount); } function checkLimits(address from, address to, uint256 amount) internal { if (!tradingActive) { require( exemptFromFees[from] || exemptFromFees[to], "Trading is not active." ); } if (!swapEnabled || swapping) { super._transfer(from, to, amount); return; } if (limitsInEffect) { // buy if (isAMMPair[from] && !exemptFromLimits[to]) { require( amount <= maxTransaction, "Buy transfer amount exceeded." ); require( amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet" ); buyCount++; } // sell else if (isAMMPair[to] && !exemptFromLimits[from]) { require( amount <= maxTransaction, "Sell transfer amount exceeds the maxTransactionAmt." ); } else if (!exemptFromLimits[to]) { require( amount + balanceOf(to) <= maxWallet, "Unable to exceed Max Wallet" ); } } } function handleEarTax( address from, address to, uint256 amount ) internal returns (uint256) { if ( swapEnabled && !swapping && isAMMPair[to] && !exemptFromFees[from] ) { swapping = true; swapBack(amount); swapping = false; } bool takeFee = true; if (exemptFromFees[from]) { takeFee = false; } uint256 tax = amount; // on sell if (takeFee) { tax = 0; if (isAMMPair[to]) { tax = (amount * (buyCount > reduceAt ? sellTotalTax : initialTax)) / FEE_DIVISOR; } // on buy else if (isAMMPair[from]) { tax = (amount * (buyCount > reduceAt ? buyTotalTax : initialTax)) / FEE_DIVISOR; } if (tax > 0) { super._transfer(from, address(this), tax); } return tax; } else { super._transferStandard(from, address(this), tax); return 0; } } function swapTokensForETH(uint256 tokenAmt) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = address(dexRouter.WETH()); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmt, 0, path, address(this), block.timestamp ); } function swapBack(uint256 tokens) private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap; if (contractBalance > 0 && contractBalance < maxTax) { tokensToSwap = contractBalance; } else { if (tokens > maxTax) { tokensToSwap = maxTax; } else { tokensToSwap = tokens; } } if (contractBalance > 0) swapTokensForETH(tokensToSwap); uint256 contractETHBalance = address(this).balance; sendETH(contractETHBalance); } function sendETH(uint256 amount) private { payable(taxReceiverAddress).transfer(amount); } // owner functions function setExemptFromFees( address _address, bool _isExempt ) external onlyOwner { require(_address != address(0), "Zero Address"); exemptFromFees[_address] = _isExempt; emit SetExemptFromFees(_address, _isExempt); } function setExemptFromLimits( address _address, bool _isExempt ) external onlyOwner { require(_address != address(0), "Zero Address"); if (!_isExempt) { require(_address != lpPair, "Cannot remove pair"); } exemptFromLimits[_address] = _isExempt; emit SetExemptFromLimits(_address, _isExempt); } function updateMaxTransaction(uint256 newNumInTokens) external onlyOwner { require( newNumInTokens >= ((totalSupply() * 5) / 1000) / (10 ** decimals()), "Too low" ); maxTransaction = newNumInTokens * (10 ** decimals()); emit UpdatedMaxTransaction(maxTransaction); } function updateMaxWallet(uint256 newNumInTokens) external onlyOwner { require( newNumInTokens >= ((totalSupply() * 15) / 1000) / (10 ** decimals()), "Too low" ); maxWallet = newNumInTokens * (10 ** decimals()); emit UpdatedMaxWallet(maxWallet); } function updateBuyTax(uint256 _taxWithTwoDecimals) external onlyOwner { buyTotalTax = _taxWithTwoDecimals; require(buyTotalTax <= 1200, "Keep tax below 12%"); emit UpdatedBuyTax(buyTotalTax); } function updateSellTax(uint256 _taxWithTwoDecimals) external onlyOwner { sellTotalTax = _taxWithTwoDecimals; require(sellTotalTax <= 1200, "Keep tax below 12%"); emit UpdatedSellTax(sellTotalTax); } function createLP() external onlyOwner { require(!tradingActive, "trading is already open"); lpPair = IDexFactory(dexRouter.factory()).createPair( address(this), dexRouter.WETH() ); isAMMPair[lpPair] = true; exemptFromLimits[lpPair] = true; _approve(address(this), address(dexRouter), type(uint256).max); _approve(address(msg.sender), address(dexRouter), totalSupply()); dexRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20(lpPair).approve(address(dexRouter), type(uint).max); } function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } function removeLimits() external onlyOwner { limitsInEffect = false; maxTransaction = totalSupply(); maxWallet = totalSupply(); emit RemovedLimits(); } function rescueStuckEth() external { require(msg.sender == owner()); require(address(this).balance > 0, "Token: no ETH to clear"); payable(msg.sender).transfer(address(this).balance); } function rescueTokens(address _token, address _to) external onlyOwner { require(_token != address(0), "_token address cannot be 0"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); SafeERC20.safeTransfer(IERC20(_token), _to, _contractBalance); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"_wallet","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromLimits","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedMaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedSellTax","type":"event"},{"inputs":[],"name":"FEE_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"buyTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAMMPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setExemptFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setExemptFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxReceiverAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxWithTwoDecimals","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNumInTokens","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNumInTokens","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxWithTwoDecimals","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600e819055600f819055600a6010556110686011556012556013805461ffff191660011790553480156200003957600080fd5b5060405162002fd438038062002fd48339810160408190526200005c9162000461565b6040518060400160405280601481526020017f446f6e616c64205472756d7020576966204561720000000000000000000000008152506040518060400160405280600381526020016222a0a960e91b8152508160039081620000bf919062000537565b506004620000ce828262000537565b5050506000620000e36200039560201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350336200015b81620001456012600a62000718565b62000155906305f5e10062000729565b62000399565b600046600103620001825750737a250d5630b4cf539739df2c5dacb4c659f2488d62000265565b46600503620001a75750737a250d5630b4cf539739df2c5dacb4c659f2488d62000265565b46606103620001cc575073d99d1c33f9fc3444f8101754abc46c52416550d162000265565b4661a4b103620001f25750731b02da8cb0d097eb8d57a175b88c7d8b4799750662000265565b4661210503620002185750734752ba5dbc23f44d87826276bf6fd6b1c372ad2462000265565b60405162461bcd60e51b815260206004820152601460248201527f436861696e206e6f7420636f6e6669677572656400000000000000000000000060448201526064015b60405180910390fd5b601480546001600160a01b0319166001600160a01b0383161790556103e86200028d60025490565b6200029a90601462000729565b620002a6919062000743565b600a556103e8620002b660025490565b620002c390601462000729565b620002cf919062000743565b600b556103e8620002df60025490565b620002ec90600a62000729565b620002f8919062000743565b600c555050600d80546001600160a01b0319166001600160a01b03928316178155336000818152600760209081526040808320805460ff1990811660019081179092553080865283862080548316841790558754891686528386208054831684179055958552600690935281842080548416821790559383528083208054831685179055935490941681529190912080549092161790556200077c565b3390565b6001600160a01b038216620003f15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200025c565b806002600082825462000405919062000766565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b6000602082840312156200047457600080fd5b81516001600160a01b03811681146200048c57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004be57607f821691505b602082108103620004df57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200045c57600081815260208120601f850160051c810160208610156200050e5750805b601f850160051c820191505b818110156200052f578281556001016200051a565b505050505050565b81516001600160401b0381111562000553576200055362000493565b6200056b81620005648454620004a9565b84620004e5565b602080601f831160018114620005a357600084156200058a5750858301515b600019600386901b1c1916600185901b1785556200052f565b600085815260208120601f198616915b82811015620005d457888601518255948401946001909101908401620005b3565b5085821015620005f35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200065a5781600019048211156200063e576200063e62000603565b808516156200064c57918102915b93841c93908002906200061e565b509250929050565b600082620006735750600162000712565b81620006825750600062000712565b81600181146200069b5760028114620006a657620006c6565b600191505062000712565b60ff841115620006ba57620006ba62000603565b50506001821b62000712565b5060208310610133831016604e8410600b8410161715620006eb575081810a62000712565b620006f7838362000619565b80600019048211156200070e576200070e62000603565b0290505b92915050565b60006200048c60ff84168362000662565b808202811582820484141762000712576200071262000603565b6000826200076157634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000712576200071262000603565b612848806200078c6000396000f3fe60806040526004361061023f5760003560e01c806370a082311161012e578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e146106ba578063e27a55fe146106da578063f2fde38b146106f0578063f7f23a0c14610710578063f8b45b051461072557600080fd5b8063a457c2d71461061a578063a9059cbb1461063a578063b0249cc61461065a578063bbc0c7421461068a578063c3f70b52146106a457600080fd5b80638d3e6e40116100f25780638d3e6e40146105815780638da5cb5b146105b157806395d89b41146105cf5780639e93ad8e146105e4578063a13d1a2b146105fa57600080fd5b806370a08231146104ec578063715018a614610522578063751039fc1461053757806377b27d1f1461054c5780638a8c523c1461056c57600080fd5b806339509351116101bc5780635431c94e116101805780635431c94e146104515780635a90a49e146104715780635df6e68e146104a15780636d8813c5146104b75780636ddd1713146104cd57600080fd5b806339509351146103bb5780633b611e00146103db578063436d3340146103f0578063452ed4f1146104105780634a62bb651461043757600080fd5b806312185a391161020357806312185a391461032057806318160ddd146103405780631c499ab01461035f57806323b872dd1461037f578063313ce5671461039f57600080fd5b80630517d13d1461024b57806306fdde031461026d5780630758d92414610298578063095ea7b3146102d0578063114ca2ed1461030057600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026b6102663660046122f2565b61073b565b005b34801561027957600080fd5b50610282610830565b60405161028f919061232f565b60405180910390f35b3480156102a457600080fd5b506014546102b8906001600160a01b031681565b6040516001600160a01b03909116815260200161028f565b3480156102dc57600080fd5b506102f06102eb366004612377565b6108c2565b604051901515815260200161028f565b34801561030c57600080fd5b50600d546102b8906001600160a01b031681565b34801561032c57600080fd5b5061026b61033b3660046122f2565b6108dc565b34801561034c57600080fd5b506002545b60405190815260200161028f565b34801561036b57600080fd5b5061026b61037a3660046122f2565b610985565b34801561038b57600080fd5b506102f061039a3660046123a3565b610a6a565b3480156103ab57600080fd5b506040516012815260200161028f565b3480156103c757600080fd5b506102f06103d6366004612377565b610a90565b3480156103e757600080fd5b5061026b610ab2565b3480156103fc57600080fd5b5061026b61040b3660046122f2565b610b41565b34801561041c57600080fd5b506013546102b890630100000090046001600160a01b031681565b34801561044357600080fd5b506013546102f09060ff1681565b34801561045d57600080fd5b5061026b61046c3660046123e4565b610bea565b34801561047d57600080fd5b506102f061048c36600461241d565b60066020526000908152604090205460ff1681565b3480156104ad57600080fd5b50610351600e5481565b3480156104c357600080fd5b50610351600c5481565b3480156104d957600080fd5b506013546102f090610100900460ff1681565b3480156104f857600080fd5b5061035161050736600461241d565b6001600160a01b031660009081526020819052604090205490565b34801561052e57600080fd5b5061026b610ce7565b34801561054357600080fd5b5061026b610d5b565b34801561055857600080fd5b5061026b610567366004612448565b610dc6565b34801561057857600080fd5b5061026b610e99565b34801561058d57600080fd5b506102f061059c36600461241d565b60076020526000908152604090205460ff1681565b3480156105bd57600080fd5b506005546001600160a01b03166102b8565b3480156105db57600080fd5b50610282610ee1565b3480156105f057600080fd5b5061035161271081565b34801561060657600080fd5b5061026b610615366004612448565b610ef0565b34801561062657600080fd5b506102f0610635366004612377565b61101a565b34801561064657600080fd5b506102f0610655366004612377565b6110a0565b34801561066657600080fd5b506102f061067536600461241d565b60096020526000908152604090205460ff1681565b34801561069657600080fd5b506008546102f09060ff1681565b3480156106b057600080fd5b50610351600a5481565b3480156106c657600080fd5b506103516106d53660046123e4565b6110ae565b3480156106e657600080fd5b50610351600f5481565b3480156106fc57600080fd5b5061026b61070b36600461241d565b6110d9565b34801561071c57600080fd5b5061026b6111c4565b34801561073157600080fd5b50610351600b5481565b6005546001600160a01b0316331461076e5760405162461bcd60e51b815260040161076590612476565b60405180910390fd5b61077a6012600a6125a5565b6103e861078660025490565b6107919060056125b4565b61079b91906125cb565b6107a591906125cb565b8110156107de5760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610765565b6107ea6012600a6125a5565b6107f490826125b4565b600a8190556040519081527f76a9278644b7300961aa0e7e86f10934585987f1daf1c6ecc971c18376691574906020015b60405180910390a150565b60606003805461083f906125ed565b80601f016020809104026020016040519081016040528092919081815260200182805461086b906125ed565b80156108b85780601f1061088d576101008083540402835291602001916108b8565b820191906000526020600020905b81548152906001019060200180831161089b57829003601f168201915b5050505050905090565b6000336108d081858561159d565b60019150505b92915050565b6005546001600160a01b031633146109065760405162461bcd60e51b815260040161076590612476565b600f8190556104b08111156109525760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772031322560701b6044820152606401610765565b7fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c97600f5460405161082591815260200190565b6005546001600160a01b031633146109af5760405162461bcd60e51b815260040161076590612476565b6109bb6012600a6125a5565b6103e86109c760025490565b6109d290600f6125b4565b6109dc91906125cb565b6109e691906125cb565b811015610a1f5760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610765565b610a2b6012600a6125a5565b610a3590826125b4565b600b8190556040519081527f3046ad62de8b70d396246aaed19ff2559ff20df8706520cbde58320766c4276290602001610825565b600033610a788582856116c1565b610a8385858561173b565b60019150505b9392505050565b6000336108d0818585610aa383836110ae565b610aad9190612627565b61159d565b6005546001600160a01b03163314610ac957600080fd5b60004711610b125760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b6044820152606401610765565b60405133904780156108fc02916000818181858888f19350505050158015610b3e573d6000803e3d6000fd5b50565b6005546001600160a01b03163314610b6b5760405162461bcd60e51b815260040161076590612476565b600e8190556104b0811115610bb75760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772031322560701b6044820152606401610765565b7f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece0508600e5460405161082591815260200190565b6005546001600160a01b03163314610c145760405162461bcd60e51b815260040161076590612476565b6001600160a01b038216610c6a5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610765565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd5919061263a565b9050610ce2838383611791565b505050565b6005546001600160a01b03163314610d115760405162461bcd60e51b815260040161076590612476565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610d855760405162461bcd60e51b815260040161076590612476565b6013805460ff19169055600254600a55600254600b556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b03163314610df05760405162461bcd60e51b815260040161076590612476565b6001600160a01b038216610e355760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610765565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d91015b60405180910390a15050565b6005546001600160a01b03163314610ec35760405162461bcd60e51b815260040161076590612476565b6008805460ff191660011790556013805461ff001916610100179055565b60606004805461083f906125ed565b6005546001600160a01b03163314610f1a5760405162461bcd60e51b815260040161076590612476565b6001600160a01b038216610f5f5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610765565b80610fbe576013546001600160a01b036301000000909104811690831603610fbe5760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb32903830b4b960711b6044820152606401610765565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce9101610e8d565b6000338161102882866110ae565b9050838110156110885760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610765565b611095828686840361159d565b506001949350505050565b6000336108d081858561173b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146111035760405162461bcd60e51b815260040161076590612476565b6001600160a01b0381166111685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610765565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111ee5760405162461bcd60e51b815260040161076590612476565b60085460ff16156112415760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610765565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b89190612653565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e9190612653565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113af9190612653565b601380546301000000600160b81b03191663010000006001600160a01b0393841681029190911780835581900483166000908152600960209081526040808320805460ff1990811660019081179092559554949094048616835260079091529020805490921617905560145461142a9130911660001961159d565b6014546114459033906001600160a01b0316610aad60025490565b6014546001600160a01b031663f305d7194730611477816001600160a01b031660009081526020819052604090205490565b60008061148c6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156114f4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115199190612670565b505060135460145460405163095ea7b360e01b81526001600160a01b0391821660048201526000196024820152630100000090920416915063095ea7b3906044016020604051808303816000875af1158015611579573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e919061269e565b6001600160a01b0383166115ff5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610765565b6001600160a01b0382166116605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610765565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006116cd84846110ae565b9050600019811461173557818110156117285760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610765565b611735848484840361159d565b50505050565b6117468383836117e3565b601354610100900460ff161580611765575060135462010000900460ff165b1561176f57505050565b61177a838383611b19565b61178490826126bb565b9050610ce2838383611cb9565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ce2908490611de4565b60085460ff16611871576001600160a01b03831660009081526006602052604090205460ff168061182c57506001600160a01b03821660009081526006602052604090205460ff165b6118715760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610765565b601354610100900460ff161580611890575060135462010000900460ff165b156118a057610ce2838383611cb9565b60135460ff1615610ce2576001600160a01b03831660009081526009602052604090205460ff1680156118ec57506001600160a01b03821660009081526007602052604090205460ff16155b156119d157600a548111156119435760405162461bcd60e51b815260206004820152601d60248201527f427579207472616e7366657220616d6f756e742065786365656465642e0000006044820152606401610765565b600b546001600160a01b0383166000908152602081905260409020546119699083612627565b11156119b75760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610765565b601280549060006119c7836126ce565b9190505550505050565b6001600160a01b03821660009081526009602052604090205460ff168015611a1257506001600160a01b03831660009081526007602052604090205460ff16155b15611a8557600a54811115610ce25760405162461bcd60e51b815260206004820152603360248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152721036b0bc2a3930b739b0b1ba34b7b720b6ba1760691b6064820152608401610765565b6001600160a01b03821660009081526007602052604090205460ff16610ce257600b546001600160a01b038316600090815260208190526040902054611acb9083612627565b1115610ce25760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610765565b601354600090610100900460ff168015611b3c575060135462010000900460ff16155b8015611b6057506001600160a01b03831660009081526009602052604090205460ff165b8015611b8557506001600160a01b03841660009081526006602052604090205460ff16155b15611bb1576013805462ff0000191662010000179055611ba482611eb6565b6013805462ff0000191690555b6001600160a01b03841660009081526006602052604090205460019060ff1615611bd9575060005b828115611ca357506001600160a01b03841660009081526009602052604081205460ff1615611c375761271060105460125411611c1857601154611c1c565b600f545b611c2690866125b4565b611c3091906125cb565b9050611c89565b6001600160a01b03861660009081526009602052604090205460ff1615611c895761271060105460125411611c6e57601154611c72565b600e545b611c7c90866125b4565b611c8691906125cb565b90505b8015611c9a57611c9a863083611cb9565b9150610a899050565b611cae863083611f12565b600092505050610a89565b6001600160a01b038316611cdf5760405162461bcd60e51b8152600401610765906126e7565b6001600160a01b038216611d055760405162461bcd60e51b81526004016107659061272c565b6001600160a01b03831660009081526020819052604090205481811015611d7d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610765565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3611735565b6000611e39826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611fe39092919063ffffffff16565b805190915015610ce25780806020019051810190611e57919061269e565b610ce25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610765565b30600090815260208190526040812054908115801590611ed75750600c5482105b15611ee3575080611ef9565b600c54831115611ef65750600c54611ef9565b50815b8115611f0857611f0881611ffa565b476117358161213b565b6001600160a01b038316611f385760405162461bcd60e51b8152600401610765906126e7565b6001600160a01b038216611f5e5760405162461bcd60e51b81526004016107659061272c565b6001600160a01b038084166000908152602081905260408082208054858103909155928516825281208054849290611f97908490612627565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dd791815260200190565b6060611ff28484600085612179565b949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061202f5761202f61276f565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ac9190612653565b816001815181106120bf576120bf61276f565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790612105908590600090869030904290600401612785565b600060405180830381600087803b15801561211f57600080fd5b505af1158015612133573d6000803e3d6000fd5b505050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612175573d6000803e3d6000fd5b5050565b6060824710156121da5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610765565b600080866001600160a01b031685876040516121f691906127f6565b60006040518083038185875af1925050503d8060008114612233576040519150601f19603f3d011682016040523d82523d6000602084013e612238565b606091505b509150915061224987838387612254565b979650505050505050565b606083156122c35782516000036122bc576001600160a01b0385163b6122bc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610765565b5081611ff2565b611ff283838151156122d85781518083602001fd5b8060405162461bcd60e51b8152600401610765919061232f565b60006020828403121561230457600080fd5b5035919050565b60005b8381101561232657818101518382015260200161230e565b50506000910152565b602081526000825180602084015261234e81604085016020870161230b565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610b3e57600080fd5b6000806040838503121561238a57600080fd5b823561239581612362565b946020939093013593505050565b6000806000606084860312156123b857600080fd5b83356123c381612362565b925060208401356123d381612362565b929592945050506040919091013590565b600080604083850312156123f757600080fd5b823561240281612362565b9150602083013561241281612362565b809150509250929050565b60006020828403121561242f57600080fd5b8135610a8981612362565b8015158114610b3e57600080fd5b6000806040838503121561245b57600080fd5b823561246681612362565b915060208301356124128161243a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156124fc5781600019048211156124e2576124e26124ab565b808516156124ef57918102915b93841c93908002906124c6565b509250929050565b600082612513575060016108d6565b81612520575060006108d6565b816001811461253657600281146125405761255c565b60019150506108d6565b60ff841115612551576125516124ab565b50506001821b6108d6565b5060208310610133831016604e8410600b841016171561257f575081810a6108d6565b61258983836124c1565b806000190482111561259d5761259d6124ab565b029392505050565b6000610a8960ff841683612504565b80820281158282048414176108d6576108d66124ab565b6000826125e857634e487b7160e01b600052601260045260246000fd5b500490565b600181811c9082168061260157607f821691505b60208210810361262157634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156108d6576108d66124ab565b60006020828403121561264c57600080fd5b5051919050565b60006020828403121561266557600080fd5b8151610a8981612362565b60008060006060848603121561268557600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156126b057600080fd5b8151610a898161243a565b818103818111156108d6576108d66124ab565b6000600182016126e0576126e06124ab565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127d55784516001600160a01b0316835293830193918301916001016127b0565b50506001600160a01b03969096166060850152505050608001529392505050565b6000825161280881846020870161230b565b919091019291505056fea2646970667358221220cac5ab2b6727c730cff56df930f6ff0db84dc8e36b9ea1720849b8d7b57a404364736f6c63430008130033000000000000000000000000867c0be12938f94dcb15a6d29e4cbd6ce4edd831
Deployed Bytecode
0x60806040526004361061023f5760003560e01c806370a082311161012e578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e146106ba578063e27a55fe146106da578063f2fde38b146106f0578063f7f23a0c14610710578063f8b45b051461072557600080fd5b8063a457c2d71461061a578063a9059cbb1461063a578063b0249cc61461065a578063bbc0c7421461068a578063c3f70b52146106a457600080fd5b80638d3e6e40116100f25780638d3e6e40146105815780638da5cb5b146105b157806395d89b41146105cf5780639e93ad8e146105e4578063a13d1a2b146105fa57600080fd5b806370a08231146104ec578063715018a614610522578063751039fc1461053757806377b27d1f1461054c5780638a8c523c1461056c57600080fd5b806339509351116101bc5780635431c94e116101805780635431c94e146104515780635a90a49e146104715780635df6e68e146104a15780636d8813c5146104b75780636ddd1713146104cd57600080fd5b806339509351146103bb5780633b611e00146103db578063436d3340146103f0578063452ed4f1146104105780634a62bb651461043757600080fd5b806312185a391161020357806312185a391461032057806318160ddd146103405780631c499ab01461035f57806323b872dd1461037f578063313ce5671461039f57600080fd5b80630517d13d1461024b57806306fdde031461026d5780630758d92414610298578063095ea7b3146102d0578063114ca2ed1461030057600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026b6102663660046122f2565b61073b565b005b34801561027957600080fd5b50610282610830565b60405161028f919061232f565b60405180910390f35b3480156102a457600080fd5b506014546102b8906001600160a01b031681565b6040516001600160a01b03909116815260200161028f565b3480156102dc57600080fd5b506102f06102eb366004612377565b6108c2565b604051901515815260200161028f565b34801561030c57600080fd5b50600d546102b8906001600160a01b031681565b34801561032c57600080fd5b5061026b61033b3660046122f2565b6108dc565b34801561034c57600080fd5b506002545b60405190815260200161028f565b34801561036b57600080fd5b5061026b61037a3660046122f2565b610985565b34801561038b57600080fd5b506102f061039a3660046123a3565b610a6a565b3480156103ab57600080fd5b506040516012815260200161028f565b3480156103c757600080fd5b506102f06103d6366004612377565b610a90565b3480156103e757600080fd5b5061026b610ab2565b3480156103fc57600080fd5b5061026b61040b3660046122f2565b610b41565b34801561041c57600080fd5b506013546102b890630100000090046001600160a01b031681565b34801561044357600080fd5b506013546102f09060ff1681565b34801561045d57600080fd5b5061026b61046c3660046123e4565b610bea565b34801561047d57600080fd5b506102f061048c36600461241d565b60066020526000908152604090205460ff1681565b3480156104ad57600080fd5b50610351600e5481565b3480156104c357600080fd5b50610351600c5481565b3480156104d957600080fd5b506013546102f090610100900460ff1681565b3480156104f857600080fd5b5061035161050736600461241d565b6001600160a01b031660009081526020819052604090205490565b34801561052e57600080fd5b5061026b610ce7565b34801561054357600080fd5b5061026b610d5b565b34801561055857600080fd5b5061026b610567366004612448565b610dc6565b34801561057857600080fd5b5061026b610e99565b34801561058d57600080fd5b506102f061059c36600461241d565b60076020526000908152604090205460ff1681565b3480156105bd57600080fd5b506005546001600160a01b03166102b8565b3480156105db57600080fd5b50610282610ee1565b3480156105f057600080fd5b5061035161271081565b34801561060657600080fd5b5061026b610615366004612448565b610ef0565b34801561062657600080fd5b506102f0610635366004612377565b61101a565b34801561064657600080fd5b506102f0610655366004612377565b6110a0565b34801561066657600080fd5b506102f061067536600461241d565b60096020526000908152604090205460ff1681565b34801561069657600080fd5b506008546102f09060ff1681565b3480156106b057600080fd5b50610351600a5481565b3480156106c657600080fd5b506103516106d53660046123e4565b6110ae565b3480156106e657600080fd5b50610351600f5481565b3480156106fc57600080fd5b5061026b61070b36600461241d565b6110d9565b34801561071c57600080fd5b5061026b6111c4565b34801561073157600080fd5b50610351600b5481565b6005546001600160a01b0316331461076e5760405162461bcd60e51b815260040161076590612476565b60405180910390fd5b61077a6012600a6125a5565b6103e861078660025490565b6107919060056125b4565b61079b91906125cb565b6107a591906125cb565b8110156107de5760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610765565b6107ea6012600a6125a5565b6107f490826125b4565b600a8190556040519081527f76a9278644b7300961aa0e7e86f10934585987f1daf1c6ecc971c18376691574906020015b60405180910390a150565b60606003805461083f906125ed565b80601f016020809104026020016040519081016040528092919081815260200182805461086b906125ed565b80156108b85780601f1061088d576101008083540402835291602001916108b8565b820191906000526020600020905b81548152906001019060200180831161089b57829003601f168201915b5050505050905090565b6000336108d081858561159d565b60019150505b92915050565b6005546001600160a01b031633146109065760405162461bcd60e51b815260040161076590612476565b600f8190556104b08111156109525760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772031322560701b6044820152606401610765565b7fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c97600f5460405161082591815260200190565b6005546001600160a01b031633146109af5760405162461bcd60e51b815260040161076590612476565b6109bb6012600a6125a5565b6103e86109c760025490565b6109d290600f6125b4565b6109dc91906125cb565b6109e691906125cb565b811015610a1f5760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610765565b610a2b6012600a6125a5565b610a3590826125b4565b600b8190556040519081527f3046ad62de8b70d396246aaed19ff2559ff20df8706520cbde58320766c4276290602001610825565b600033610a788582856116c1565b610a8385858561173b565b60019150505b9392505050565b6000336108d0818585610aa383836110ae565b610aad9190612627565b61159d565b6005546001600160a01b03163314610ac957600080fd5b60004711610b125760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b6044820152606401610765565b60405133904780156108fc02916000818181858888f19350505050158015610b3e573d6000803e3d6000fd5b50565b6005546001600160a01b03163314610b6b5760405162461bcd60e51b815260040161076590612476565b600e8190556104b0811115610bb75760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772031322560701b6044820152606401610765565b7f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece0508600e5460405161082591815260200190565b6005546001600160a01b03163314610c145760405162461bcd60e51b815260040161076590612476565b6001600160a01b038216610c6a5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610765565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd5919061263a565b9050610ce2838383611791565b505050565b6005546001600160a01b03163314610d115760405162461bcd60e51b815260040161076590612476565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610d855760405162461bcd60e51b815260040161076590612476565b6013805460ff19169055600254600a55600254600b556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b03163314610df05760405162461bcd60e51b815260040161076590612476565b6001600160a01b038216610e355760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610765565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d91015b60405180910390a15050565b6005546001600160a01b03163314610ec35760405162461bcd60e51b815260040161076590612476565b6008805460ff191660011790556013805461ff001916610100179055565b60606004805461083f906125ed565b6005546001600160a01b03163314610f1a5760405162461bcd60e51b815260040161076590612476565b6001600160a01b038216610f5f5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610765565b80610fbe576013546001600160a01b036301000000909104811690831603610fbe5760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb32903830b4b960711b6044820152606401610765565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce9101610e8d565b6000338161102882866110ae565b9050838110156110885760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610765565b611095828686840361159d565b506001949350505050565b6000336108d081858561173b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146111035760405162461bcd60e51b815260040161076590612476565b6001600160a01b0381166111685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610765565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111ee5760405162461bcd60e51b815260040161076590612476565b60085460ff16156112415760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610765565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b89190612653565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e9190612653565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113af9190612653565b601380546301000000600160b81b03191663010000006001600160a01b0393841681029190911780835581900483166000908152600960209081526040808320805460ff1990811660019081179092559554949094048616835260079091529020805490921617905560145461142a9130911660001961159d565b6014546114459033906001600160a01b0316610aad60025490565b6014546001600160a01b031663f305d7194730611477816001600160a01b031660009081526020819052604090205490565b60008061148c6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156114f4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115199190612670565b505060135460145460405163095ea7b360e01b81526001600160a01b0391821660048201526000196024820152630100000090920416915063095ea7b3906044016020604051808303816000875af1158015611579573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e919061269e565b6001600160a01b0383166115ff5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610765565b6001600160a01b0382166116605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610765565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006116cd84846110ae565b9050600019811461173557818110156117285760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610765565b611735848484840361159d565b50505050565b6117468383836117e3565b601354610100900460ff161580611765575060135462010000900460ff165b1561176f57505050565b61177a838383611b19565b61178490826126bb565b9050610ce2838383611cb9565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ce2908490611de4565b60085460ff16611871576001600160a01b03831660009081526006602052604090205460ff168061182c57506001600160a01b03821660009081526006602052604090205460ff165b6118715760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610765565b601354610100900460ff161580611890575060135462010000900460ff165b156118a057610ce2838383611cb9565b60135460ff1615610ce2576001600160a01b03831660009081526009602052604090205460ff1680156118ec57506001600160a01b03821660009081526007602052604090205460ff16155b156119d157600a548111156119435760405162461bcd60e51b815260206004820152601d60248201527f427579207472616e7366657220616d6f756e742065786365656465642e0000006044820152606401610765565b600b546001600160a01b0383166000908152602081905260409020546119699083612627565b11156119b75760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610765565b601280549060006119c7836126ce565b9190505550505050565b6001600160a01b03821660009081526009602052604090205460ff168015611a1257506001600160a01b03831660009081526007602052604090205460ff16155b15611a8557600a54811115610ce25760405162461bcd60e51b815260206004820152603360248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152721036b0bc2a3930b739b0b1ba34b7b720b6ba1760691b6064820152608401610765565b6001600160a01b03821660009081526007602052604090205460ff16610ce257600b546001600160a01b038316600090815260208190526040902054611acb9083612627565b1115610ce25760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610765565b601354600090610100900460ff168015611b3c575060135462010000900460ff16155b8015611b6057506001600160a01b03831660009081526009602052604090205460ff165b8015611b8557506001600160a01b03841660009081526006602052604090205460ff16155b15611bb1576013805462ff0000191662010000179055611ba482611eb6565b6013805462ff0000191690555b6001600160a01b03841660009081526006602052604090205460019060ff1615611bd9575060005b828115611ca357506001600160a01b03841660009081526009602052604081205460ff1615611c375761271060105460125411611c1857601154611c1c565b600f545b611c2690866125b4565b611c3091906125cb565b9050611c89565b6001600160a01b03861660009081526009602052604090205460ff1615611c895761271060105460125411611c6e57601154611c72565b600e545b611c7c90866125b4565b611c8691906125cb565b90505b8015611c9a57611c9a863083611cb9565b9150610a899050565b611cae863083611f12565b600092505050610a89565b6001600160a01b038316611cdf5760405162461bcd60e51b8152600401610765906126e7565b6001600160a01b038216611d055760405162461bcd60e51b81526004016107659061272c565b6001600160a01b03831660009081526020819052604090205481811015611d7d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610765565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a3611735565b6000611e39826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611fe39092919063ffffffff16565b805190915015610ce25780806020019051810190611e57919061269e565b610ce25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610765565b30600090815260208190526040812054908115801590611ed75750600c5482105b15611ee3575080611ef9565b600c54831115611ef65750600c54611ef9565b50815b8115611f0857611f0881611ffa565b476117358161213b565b6001600160a01b038316611f385760405162461bcd60e51b8152600401610765906126e7565b6001600160a01b038216611f5e5760405162461bcd60e51b81526004016107659061272c565b6001600160a01b038084166000908152602081905260408082208054858103909155928516825281208054849290611f97908490612627565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dd791815260200190565b6060611ff28484600085612179565b949350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061202f5761202f61276f565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ac9190612653565b816001815181106120bf576120bf61276f565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790612105908590600090869030904290600401612785565b600060405180830381600087803b15801561211f57600080fd5b505af1158015612133573d6000803e3d6000fd5b505050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612175573d6000803e3d6000fd5b5050565b6060824710156121da5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610765565b600080866001600160a01b031685876040516121f691906127f6565b60006040518083038185875af1925050503d8060008114612233576040519150601f19603f3d011682016040523d82523d6000602084013e612238565b606091505b509150915061224987838387612254565b979650505050505050565b606083156122c35782516000036122bc576001600160a01b0385163b6122bc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610765565b5081611ff2565b611ff283838151156122d85781518083602001fd5b8060405162461bcd60e51b8152600401610765919061232f565b60006020828403121561230457600080fd5b5035919050565b60005b8381101561232657818101518382015260200161230e565b50506000910152565b602081526000825180602084015261234e81604085016020870161230b565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610b3e57600080fd5b6000806040838503121561238a57600080fd5b823561239581612362565b946020939093013593505050565b6000806000606084860312156123b857600080fd5b83356123c381612362565b925060208401356123d381612362565b929592945050506040919091013590565b600080604083850312156123f757600080fd5b823561240281612362565b9150602083013561241281612362565b809150509250929050565b60006020828403121561242f57600080fd5b8135610a8981612362565b8015158114610b3e57600080fd5b6000806040838503121561245b57600080fd5b823561246681612362565b915060208301356124128161243a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156124fc5781600019048211156124e2576124e26124ab565b808516156124ef57918102915b93841c93908002906124c6565b509250929050565b600082612513575060016108d6565b81612520575060006108d6565b816001811461253657600281146125405761255c565b60019150506108d6565b60ff841115612551576125516124ab565b50506001821b6108d6565b5060208310610133831016604e8410600b841016171561257f575081810a6108d6565b61258983836124c1565b806000190482111561259d5761259d6124ab565b029392505050565b6000610a8960ff841683612504565b80820281158282048414176108d6576108d66124ab565b6000826125e857634e487b7160e01b600052601260045260246000fd5b500490565b600181811c9082168061260157607f821691505b60208210810361262157634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156108d6576108d66124ab565b60006020828403121561264c57600080fd5b5051919050565b60006020828403121561266557600080fd5b8151610a8981612362565b60008060006060848603121561268557600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156126b057600080fd5b8151610a898161243a565b818103818111156108d6576108d66124ab565b6000600182016126e0576126e06124ab565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127d55784516001600160a01b0316835293830193918301916001016127b0565b50506001600160a01b03969096166060850152505050608001529392505050565b6000825161280881846020870161230b565b919091019291505056fea2646970667358221220cac5ab2b6727c730cff56df930f6ff0db84dc8e36b9ea1720849b8d7b57a404364736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000867c0be12938f94dcb15a6d29e4cbd6ce4edd831
-----Decoded View---------------
Arg [0] : _wallet (address): 0x867c0be12938F94DCb15a6d29e4CBd6cE4EDd831
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000867c0be12938f94dcb15a6d29e4cbd6ce4edd831
Deployed Bytecode Sourcemap
28390:10143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35723:332;;;;;;;;;;-1:-1:-1;35723:332:0;;;;;:::i;:::-;;:::i;:::-;;4424:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29087:27;;;;;;;;;;-1:-1:-1;29087:27:0;;;;-1:-1:-1;;;;;29087:27:0;;;;;;-1:-1:-1;;;;;1038:32:1;;;1020:51;;1008:2;993:18;29087:27:0;855:222:1;6850:226:0;;;;;;;;;;-1:-1:-1;6850:226:0;;;;;:::i;:::-;;:::i;:::-;;;1703:14:1;;1696:22;1678:41;;1666:2;1651:18;6850:226:0;1538:187:1;28719:33:0;;;;;;;;;;-1:-1:-1;28719:33:0;;;;-1:-1:-1;;;;;28719:33:0;;;36634:230;;;;;;;;;;-1:-1:-1;36634:230:0;;;;;:::i;:::-;;:::i;5553:108::-;;;;;;;;;;-1:-1:-1;5641:12:0;;5553:108;;;2084:25:1;;;2072:2;2057:18;5553:108:0;1938:177:1;36063:330:0;;;;;;;;;;-1:-1:-1;36063:330:0;;;;;:::i;:::-;;:::i;7656:295::-;;;;;;;;;;-1:-1:-1;7656:295:0;;;;;:::i;:::-;;:::i;5395:93::-;;;;;;;;;;-1:-1:-1;5395:93:0;;5478:2;2723:36:1;;2711:2;2696:18;5395:93:0;2581:184:1;8360:263:0;;;;;;;;;;-1:-1:-1;8360:263:0;;;;;:::i;:::-;;:::i;37971:217::-;;;;;;;;;;;;;:::i;36401:225::-;;;;;;;;;;-1:-1:-1;36401:225:0;;;;;:::i;:::-;;:::i;29059:21::-;;;;;;;;;;-1:-1:-1;29059:21:0;;;;;;;-1:-1:-1;;;;;29059:21:0;;;28949:33;;;;;;;;;;-1:-1:-1;28949:33:0;;;;;;;;38196:297;;;;;;;;;;-1:-1:-1;38196:297:0;;;;;:::i;:::-;;:::i;28428:46::-;;;;;;;;;;-1:-1:-1;28428:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;28761:30;;;;;;;;;;;;;;;;28689:21;;;;;;;;;;;;;;;;28991:31;;;;;;;;;;-1:-1:-1;28991:31:0;;;;;;;;;;;5724:143;;;;;;;;;;-1:-1:-1;5724:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5841:18:0;5814:7;5841:18;;;;;;;;;;;;5724:143;17212:150;;;;;;;;;;;;;:::i;37771:192::-;;;;;;;;;;;;;:::i;35055:272::-;;;;;;;;;;-1:-1:-1;35055:272:0;;;;;:::i;:::-;;:::i;37651:112::-;;;;;;;;;;;;;:::i;28481:48::-;;;;;;;;;;-1:-1:-1;28481:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16998:79;;;;;;;;;;-1:-1:-1;17063:6:0;;-1:-1:-1;;;;;17063:6:0;16998:79;;4643:104;;;;;;;;;;;;;:::i;29123:43::-;;;;;;;;;;;;29161:5;29123:43;;35335:380;;;;;;;;;;-1:-1:-1;35335:380:0;;;;;:::i;:::-;;:::i;9126:498::-;;;;;;;;;;-1:-1:-1;9126:498:0;;;;;:::i;:::-;;:::i;6073:218::-;;;;;;;;;;-1:-1:-1;6073:218:0;;;;;:::i;:::-;;:::i;28572:41::-;;;;;;;;;;-1:-1:-1;28572:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;28538:25;;;;;;;;;;-1:-1:-1;28538:25:0;;;;;;;;28622:29;;;;;;;;;;;;;;;;6354:176;;;;;;;;;;-1:-1:-1;6354:176:0;;;;;:::i;:::-;;:::i;28798:31::-;;;;;;;;;;;;;;;;17370:281;;;;;;;;;;-1:-1:-1;17370:281:0;;;;;:::i;:::-;;:::i;36872:771::-;;;;;;;;;;;;;:::i;28658:24::-;;;;;;;;;;;;;;;;35723:332;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;;;;;;;;;35879:16:::1;5478:2:::0;35879::::1;:16;:::i;:::-;35870:4;35849:13;5641:12:::0;;;5553:108;35849:13:::1;:17;::::0;35865:1:::1;35849:17;:::i;:::-;35848:26;;;;:::i;:::-;35847:49;;;;:::i;:::-;35829:14;:67;;35807:124;;;::::0;-1:-1:-1;;;35807:124:0;;6398:2:1;35807:124:0::1;::::0;::::1;6380:21:1::0;6437:1;6417:18;;;6410:29;-1:-1:-1;;;6455:18:1;;;6448:37;6502:18;;35807:124:0::1;6196:330:1::0;35807:124:0::1;35977:16;5478:2:::0;35977::::1;:16;:::i;:::-;35959:35;::::0;:14;:35:::1;:::i;:::-;35942:14;:52:::0;;;36010:37:::1;::::0;2084:25:1;;;36010:37:0::1;::::0;2072:2:1;2057:18;36010:37:0::1;;;;;;;;35723:332:::0;:::o;4424:100::-;4478:13;4511:5;4504:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4424:100;:::o;6850:226::-;6958:4;325:10;7014:32;325:10;7030:7;7039:6;7014:8;:32::i;:::-;7064:4;7057:11;;;6850:226;;;;;:::o;36634:230::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;36716:12:::1;:34:::0;;;36785:4:::1;36769:20:::0;::::1;;36761:51;;;::::0;-1:-1:-1;;;36761:51:0;;7118:2:1;36761:51:0::1;::::0;::::1;7100:21:1::0;7157:2;7137:18;;;7130:30;-1:-1:-1;;;7176:18:1;;;7169:48;7234:18;;36761:51:0::1;6916:342:1::0;36761:51:0::1;36828:28;36843:12;;36828:28;;;;2084:25:1::0;;2072:2;2057:18;;1938:177;36063:330:0;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;36232:16:::1;5478:2:::0;36232::::1;:16;:::i;:::-;36223:4;36201:13;5641:12:::0;;;5553:108;36201:13:::1;:18;::::0;36217:2:::1;36201:18;:::i;:::-;36200:27;;;;:::i;:::-;36199:50;;;;:::i;:::-;36164:14;:85;;36142:142;;;::::0;-1:-1:-1;;;36142:142:0;;6398:2:1;36142:142:0::1;::::0;::::1;6380:21:1::0;6437:1;6417:18;;;6410:29;-1:-1:-1;;;6455:18:1;;;6448:37;6502:18;;36142:142:0::1;6196:330:1::0;36142:142:0::1;36325:16;5478:2:::0;36325::::1;:16;:::i;:::-;36307:35;::::0;:14;:35:::1;:::i;:::-;36295:9;:47:::0;;;36358:27:::1;::::0;2084:25:1;;;36358:27:0::1;::::0;2072:2:1;2057:18;36358:27:0::1;1938:177:1::0;7656:295:0;7787:4;325:10;7845:38;7861:4;325:10;7876:6;7845:15;:38::i;:::-;7894:27;7904:4;7910:2;7914:6;7894:9;:27::i;:::-;7939:4;7932:11;;;7656:295;;;;;;:::o;8360:263::-;8473:4;325:10;8529:64;325:10;8545:7;8582:10;8554:25;325:10;8545:7;8554:9;:25::i;:::-;:38;;;;:::i;:::-;8529:8;:64::i;37971:217::-;17063:6;;-1:-1:-1;;;;;17063:6:0;38025:10;:21;38017:30;;;;;;38090:1;38066:21;:25;38058:60;;;;-1:-1:-1;;;38058:60:0;;7595:2:1;38058:60:0;;;7577:21:1;7634:2;7614:18;;;7607:30;-1:-1:-1;;;7653:18:1;;;7646:52;7715:18;;38058:60:0;7393:346:1;38058:60:0;38129:51;;38137:10;;38158:21;38129:51;;;;;;;;;38158:21;38137:10;38129:51;;;;;;;;;;;;;;;;;;;;;37971:217::o;36401:225::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;36482:11:::1;:33:::0;;;36549:4:::1;36534:19:::0;::::1;;36526:50;;;::::0;-1:-1:-1;;;36526:50:0;;7118:2:1;36526:50:0::1;::::0;::::1;7100:21:1::0;7157:2;7137:18;;;7130:30;-1:-1:-1;;;7176:18:1;;;7169:48;7234:18;;36526:50:0::1;6916:342:1::0;36526:50:0::1;36592:26;36606:11;;36592:26;;;;2084:25:1::0;;2072:2;2057:18;;1938:177;38196:297:0;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;38285:20:0;::::1;38277:59;;;::::0;-1:-1:-1;;;38277:59:0;;7946:2:1;38277:59:0::1;::::0;::::1;7928:21:1::0;7985:2;7965:18;;;7958:30;8024:28;8004:18;;;7997:56;8070:18;;38277:59:0::1;7744:350:1::0;38277:59:0::1;38374:39;::::0;-1:-1:-1;;;38374:39:0;;38407:4:::1;38374:39;::::0;::::1;1020:51:1::0;38347:24:0::1;::::0;-1:-1:-1;;;;;38374:24:0;::::1;::::0;::::1;::::0;993:18:1;;38374:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38347:66;;38424:61;38454:6;38463:3;38468:16;38424:22;:61::i;:::-;38266:227;38196:297:::0;;:::o;17212:150::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;17305:6:::1;::::0;17284:40:::1;::::0;17321:1:::1;::::0;-1:-1:-1;;;;;17305:6:0::1;::::0;17284:40:::1;::::0;17321:1;;17284:40:::1;17335:6;:19:::0;;-1:-1:-1;;;;;;17335:19:0::1;::::0;;17212:150::o;37771:192::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;37825:14:::1;:22:::0;;-1:-1:-1;;37825:22:0::1;::::0;;5641:12;;37858:14:::1;:30:::0;5641:12;;37899:9:::1;:25:::0;37940:15:::1;::::0;::::1;::::0;;;::::1;37771:192::o:0;35055:272::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;35179:22:0;::::1;35171:47;;;::::0;-1:-1:-1;;;35171:47:0;;8490:2:1;35171:47:0::1;::::0;::::1;8472:21:1::0;8529:2;8509:18;;;8502:30;-1:-1:-1;;;8548:18:1;;;8541:42;8600:18;;35171:47:0::1;8288:336:1::0;35171:47:0::1;-1:-1:-1::0;;;;;35229:24:0;::::1;;::::0;;;:14:::1;:24;::::0;;;;;;;;:36;;-1:-1:-1;;35229:36:0::1;::::0;::::1;;::::0;;::::1;::::0;;;35281:38;;8797:51:1;;;8864:18;;;8857:50;35281:38:0::1;::::0;8770:18:1;35281:38:0::1;;;;;;;;35055:272:::0;;:::o;37651:112::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;37706:13:::1;:20:::0;;-1:-1:-1;;37706:20:0::1;37722:4;37706:20;::::0;;37737:11:::1;:18:::0;;-1:-1:-1;;37737:18:0::1;37706:20;37737:18;::::0;;37651:112::o;4643:104::-;4699:13;4732:7;4725:14;;;;;:::i;35335:380::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;35461:22:0;::::1;35453:47;;;::::0;-1:-1:-1;;;35453:47:0;;8490:2:1;35453:47:0::1;::::0;::::1;8472:21:1::0;8529:2;8509:18;;;8502:30;-1:-1:-1;;;8548:18:1;;;8541:42;8600:18;;35453:47:0::1;8288:336:1::0;35453:47:0::1;35516:9;35511:92;;35562:6;::::0;-1:-1:-1;;;;;35562:6:0;;;::::1;::::0;::::1;35550:18:::0;;::::1;::::0;35542:49:::1;;;::::0;-1:-1:-1;;;35542:49:0;;9120:2:1;35542:49:0::1;::::0;::::1;9102:21:1::0;9159:2;9139:18;;;9132:30;-1:-1:-1;;;9178:18:1;;;9171:48;9236:18;;35542:49:0::1;8918:342:1::0;35542:49:0::1;-1:-1:-1::0;;;;;35613:26:0;::::1;;::::0;;;:16:::1;:26;::::0;;;;;;;;:38;;-1:-1:-1;;35613:38:0::1;::::0;::::1;;::::0;;::::1;::::0;;;35667:40;;8797:51:1;;;8864:18;;;8857:50;35667:40:0::1;::::0;8770:18:1;35667:40:0::1;8629:284:1::0;9126:498:0;9244:4;325:10;9244:4;9327:25;325:10;9344:7;9327:9;:25::i;:::-;9300:52;;9405:15;9385:16;:35;;9363:122;;;;-1:-1:-1;;;9363:122:0;;9467:2:1;9363:122:0;;;9449:21:1;9506:2;9486:18;;;9479:30;9545:34;9525:18;;;9518:62;-1:-1:-1;;;9596:18:1;;;9589:35;9641:19;;9363:122:0;9265:401:1;9363:122:0;9521:60;9530:5;9537:7;9565:15;9546:16;:34;9521:8;:60::i;:::-;-1:-1:-1;9612:4:0;;9126:498;-1:-1:-1;;;;9126:498:0:o;6073:218::-;6177:4;325:10;6233:28;325:10;6250:2;6254:6;6233:9;:28::i;6354:176::-;-1:-1:-1;;;;;6495:18:0;;;6468:7;6495:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6354:176::o;17370:281::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17473:22:0;::::1;17451:110;;;::::0;-1:-1:-1;;;17451:110:0;;9873:2:1;17451:110:0::1;::::0;::::1;9855:21:1::0;9912:2;9892:18;;;9885:30;9951:34;9931:18;;;9924:62;-1:-1:-1;;;10002:18:1;;;9995:36;10048:19;;17451:110:0::1;9671:402:1::0;17451:110:0::1;17598:6;::::0;17577:38:::1;::::0;-1:-1:-1;;;;;17577:38:0;;::::1;::::0;17598:6:::1;::::0;17577:38:::1;::::0;17598:6:::1;::::0;17577:38:::1;17626:6;:17:::0;;-1:-1:-1;;;;;;17626:17:0::1;-1:-1:-1::0;;;;;17626:17:0;;;::::1;::::0;;;::::1;::::0;;17370:281::o;36872:771::-;17125:6;;-1:-1:-1;;;;;17125:6:0;325:10;17125:22;17117:67;;;;-1:-1:-1;;;17117:67:0;;;;;;;:::i;:::-;36931:13:::1;::::0;::::1;;36930:14;36922:50;;;::::0;-1:-1:-1;;;36922:50:0;;10280:2:1;36922:50:0::1;::::0;::::1;10262:21:1::0;10319:2;10299:18;;;10292:30;10358:25;10338:18;;;10331:53;10401:18;;36922:50:0::1;10078:347:1::0;36922:50:0::1;37004:9;;;;;;;;;-1:-1:-1::0;;;;;37004:9:0::1;-1:-1:-1::0;;;;;37004:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;36992:43:0::1;;37058:4;37078:9;;;;;;;;;-1:-1:-1::0;;;;;37078:9:0::1;-1:-1:-1::0;;;;;37078:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36992:113;::::0;-1:-1:-1;;;;;;36992:113:0::1;::::0;;;;;;-1:-1:-1;;;;;10916:15:1;;;36992:113:0::1;::::0;::::1;10898:34:1::0;10968:15;;10948:18;;;10941:43;10833:18;;36992:113:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36983:6;:122:::0;;-1:-1:-1;;;;;;36983:122:0::1;::::0;-1:-1:-1;;;;;36983:122:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;37128:6;;::::1;::::0;::::1;-1:-1:-1::0;37118:17:0;;;:9:::1;:17;::::0;;;;;;;:24;;-1:-1:-1;;37118:24:0;;::::1;-1:-1:-1::0;37118:24:0;;::::1;::::0;;;37172:6;;;;;::::1;::::0;::::1;37155:24:::0;;:16:::1;:24:::0;;;;;:31;;;;::::1;;::::0;;37231:9:::1;::::0;37199:62:::1;::::0;37216:4:::1;::::0;37231:9:::1;-1:-1:-1::0;;37199:8:0::1;:62::i;:::-;37310:9;::::0;37272:64:::1;::::0;37289:10:::1;::::0;-1:-1:-1;;;;;37310:9:0::1;37322:13;5641:12:::0;;;5553:108;37272:64:::1;37349:9;::::0;-1:-1:-1;;;;;37349:9:0::1;:25;37382:21;37427:4;37447:24;37427:4:::0;-1:-1:-1;;;;;5841:18:0;5814:7;5841:18;;;;;;;;;;;;5724:143;37447:24:::1;37486:1;37502::::0;37518:7:::1;17063:6:::0;;-1:-1:-1;;;;;17063:6:0;;16998:79;37518:7:::1;37349:217;::::0;::::1;::::0;;;-1:-1:-1;;;;;;37349:217:0;;;-1:-1:-1;;;;;11354:15:1;;;37349:217:0::1;::::0;::::1;11336:34:1::0;11386:18;;;11379:34;;;;11429:18;;;11422:34;;;;11472:18;;;11465:34;11536:15;;;11515:19;;;11508:44;37540:15:0::1;11568:19:1::0;;;11561:35;11270:19;;37349:217:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;37584:6:0::1;::::0;37608:9:::1;::::0;37577:58:::1;::::0;-1:-1:-1;;;37577:58:0;;-1:-1:-1;;;;;37608:9:0;;::::1;37577:58;::::0;::::1;12092:51:1::0;-1:-1:-1;;12159:18:1;;;12152:34;37584:6:0;;;::::1;;::::0;-1:-1:-1;37577:22:0::1;::::0;12065:18:1;;37577:58:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14021:380::-:0;-1:-1:-1;;;;;14157:19:0;;14149:68;;;;-1:-1:-1;;;14149:68:0;;12649:2:1;14149:68:0;;;12631:21:1;12688:2;12668:18;;;12661:30;12727:34;12707:18;;;12700:62;-1:-1:-1;;;12778:18:1;;;12771:34;12822:19;;14149:68:0;12447:400:1;14149:68:0;-1:-1:-1;;;;;14236:21:0;;14228:68;;;;-1:-1:-1;;;14228:68:0;;13054:2:1;14228:68:0;;;13036:21:1;13093:2;13073:18;;;13066:30;13132:34;13112:18;;;13105:62;-1:-1:-1;;;13183:18:1;;;13176:32;13225:19;;14228:68:0;12852:398:1;14228:68:0;-1:-1:-1;;;;;14309:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14361:32;;2084:25:1;;;14361:32:0;;2057:18:1;14361:32:0;;;;;;;14021:380;;;:::o;14692:502::-;14827:24;14854:25;14864:5;14871:7;14854:9;:25::i;:::-;14827:52;;-1:-1:-1;;14894:16:0;:37;14890:297;;14994:6;14974:16;:26;;14948:117;;;;-1:-1:-1;;;14948:117:0;;13457:2:1;14948:117:0;;;13439:21:1;13496:2;13476:18;;;13469:30;13535:31;13515:18;;;13508:59;13584:18;;14948:117:0;13255:353:1;14948:117:0;15109:51;15118:5;15125:7;15153:6;15134:16;:25;15109:8;:51::i;:::-;14816:378;14692:502;;;:::o;30978:317::-;31110:29;31122:4;31128:2;31132:6;31110:11;:29::i;:::-;31157:11;;;;;;;31156:12;;:24;;-1:-1:-1;31172:8:0;;;;;;;31156:24;31152:37;;;30978:317;;;:::o;31152:37::-;31211:30;31224:4;31230:2;31234:6;31211:12;:30::i;:::-;31201:40;;;;:::i;:::-;;;31254:33;31270:4;31276:2;31280:6;31254:15;:33::i;24694:214::-;24831:58;;;-1:-1:-1;;;;;12110:32:1;;24831:58:0;;;12092:51:1;12159:18;;;;12152:34;;;24831:58:0;;;;;;;;;;12065:18:1;;;;24831:58:0;;;;;;;;-1:-1:-1;;;;;24831:58:0;-1:-1:-1;;;24831:58:0;;;24777:123;;24811:5;;24777:19;:123::i;31303:1330::-;31391:13;;;;31386:173;;-1:-1:-1;;;;;31447:20:0;;;;;;:14;:20;;;;;;;;;:42;;-1:-1:-1;;;;;;31471:18:0;;;;;;:14;:18;;;;;;;;31447:42;31421:126;;;;-1:-1:-1;;;31421:126:0;;13948:2:1;31421:126:0;;;13930:21:1;13987:2;13967:18;;;13960:30;-1:-1:-1;;;14006:18:1;;;13999:52;14068:18;;31421:126:0;13746:346:1;31421:126:0;31576:11;;;;;;;31575:12;;:24;;-1:-1:-1;31591:8:0;;;;;;;31575:24;31571:111;;;31616:33;31632:4;31638:2;31642:6;31616:15;:33::i;31571:111::-;31698:14;;;;31694:932;;;-1:-1:-1;;;;;31753:15:0;;;;;;:9;:15;;;;;;;;:40;;;;-1:-1:-1;;;;;;31773:20:0;;;;;;:16;:20;;;;;;;;31772:21;31753:40;31749:866;;;31854:14;;31844:6;:24;;31814:127;;;;-1:-1:-1;;;31814:127:0;;14299:2:1;31814:127:0;;;14281:21:1;14338:2;14318:18;;;14311:30;14377:31;14357:18;;;14350:59;14426:18;;31814:127:0;14097:353:1;31814:127:0;32016:9;;-1:-1:-1;;;;;5841:18:0;;5814:7;5841:18;;;;;;;;;;;31990:22;;:6;:22;:::i;:::-;:35;;31960:136;;;;-1:-1:-1;;;31960:136:0;;14657:2:1;31960:136:0;;;14639:21:1;14696:2;14676:18;;;14669:30;14735:29;14715:18;;;14708:57;14782:18;;31960:136:0;14455:351:1;31960:136:0;32115:8;:10;;;:8;:10;;;:::i;:::-;;;;;;38266:227:::1;38196:297:::0;;:::o;31749:866::-;-1:-1:-1;;;;;32185:13:0;;;;;;:9;:13;;;;;;;;:40;;;;-1:-1:-1;;;;;;32203:22:0;;;;;;:16;:22;;;;;;;;32202:23;32185:40;32181:434;;;32286:14;;32276:6;:24;;32246:149;;;;-1:-1:-1;;;32246:149:0;;15153:2:1;32246:149:0;;;15135:21:1;15192:2;15172:18;;;15165:30;15231:34;15211:18;;;15204:62;-1:-1:-1;;;15282:18:1;;;15275:49;15341:19;;32246:149:0;14951:415:1;32181:434:0;-1:-1:-1;;;;;32422:20:0;;;;;;:16;:20;;;;;;;;32417:198;;32519:9;;-1:-1:-1;;;;;5841:18:0;;5814:7;5841:18;;;;;;;;;;;32493:22;;:6;:22;:::i;:::-;:35;;32463:136;;;;-1:-1:-1;;;32463:136:0;;14657:2:1;32463:136:0;;;14639:21:1;14696:2;14676:18;;;14669:30;14735:29;14715:18;;;14708:57;14782:18;;32463:136:0;14455:351:1;32641:1259:0;32795:11;;32757:7;;32795:11;;;;;:24;;;;-1:-1:-1;32811:8:0;;;;;;;32810:9;32795:24;:41;;;;-1:-1:-1;;;;;;32823:13:0;;;;;;:9;:13;;;;;;;;32795:41;:66;;;;-1:-1:-1;;;;;;32841:20:0;;;;;;:14;:20;;;;;;;;32840:21;32795:66;32777:200;;;32888:8;:15;;-1:-1:-1;;32888:15:0;;;;;32918:16;32927:6;32918:8;:16::i;:::-;32949:8;:16;;-1:-1:-1;;32949:16:0;;;32777:200;-1:-1:-1;;;;;33023:20:0;;32989:12;33023:20;;;:14;:20;;;;;;33004:4;;33023:20;;33019:68;;;-1:-1:-1;33070:5:0;33019:68;33113:6;33152:739;;;;-1:-1:-1;;;;;;33206:13:0;;33186:1;33206:13;;;:9;:13;;;;;;;;33202:445;;;29161:5;33314:8;;33303;;:19;:47;;33340:10;;33303:47;;;33325:12;;33303:47;33268:83;;:6;:83;:::i;:::-;33267:120;;;;:::i;:::-;33240:147;;33202:445;;;-1:-1:-1;;;;;33449:15:0;;;;;;:9;:15;;;;;;;;33445:202;;;29161:5;33559:8;;33548;;:19;:46;;33584:10;;33548:46;;;33570:11;;33548:46;33513:82;;:6;:82;:::i;:::-;33512:119;;;;:::i;:::-;33485:146;;33445:202;33665:7;;33661:89;;33693:41;33709:4;33723;33730:3;33693:15;:41::i;:::-;33771:3;-1:-1:-1;33764:10:0;;-1:-1:-1;33764:10:0;33152:739;33807:49;33831:4;33845;33852:3;33807:23;:49::i;:::-;33878:1;33871:8;;;;;;10094:877;-1:-1:-1;;;;;10225:18:0;;10217:68;;;;-1:-1:-1;;;10217:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10304:16:0;;10296:64;;;;-1:-1:-1;;;10296:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10446:15:0;;10424:19;10446:15;;;;;;;;;;;10494:21;;;;10472:109;;;;-1:-1:-1;;;10472:109:0;;16383:2:1;10472:109:0;;;16365:21:1;16422:2;16402:18;;;16395:30;16461:34;16441:18;;;16434:62;-1:-1:-1;;;16512:18:1;;;16505:36;16558:19;;10472:109:0;16181:402:1;10472:109:0;-1:-1:-1;;;;;10617:15:0;;;:9;:15;;;;;;;;;;;10635:20;;;10617:38;;10835:13;;;;;;;;;;:23;;;;;;10887:26;;2084:25:1;;;10835:13:0;;10887:26;;2057:18:1;10887:26:0;;;;;;;;10926:37;38196:297;25209:419;25290:23;25316:106;25358:4;25316:106;;;;;;;;;;;;;;;;;25324:5;-1:-1:-1;;;;;25316:27:0;;;:106;;;;;:::i;:::-;25437:17;;25290:132;;-1:-1:-1;25437:21:0;25433:188;;25512:10;25501:30;;;;;;;;;;;;:::i;:::-;25475:134;;;;-1:-1:-1;;;25475:134:0;;16790:2:1;25475:134:0;;;16772:21:1;16829:2;16809:18;;;16802:30;16868:34;16848:18;;;16841:62;-1:-1:-1;;;16919:18:1;;;16912:40;16969:19;;25475:134:0;16588:406:1;34307:604:0;34404:4;34360:23;5841:18;;;;;;;;;;;;34458:19;;;;;:47;;;34499:6;;34481:15;:24;34458:47;34454:281;;;-1:-1:-1;34537:15:0;34454:281;;;34598:6;;34589;:15;34585:139;;;-1:-1:-1;34640:6:0;;34585:139;;;-1:-1:-1;34702:6:0;34585:139;34751:19;;34747:55;;34772:30;34789:12;34772:16;:30::i;:::-;34844:21;34876:27;34844:21;34876:7;:27::i;12822:763::-;-1:-1:-1;;;;;12961:18:0;;12953:68;;;;-1:-1:-1;;;12953:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13040:16:0;;13032:64;;;;-1:-1:-1;;;13032:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13182:15:0;;;13160:19;13182:15;;;;;;;;;;;;;13253:20;;;13235:38;;;13460:13;;;;;;;:23;;13267:6;;13160:19;13460:23;;13267:6;;13460:23;:::i;:::-;;;;;;;;13516:2;-1:-1:-1;;;;;13501:26:0;13510:4;-1:-1:-1;;;;;13501:26:0;;13520:6;13501:26;;;;2084:25:1;;2072:2;2057:18;;1938:177;18519:229:0;18656:12;18688:52;18710:6;18718:4;18724:1;18727:12;18688:21;:52::i;:::-;18681:59;18519:229;-1:-1:-1;;;;18519:229:0:o;33908:391::-;33995:16;;;34009:1;33995:16;;;;;;;;33971:21;;33995:16;;;;;;;;;;-1:-1:-1;33995:16:0;33971:40;;34040:4;34022;34027:1;34022:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;34022:23:0;;;:7;;;;;;;;;;:23;;;;34074:9;;:16;;;-1:-1:-1;;;34074:16:0;;;;:9;;;;;:14;;:16;;;;;34022:7;;34074:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34056:4;34061:1;34056:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;34056:35:0;;;:7;;;;;;;;;:35;34104:9;;:187;;-1:-1:-1;;;34104:187:0;;:9;;;:60;;:187;;34179:8;;34104:9;;34218:4;;34245;;34265:15;;34104:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33960:339;33908:391;:::o;34919:104::-;34979:18;;34971:44;;-1:-1:-1;;;;;34979:18:0;;;;34971:44;;;;;35008:6;;34979:18;34971:44;34979:18;34971:44;35008:6;34979:18;34971:44;;;;;;;;;;;;;;;;;;;;;34919:104;:::o;19735:612::-;19905:12;19977:5;19952:21;:30;;19930:118;;;;-1:-1:-1;;;19930:118:0;;18450:2:1;19930:118:0;;;18432:21:1;18489:2;18469:18;;;18462:30;18528:34;18508:18;;;18501:62;-1:-1:-1;;;18579:18:1;;;18572:36;18625:19;;19930:118:0;18248:402:1;19930:118:0;20060:12;20074:23;20101:6;-1:-1:-1;;;;;20101:11:0;20120:5;20141:4;20101:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20059:97;;;;20187:152;20232:6;20257:7;20283:10;20312:12;20187:26;:152::i;:::-;20167:172;19735:612;-1:-1:-1;;;;;;;19735:612:0:o;22865:644::-;23050:12;23079:7;23075:427;;;23107:10;:17;23128:1;23107:22;23103:290;;-1:-1:-1;;;;;17765:19:0;;;23317:60;;;;-1:-1:-1;;;23317:60:0;;19149:2:1;23317:60:0;;;19131:21:1;19188:2;19168:18;;;19161:30;19227:31;19207:18;;;19200:59;19276:18;;23317:60:0;18947:353:1;23317:60:0;-1:-1:-1;23414:10:0;23407:17;;23075:427;23457:33;23465:10;23477:12;24237:17;;:21;24233:388;;24469:10;24463:17;24526:15;24513:10;24509:2;24505:19;24498:44;24233:388;24596:12;24589:20;;-1:-1:-1;;;24589:20:0;;;;;;;;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:250::-;284:1;294:113;308:6;305:1;302:13;294:113;;;384:11;;;378:18;365:11;;;358:39;330:2;323:10;294:113;;;-1:-1:-1;;441:1:1;423:16;;416:27;199:250::o;454:396::-;603:2;592:9;585:21;566:4;635:6;629:13;678:6;673:2;662:9;658:18;651:34;694:79;766:6;761:2;750:9;746:18;741:2;733:6;729:15;694:79;:::i;:::-;834:2;813:15;-1:-1:-1;;809:29:1;794:45;;;;841:2;790:54;;454:396;-1:-1:-1;;454:396:1:o;1082:131::-;-1:-1:-1;;;;;1157:31:1;;1147:42;;1137:70;;1203:1;1200;1193:12;1218:315;1286:6;1294;1347:2;1335:9;1326:7;1322:23;1318:32;1315:52;;;1363:1;1360;1353:12;1315:52;1402:9;1389:23;1421:31;1446:5;1421:31;:::i;:::-;1471:5;1523:2;1508:18;;;;1495:32;;-1:-1:-1;;;1218:315:1:o;2120:456::-;2197:6;2205;2213;2266:2;2254:9;2245:7;2241:23;2237:32;2234:52;;;2282:1;2279;2272:12;2234:52;2321:9;2308:23;2340:31;2365:5;2340:31;:::i;:::-;2390:5;-1:-1:-1;2447:2:1;2432:18;;2419:32;2460:33;2419:32;2460:33;:::i;:::-;2120:456;;2512:7;;-1:-1:-1;;;2566:2:1;2551:18;;;;2538:32;;2120:456::o;2770:388::-;2838:6;2846;2899:2;2887:9;2878:7;2874:23;2870:32;2867:52;;;2915:1;2912;2905:12;2867:52;2954:9;2941:23;2973:31;2998:5;2973:31;:::i;:::-;3023:5;-1:-1:-1;3080:2:1;3065:18;;3052:32;3093:33;3052:32;3093:33;:::i;:::-;3145:7;3135:17;;;2770:388;;;;;:::o;3163:247::-;3222:6;3275:2;3263:9;3254:7;3250:23;3246:32;3243:52;;;3291:1;3288;3281:12;3243:52;3330:9;3317:23;3349:31;3374:5;3349:31;:::i;3415:118::-;3501:5;3494:13;3487:21;3480:5;3477:32;3467:60;;3523:1;3520;3513:12;3538:382;3603:6;3611;3664:2;3652:9;3643:7;3639:23;3635:32;3632:52;;;3680:1;3677;3670:12;3632:52;3719:9;3706:23;3738:31;3763:5;3738:31;:::i;:::-;3788:5;-1:-1:-1;3845:2:1;3830:18;;3817:32;3858:30;3817:32;3858:30;:::i;3925:356::-;4127:2;4109:21;;;4146:18;;;4139:30;4205:34;4200:2;4185:18;;4178:62;4272:2;4257:18;;3925:356::o;4286:127::-;4347:10;4342:3;4338:20;4335:1;4328:31;4378:4;4375:1;4368:15;4402:4;4399:1;4392:15;4418:422;4507:1;4550:5;4507:1;4564:270;4585:7;4575:8;4572:21;4564:270;;;4644:4;4640:1;4636:6;4632:17;4626:4;4623:27;4620:53;;;4653:18;;:::i;:::-;4703:7;4693:8;4689:22;4686:55;;;4723:16;;;;4686:55;4802:22;;;;4762:15;;;;4564:270;;;4568:3;4418:422;;;;;:::o;4845:806::-;4894:5;4924:8;4914:80;;-1:-1:-1;4965:1:1;4979:5;;4914:80;5013:4;5003:76;;-1:-1:-1;5050:1:1;5064:5;;5003:76;5095:4;5113:1;5108:59;;;;5181:1;5176:130;;;;5088:218;;5108:59;5138:1;5129:10;;5152:5;;;5176:130;5213:3;5203:8;5200:17;5197:43;;;5220:18;;:::i;:::-;-1:-1:-1;;5276:1:1;5262:16;;5291:5;;5088:218;;5390:2;5380:8;5377:16;5371:3;5365:4;5362:13;5358:36;5352:2;5342:8;5339:16;5334:2;5328:4;5325:12;5321:35;5318:77;5315:159;;;-1:-1:-1;5427:19:1;;;5459:5;;5315:159;5506:34;5531:8;5525:4;5506:34;:::i;:::-;5576:6;5572:1;5568:6;5564:19;5555:7;5552:32;5549:58;;;5587:18;;:::i;:::-;5625:20;;4845:806;-1:-1:-1;;;4845:806:1:o;5656:140::-;5714:5;5743:47;5784:4;5774:8;5770:19;5764:4;5743:47;:::i;5801:168::-;5874:9;;;5905;;5922:15;;;5916:22;;5902:37;5892:71;;5943:18;;:::i;5974:217::-;6014:1;6040;6030:132;;6084:10;6079:3;6075:20;6072:1;6065:31;6119:4;6116:1;6109:15;6147:4;6144:1;6137:15;6030:132;-1:-1:-1;6176:9:1;;5974:217::o;6531:380::-;6610:1;6606:12;;;;6653;;;6674:61;;6728:4;6720:6;6716:17;6706:27;;6674:61;6781:2;6773:6;6770:14;6750:18;6747:38;6744:161;;6827:10;6822:3;6818:20;6815:1;6808:31;6862:4;6859:1;6852:15;6890:4;6887:1;6880:15;6744:161;;6531:380;;;:::o;7263:125::-;7328:9;;;7349:10;;;7346:36;;;7362:18;;:::i;8099:184::-;8169:6;8222:2;8210:9;8201:7;8197:23;8193:32;8190:52;;;8238:1;8235;8228:12;8190:52;-1:-1:-1;8261:16:1;;8099:184;-1:-1:-1;8099:184:1:o;10430:251::-;10500:6;10553:2;10541:9;10532:7;10528:23;10524:32;10521:52;;;10569:1;10566;10559:12;10521:52;10601:9;10595:16;10620:31;10645:5;10620:31;:::i;11607:306::-;11695:6;11703;11711;11764:2;11752:9;11743:7;11739:23;11735:32;11732:52;;;11780:1;11777;11770:12;11732:52;11809:9;11803:16;11793:26;;11859:2;11848:9;11844:18;11838:25;11828:35;;11903:2;11892:9;11888:18;11882:25;11872:35;;11607:306;;;;;:::o;12197:245::-;12264:6;12317:2;12305:9;12296:7;12292:23;12288:32;12285:52;;;12333:1;12330;12323:12;12285:52;12365:9;12359:16;12384:28;12406:5;12384:28;:::i;13613:128::-;13680:9;;;13701:11;;;13698:37;;;13715:18;;:::i;14811:135::-;14850:3;14871:17;;;14868:43;;14891:18;;:::i;:::-;-1:-1:-1;14938:1:1;14927:13;;14811:135::o;15371:401::-;15573:2;15555:21;;;15612:2;15592:18;;;15585:30;15651:34;15646:2;15631:18;;15624:62;-1:-1:-1;;;15717:2:1;15702:18;;15695:35;15762:3;15747:19;;15371:401::o;15777:399::-;15979:2;15961:21;;;16018:2;15998:18;;;15991:30;16057:34;16052:2;16037:18;;16030:62;-1:-1:-1;;;16123:2:1;16108:18;;16101:33;16166:3;16151:19;;15777:399::o;17131:127::-;17192:10;17187:3;17183:20;17180:1;17173:31;17223:4;17220:1;17213:15;17247:4;17244:1;17237:15;17263:980;17525:4;17573:3;17562:9;17558:19;17604:6;17593:9;17586:25;17630:2;17668:6;17663:2;17652:9;17648:18;17641:34;17711:3;17706:2;17695:9;17691:18;17684:31;17735:6;17770;17764:13;17801:6;17793;17786:22;17839:3;17828:9;17824:19;17817:26;;17878:2;17870:6;17866:15;17852:29;;17899:1;17909:195;17923:6;17920:1;17917:13;17909:195;;;17988:13;;-1:-1:-1;;;;;17984:39:1;17972:52;;18079:15;;;;18044:12;;;;18020:1;17938:9;17909:195;;;-1:-1:-1;;;;;;;18160:32:1;;;;18155:2;18140:18;;18133:60;-1:-1:-1;;;18224:3:1;18209:19;18202:35;18121:3;17263:980;-1:-1:-1;;;17263:980:1:o;18655:287::-;18784:3;18822:6;18816:13;18838:66;18897:6;18892:3;18885:4;18877:6;18873:17;18838:66;:::i;:::-;18920:16;;;;;18655:287;-1:-1:-1;;18655:287:1:o
Swarm Source
ipfs://cac5ab2b6727c730cff56df930f6ff0db84dc8e36b9ea1720849b8d7b57a4043
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.