Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 7678836 | 273 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
SweepHelperFeature
Compiler Version
v0.8.17+commit.8df45f5f
ZkSolc Version
v1.5.12
Optimization Enabled:
Yes with Mode 3
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
import "../../libs/LibAssetHelper.sol";
import "./ISweepHelperFeature.sol";
import "./IPancakeRouter.sol";
import "./IUniswapQuoter.sol";
contract SweepHelperFeature is ISweepHelperFeature, LibAssetHelper {
address public immutable WETH;
IPancakeRouter public immutable PancakeRouter;
IUniswapQuoter public immutable UniswapQuoter;
constructor(address weth, IPancakeRouter pancakeRouter, IUniswapQuoter uniswapQuoter) {
WETH = weth;
PancakeRouter = pancakeRouter;
UniswapQuoter = uniswapQuoter;
}
function getSwpHelpInfos(
address account,
address operator,
SwpHelpParam[] calldata params
) external override returns (SwpHelpInfo[] memory infos) {
address[] memory path = new address[](2);
infos = new SwpHelpInfo[](params.length);
for (uint256 i; i < params.length; i++) {
address erc20Token = params[i].erc20Token;
infos[i].erc20Token = erc20Token;
infos[i].balance = _erc20BalanceOf(erc20Token, account);
infos[i].allowance = _erc20Allowance(erc20Token, account, operator);
infos[i].decimals = _erc20Decimals(erc20Token);
uint256 amountIn = 10 ** infos[i].decimals;
SwpRateInfo[] memory rates = new SwpRateInfo[](params.length);
for (uint256 j; j < params.length; j++) {
address token = params[j].erc20Token;
rates[j].token = token;
if (
token == erc20Token ||
token == address(0) && erc20Token == WETH ||
token == WETH && erc20Token == address(0)
) {
rates[j].tokenOutAmount = amountIn;
continue;
}
address tokenA = erc20Token == address(0) ? WETH : erc20Token;
address tokenB = token == address(0) ? WETH : token;
if (address(PancakeRouter) != address(0)) {
path[0] = tokenA;
path[1] = tokenB;
rates[j].tokenOutAmount = getAmountsOut(amountIn, path);
} else if (address(UniswapQuoter) != address(0)) {
rates[j].tokenOutAmount = quoteExactInputSingle(tokenA, tokenB, params[i].fee, amountIn);
}
}
infos[i].rates = rates;
}
return infos;
}
function getSwpHelpInfosEx(
address account,
address[] calldata operators,
SwpHelpParam[] calldata params
) external override returns (SwpHelpInfoEx[] memory infos) {
address[] memory path = new address[](2);
infos = new SwpHelpInfoEx[](params.length);
for (uint256 i; i < params.length; i++) {
address erc20Token = params[i].erc20Token;
infos[i].erc20Token = erc20Token;
infos[i].balance = _erc20BalanceOf(erc20Token, account);
uint256[] memory allowances = new uint256[](operators.length);
for (uint256 j; j < operators.length; j++) {
allowances[j] = _erc20Allowance(erc20Token, account, operators[j]);
}
infos[i].allowances = allowances;
infos[i].decimals = _erc20Decimals(erc20Token);
uint256 amountIn = 10 ** infos[i].decimals;
SwpRateInfo[] memory rates = new SwpRateInfo[](params.length);
for (uint256 j; j < params.length; j++) {
address token = params[j].erc20Token;
rates[j].token = token;
if (
token == erc20Token ||
token == address(0) && erc20Token == WETH ||
token == WETH && erc20Token == address(0)
) {
rates[j].tokenOutAmount = amountIn;
continue;
}
address tokenA = erc20Token == address(0) ? WETH : erc20Token;
address tokenB = token == address(0) ? WETH : token;
if (address(PancakeRouter) != address(0)) {
path[0] = tokenA;
path[1] = tokenB;
rates[j].tokenOutAmount = getAmountsOut(amountIn, path);
} else if (address(UniswapQuoter) != address(0)) {
rates[j].tokenOutAmount = quoteExactInputSingle(tokenA, tokenB, params[i].fee, amountIn);
}
}
infos[i].rates = rates;
}
return infos;
}
function getAssetsBalance(SwpAssetInfo[] calldata assets) external view override returns (uint256[] memory) {
uint256[] memory infos = new uint256[](assets.length);
for (uint256 i; i < assets.length; i++) {
address account = assets[i].account;
address token = assets[i].token;
uint256 tokenId = assets[i].tokenId;
uint8 itemType = assets[i].itemType;
if (itemType == 0) {
infos[i] = (_erc721OwnerOf(token, tokenId) == account) ? 1 : 0;
continue;
}
if (itemType == 1) {
infos[i] = _erc1155BalanceOf(token, account, tokenId);
continue;
}
if (itemType == 2) {
infos[i] = _erc20BalanceOf(token, account);
}
}
return infos;
}
function getAmountsOut(uint256 amountIn, address[] memory path) internal view returns (uint256 amount) {
try PancakeRouter.getAmountsOut(amountIn, path) returns (uint256[] memory _amounts) {
amount = _amounts[1];
} catch {
}
return amount;
}
function quoteExactInputSingle(
address tokenIn,
address tokenOut,
uint24 fee,
uint256 amountIn
) internal returns (uint256 amountOut) {
try UniswapQuoter.quoteExactInputSingle(
tokenIn,
tokenOut,
fee,
amountIn,
0
) returns (uint256 _amountOut) {
amountOut = _amountOut;
} catch {
}
return amountOut;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
abstract contract LibAssetHelper {
address internal constant NATIVE_TOKEN_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
uint256 internal constant ERC404_APPROVAL = 1 << 126;
function _isApprovedForAll(
address token,
bool isERC721,
address owner,
address operator
) internal view returns(uint256 approval) {
(approval, ) = _isApprovedForAllV2(token, isERC721, owner, operator);
}
function _isApprovedForAllV2(
address token,
bool isERC721,
address owner,
address operator
) internal view returns(uint256 approval, bool isERC404) {
if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
return (0, false);
}
bool isApprovedForAll;
assembly {
let ptr := mload(0x40) // free memory pointer
// selector for `isApprovedForAll(address,address)`
mstore(ptr, 0xe985e9c500000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x4), owner)
mstore(add(ptr, 0x24), operator)
if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
if gt(mload(ptr), 0) {
isApprovedForAll := 1
}
}
}
if (isApprovedForAll) {
return (1, false);
}
// if (isERC721) {
// if (_erc20Decimals(token) == 0) {
// return (0, false);
// }
// (uint256 allowance, bool success) = _erc20AllowanceV2(token, owner, operator);
// approval = allowance > ERC404_APPROVAL ? 1 : 0;
// isERC404 = success;
// return (approval, isERC404);
// } else {
// return (0, false);
// }
return (0, false);
}
function _erc721OwnerOf(
address token, uint256 tokenId
) internal view returns (address owner) {
assembly {
let ptr := mload(0x40) // free memory pointer
// selector for `ownerOf(uint256)`
mstore(ptr, 0x6352211e00000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x4), tokenId)
if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
if lt(mload(ptr), shl(160, 1)) {
owner := mload(ptr)
}
}
}
return owner;
}
function _erc721GetApproved(
address token, uint256 tokenId
) internal view returns (address operator) {
assembly {
let ptr := mload(0x40) // free memory pointer
// selector for `getApproved(uint256)`
mstore(ptr, 0x081812fc00000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x4), tokenId)
if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
if lt(mload(ptr), shl(160, 1)) {
operator := mload(ptr)
}
}
}
return operator;
}
function _erc1155BalanceOf(
address token,
address account,
uint256 tokenId
) internal view returns (uint256 _balance) {
assembly {
let ptr := mload(0x40) // free memory pointer
// selector for `balanceOf(address,uint256)`
mstore(ptr, 0x00fdd58e00000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x4), account)
mstore(add(ptr, 0x24), tokenId)
if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
_balance := mload(ptr)
}
}
return _balance;
}
function _erc20BalanceOf(
address token, address account
) internal view returns (uint256 _balance) {
if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
return account.balance;
}
assembly {
let ptr := mload(0x40) // free memory pointer
// selector for `balanceOf(address)`
mstore(ptr, 0x70a0823100000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x4), account)
if staticcall(gas(), token, ptr, 0x24, ptr, 0x20) {
_balance := mload(ptr)
}
}
return _balance;
}
function _erc20Allowance(
address token,
address owner,
address spender
) internal view returns (uint256 allowance) {
(allowance, ) = _erc20AllowanceV2(token, owner, spender);
}
function _erc20AllowanceV2(
address token,
address owner,
address spender
) internal view returns (uint256 allowance, bool callSuccess) {
if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
return (type(uint256).max, false);
}
assembly {
let ptr := mload(0x40) // free memory pointer
// selector for `allowance(address,address)`
mstore(ptr, 0xdd62ed3e00000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x4), owner)
mstore(add(ptr, 0x24), spender)
if staticcall(gas(), token, ptr, 0x44, ptr, 0x20) {
allowance := mload(ptr)
callSuccess := 1
}
}
return (allowance, callSuccess);
}
function _erc20Decimals(address token) internal view returns (uint8 decimals) {
if (token == address(0) || token == NATIVE_TOKEN_ADDRESS) {
return 18;
}
assembly {
let ptr := mload(0x40) // free memory pointer
// selector for `decimals()`
mstore(ptr, 0x313ce56700000000000000000000000000000000000000000000000000000000)
if staticcall(gas(), token, ptr, 0x4, ptr, 0x20) {
if lt(mload(ptr), 48) {
decimals := mload(ptr)
}
}
}
return decimals;
}
}/// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
interface ISweepHelperFeature {
struct SwpHelpParam {
address erc20Token;
uint256 amountIn;
uint24 fee;
}
struct SwpRateInfo {
address token;
uint256 tokenOutAmount;
}
struct SwpHelpInfo {
address erc20Token;
uint256 balance;
uint256 allowance;
uint8 decimals;
SwpRateInfo[] rates;
}
function getSwpHelpInfos(
address account,
address operator,
SwpHelpParam[] calldata params
) external returns (SwpHelpInfo[] memory infos);
struct SwpHelpInfoEx {
address erc20Token;
uint256 balance;
uint8 decimals;
uint256[] allowances;
SwpRateInfo[] rates;
}
function getSwpHelpInfosEx(
address account,
address[] calldata operators,
SwpHelpParam[] calldata params
) external returns (SwpHelpInfoEx[] memory infos);
struct SwpAssetInfo {
address account;
uint8 itemType;
address token;
uint256 tokenId;
}
function getAssetsBalance(SwpAssetInfo[] calldata assets) external view returns (uint256[] memory);
}/// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
interface IUniswapQuoter {
function quoteExactInputSingle(
address tokenIn,
address tokenOut,
uint24 fee,
uint256 amountIn,
uint160 sqrtPriceLimitX96
) external returns (uint256 amountOut);
function quoteExactOutputSingle(
address tokenIn,
address tokenOut,
uint24 fee,
uint256 amountOut,
uint160 sqrtPriceLimitX96
) external returns (uint256 amountIn);
}/// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
interface IPancakeRouter {
function factory() external pure returns (address);
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(
uint256 amountOut,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);
}{
"optimizer": {
"enabled": true,
"mode": "3"
},
"outputSelection": {
"*": {
"*": [
"abi"
]
}
},
"detectMissingLibraries": false,
"forceEVMLA": false,
"enableEraVMExtensions": false,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"weth","type":"address"},{"internalType":"contract IPancakeRouter","name":"pancakeRouter","type":"address"},{"internalType":"contract IUniswapQuoter","name":"uniswapQuoter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"PancakeRouter","outputs":[{"internalType":"contract IPancakeRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapQuoter","outputs":[{"internalType":"contract IUniswapQuoter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint8","name":"itemType","type":"uint8"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct ISweepHelperFeature.SwpAssetInfo[]","name":"assets","type":"tuple[]"}],"name":"getAssetsBalance","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"components":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint24","name":"fee","type":"uint24"}],"internalType":"struct ISweepHelperFeature.SwpHelpParam[]","name":"params","type":"tuple[]"}],"name":"getSwpHelpInfos","outputs":[{"components":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenOutAmount","type":"uint256"}],"internalType":"struct ISweepHelperFeature.SwpRateInfo[]","name":"rates","type":"tuple[]"}],"internalType":"struct ISweepHelperFeature.SwpHelpInfo[]","name":"infos","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address[]","name":"operators","type":"address[]"},{"components":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint24","name":"fee","type":"uint24"}],"internalType":"struct ISweepHelperFeature.SwpHelpParam[]","name":"params","type":"tuple[]"}],"name":"getSwpHelpInfosEx","outputs":[{"components":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint256[]","name":"allowances","type":"uint256[]"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenOutAmount","type":"uint256"}],"internalType":"struct ISweepHelperFeature.SwpRateInfo[]","name":"rates","type":"tuple[]"}],"internalType":"struct ISweepHelperFeature.SwpHelpInfoEx[]","name":"infos","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100027be1a3364e5b7bb6209ca7299c124e1fec386f2f39057cdc5099cce04c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003439153eb7af838ad19d56e1571fbd09333c280900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0002000000000002002800000000000200000060031002700001000000010355000002500030019d00000250033001970000000100200190000000380000c13d0000008002000039000000400020043f000000040030008c000001110000413d000000000231034f000000000401043b000000e004400270000002550040009c000000710000213d000002590040009c000000820000613d0000025a0040009c0000008d0000613d0000025b0040009c000001110000c13d000000240030008c000001110000413d0000000004000416000000000004004b000001110000c13d0000000404100370000000000404043b0000025e0040009c000001110000213d0000002305400039000000000035004b000001110000813d0000000405400039000000000151034f000000000601043b0000025e0060009c000001110000213d001d00240040003d00000007016002100000001d01100029000000000031004b000001110000213d00000005036002100000003f013000390000025f01100197000002730010009c000001760000a13d0000027701000041000000000010043f0000004101000039000000040010043f00000266010000410000093c000104300000000002000416000000000002004b000001110000c13d0000001f023000390000025102200197000000e002200039000000400020043f0000001f0430018f0000025205300198000000e002500039000000490000613d000000e006000039000000000701034f000000007807043c0000000006860436000000000026004b000000450000c13d000000000004004b000000560000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600030008c000001110000413d000000e00100043d000002530010009c000001110000213d000001000200043d000002530020009c000001110000213d000001200300043d000002530030009c000001110000213d000000800010043f000000a00020043f000000c00030043f0000014000000443000001600010044300000020010000390000018000100443000001a0002004430000004002000039000001c000200443000001e00030044300000100001004430000000301000039000001200010044300000254010000410000093b0001042e000002560040009c000000f30000613d000002570040009c000001040000613d000002580040009c000001110000c13d0000000001000416000000000001004b000001110000c13d0000000001000412002000000001001d001f00200000003d000080050100003900000044030000390000000004000415000000200440008a000000fd0000013d0000000001000416000000000001004b000001110000c13d0000000001000412002800000001001d002700400000003d000080050100003900000044030000390000000004000415000000280440008a000000fd0000013d000000640030008c000001110000413d0000000002000416000000000002004b000001110000c13d0000000402100370000000000202043b000a00000002001d000002530020009c000001110000213d0000002402100370000000000202043b0000025e0020009c000001110000213d0000002304200039000000000034004b000001110000813d0000000404200039000000000441034f000000000404043b001000000004001d0000025e0040009c000001110000213d000000240420003900000010020000290000000502200210000f00000004001d000500000002001d0000000002420019000000000032004b000001110000213d0000004402100370000000000202043b0000025e0020009c000001110000213d0000002304200039000000000034004b000001110000813d0000000404200039000000000141034f000000000101043b001400000001001d0000025e0010009c000001110000213d001300240020003d000000140100002900000060011000c90000001301100029000000000031004b000001110000213d0000000001000415000100000001001d000000400100043d001100000001001d000002760010009c000000320000813d00000011030000290000006001300039000000400010043f0000000202000039000000000323043600000000020000310000000102200367000d00000003001d000000002402043c0000000003430436000000000013004b000000cd0000c13d000000140100002900000005091002100000003f019000390004025f0010019b000000400800043d0000000401800029000000000081004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f0000001401000029000000000a180436000000000001004b001700000008001d0000058a0000c13d0000000001000415000000010110006900000000010000020000002002000039000000400100043d000000000321043600000000020804330000000000230435000000400410003900000005032002100000000003430019000000000002004b000008d30000c13d0000000002130049000001960000013d0000000001000416000000000001004b000001110000c13d0000000001000412002400000001001d002300000000003d000080050100003900000044030000390000000004000415000000240440008a00000005044002100000025c02000041093a09170000040f0000025301100197000000800010043f0000025d010000410000093b0001042e000000640030008c000001110000413d0000000004000416000000000004004b000001110000c13d0000000404100370000000000404043b000002530040009c000001110000213d0000002404100370000000000404043b000002530040009c000001130000a13d00000000010000190000093c000104300000004404100370000000000404043b0000025e0040009c000001110000213d0000002305400039000000000035004b000001110000813d0000000405400039000000000151034f000000000101043b001700000001001d0000025e0010009c000001110000213d001600240040003d000000170100002900000060011000c90000001601100029000000000031004b000001110000213d000000e00c0000390000004000c0043f0000000201000039000000800010043f000000a001000039000000002302043c0000000001310436000000e00010008c0000012b0000c13d000000170100002900000005081002100000003f018000390000025f01100197000d00000001001d000002600010009c000000320000213d0000000d03000029000000e001300039000000400010043f0000001702000029000000e00020043f000000000002004b000002850000c13d00000020020000390000000002210436000000e00300043d0000000000320435000000400410003900000005023002100000000002420019000000000003004b000001950000613d000000a00500003900000000060000190000014c0000013d0000000106600039000000000036004b000001950000813d0000000007120049000000400770008a0000000004740436000000200cc0003900000000070c043300000000980704340000025308800197000000000882043600000000090904330000000000980435000000400870003900000000080804330000004009200039000000000089043500000060087000390000000008080433000000ff0880018f000000600920003900000000008904350000008007700039000000000707043300000080082000390000000000580435000000a00920003900000000080704330000000000890435000000c002200039000000000008004b000001490000613d00000000090000190000002007700039000000000a07043300000000ba0a0434000002530aa00197000000000aa20436000000000b0b04330000000000ba043500000040022000390000000109900039000000000089004b0000016a0000413d000001490000013d0000008001100039000000400010043f000000800060043f0000001f0130018f000000000003004b000001820000613d000000a003300039000000a004000039000000002502043c0000000004540436000000000034004b0000017e0000c13d000000000001004b000000000006004b0000019e0000c13d000000400100043d00000020020000390000000002210436000000800300043d00000000003204350000004002100039000000000003004b000001950000613d000000800400003900000000050000190000002004400039000000000604043300000000026204360000000105500039000000000035004b0000018f0000413d0000000002120049000002500020009c00000250020080410000006002200210000002500010009c00000250010080410000004001100210000000000112019f0000093b0001042e0000000005000019001c00000006001d000001a60000013d000000800200043d0000001e05000029000000000052004b0000027e0000213d000008cc0000013d00000007015002100000001d011000290000000102100367000000000702043b000002530070009c000001110000213d00000040011000390000000102100367000000000202043b000002530020009c000001110000213d000000200310008a000000010330036700000020011000390000000101100367000000000101043b000000000303043b000000ff0030008c000001110000213d000000000003004b0000020a0000613d000000010030008c000001d50000613d000000020030008c000002810000c13d001e00000005001d0000025301200197000002620010009c000001c50000613d000000000001004b000002490000c13d0000026301000041000000000010044300000004007004430000000001000414000002500010009c0000025001008041000000c00110021000000264011001c70000800a02000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001c060000290000001e050000290000027b0000013d001e00000005001d000000400400043d001b00000004001d000000240340003900000000001304350000027401000041000000000014043500000004014000390000000000710435000002500040009c0000025001000041000000000104401900000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000268011001c7093a09350000040f0000001b0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000001f70000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000001f30000c13d0000001f05500190000002040000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000000010000190000001c06000029000001a10000613d0000000001090433000001a10000013d001b00000007001d001e00000005001d000000400400043d001a00000004001d0000027503000041000000000034043500000004034000390000000000130435000002500040009c0000025001000041000000000104401900000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000266011001c7093a09350000040f0000001a0900002900000060031002700000025005300197000000200050008c0000002005008039000000200450019000000000034900190000022b0000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000002270000c13d0000001f05500190000002380000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000000010000190000001c060000290000001b03000029000002410000613d0000000002090433000002530020009c0000000001000019000000000102a019000000800200043d0000001e05000029000000000052004b000008cc0000a13d000000000031004b000000000100003900000001010060390000027e0000013d000000400300043d001b00000003001d0000026501000041000000000013043500000004013000390000000000710435000002500030009c0000025001000041000000000103401900000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000266011001c7093a09350000040f0000001b0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000002680000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000002640000c13d0000001f05500190000002750000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000000010000190000001c060000290000001e050000290000027b0000613d0000000001090433000000800200043d000000000052004b000008cc0000a13d0000000502500210000000a00220003900000000001204350000000105500039000000000065004b000001a60000413d000001850000013d000002610030009c000000320000213d00000060020000390000000003000019000000a005100039000000400050043f000000800510003900000000002504350000006005100039000000000005043500000040051000390000000000050435000000200510003900000000000504350000000000010435000001000530003900000000001504350000002003300039000000000083004b0000029d0000813d000000400100043d000002720010009c000002890000a13d000000320000013d000c00640040003d0000000002000019000e00000008001d001200000002001d00000060022000c900000016012000290000000101100367000000000101043b001a00000001001d000002530010009c000001110000213d001e00000002001d000000e00100043d000000120010006c000008cc0000a13d000000120100002900000005011002100000010001100039001000000001001d00000000010104330000001a02000029000000000021043500000004010000390000000101100367000000000101043b0000025302200197000002620020009c001400000002001d000002bc0000613d000000000002004b000002cc0000c13d0000026302000041000000000020044300000004001004430000000001000414000002500010009c0000025001008041000000c00110021000000264011001c70000800a02000039093a09350000040f0000000100200190000008d20000613d000000000101043b000000e00c0000390000000e08000029000002ff0000013d000000400300043d001d00000003001d0000026502000041000000000023043500000004023000390000000000120435000002500030009c0000025001000041000000000103401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000266011001c70000001a02000029093a09350000040f0000001d0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000002ec0000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b000002e80000c13d0000001f05500190000002f90000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000e00c0000390000000e08000029000002ff0000613d0000000001090433000000e00200043d000000120020006c000008cc0000a13d00000010020000290000000002020433000000200220003900000000001204350000001402000029000000000002004b000000010100008a000003460000613d000002620020009c000003460000613d00000001010003670000000402100370000000000202043b0000002401100370000000000101043b000000400400043d001d00000004001d000000240340003900000000001304350000026701000041000000000014043500000004014000390000000000210435000002500040009c0000025001000041000000000104401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000268011001c70000001a02000029093a09350000040f0000001d0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000003330000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b0000032f0000c13d0000001f05500190000003400000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000e00c0000390000000e08000029000003460000613d0000000001090433000000e00200043d000000120020006c000008cc0000a13d0000001002000029000000000202043300000040022000390000000000120435000000140000006b0000001201000039000003880000613d0000001401000029000002620010009c0000001201000039000003880000613d000000400200043d001d00000002001d00000269010000410000000000120435000002500020009c0000025001000041000000000102401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f0000026a011001c70000001a02000029093a09350000040f0000001d0900002900000060031002700000025005300197000000200050008c000000200500803900000020045001900000000003490019000003720000613d000000000601034f0000000007090019000000006806043c0000000007870436000000000037004b0000036e0000c13d0000001f055001900000037f0000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000001002001900000000001000019000000e00c0000390000000e08000029000003880000613d00000000020904330000002f0020008c0000000001000019000000000102a019000000e00200043d000000120020006c000008cc0000a13d0000001002000029000000000202043300000060022000390000000000120435000000e00100043d000000120010006c000008cc0000a13d0000001001000029000000000101043300000060011000390000000001010433000000ff0110018f0000004d0010008c000009100000213d000000000001004b0000000104000039000003a40000613d0000000a02000039000000010010019000000000032200a9000000010200603900000000044200a9000000010110027200000000020300190000039d0000c13d001500000004001d000000400200043d0000000d01200029001c00000002001d000000000021004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f00000017010000290000001c020000290000000001120436001d00000001001d0000000001000019000000400200043d0000026b0020009c000000320000213d0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000001d0310002900000000002304350000002001100039000000000081004b000003b50000413d0000001e02000029000f000c0020002d000000140000006b00000000010000390000000101006039001100000001001d000000000900001900000060019000c900000016011000290000000101100367000000000301043b000002530030009c000001110000213d0000001c010000290000000001010433000000000091004b000008cc0000a13d00000005019002100000001d01100029001b00000001001d000000000101043300000000003104350000001a0130014f0000025300100198000004f40000613d000000000003004b001900000009001d001e00000003001d000003e40000613d0000000002000415000000220220008a0000000502200210002200000000003d000003fd0000013d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001a0110014f0000000002000415000000210220008a00000005022002100000025300100198002100000000003d002100010000603d000000e00c0000390000001909000029000004f40000613d001800000002001d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001e03000029000000000131013f0000025300100198000004280000613d00000018010000290000000501100270000000000100003f000000140000006b0000001a01000029000004300000c13d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001e03000029000004300000013d00000018010000290000000501100270000000110100002f000000140000006b0000001a01000029000000e00c0000390000001909000029000004f40000613d001800000001001d000000000003004b000004420000c13d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000301043b001e00000003001d0000025c01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b00000253001001980000001e03000029000004fa0000613d000000800100043d000000000001004b000008cc0000613d00000018020000290000025302200197000000a00020043f000000010010008c000008cc0000613d0000025301300197000000c00010043f000000400300043d0000002401300039000000400200003900000000002104350000026d0100004100000000001304350000000401300039000000150200002900000000002104350000004402300039000000800100043d00000000001204350000006405300039000000000001004b001e00000003001d000004790000613d0000000002000019000000800300003900000020033000390000000004030433000002530440019700000000054504360000000102200039000000000012004b000004720000413d001800000005001d0000025c01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d0000001e030000290000001802300069000002500020009c00000250020080410000006002200210000002500030009c00000250030080410000004003300210000000000232019f000000000301043b0000000001000414000002500010009c0000025001008041000000c001100210000000000121019f0000025302300197093a09350000040f00000001002001900000000002000019000000e00c0000390000001909000029000005710000613d0000006002100270000002500220019700000252042001980000001e0a00002900000000034a0019000004ab0000613d000000000501034f00000000060a0019000000005705043c0000000006760436000000000036004b000004a70000c13d0000001f05200190000004b80000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000001f0120003900000251031001970000000001a30019000000000031004b000000000300003900000001030040390000025e0010009c000000320000213d0000000100300190000000320000c13d000000400010043f000000200020008c000001110000413d00000000040a04330000025e0040009c000001110000213d0000000003a200190000000002a400190000001f04200039000000000034004b00000000050000190000026e050080410000026e044001970000026e06300197000000000764013f000000000064004b00000000040000190000026e040040410000026e0070009c000000000405c019000000000004004b000001110000c13d00000000240204340000025e0040009c000000320000213d00000005054002100000003f065000390000025f0660019700000000061600190000025e0060009c000000320000213d000000400060043f00000000004104350000000005250019000000000035004b000001110000213d000000000052004b000004ef0000813d0000000003010019000000200330003900000000240204340000000000430435000000000052004b000004e90000413d0000000004010433000000020040008c000008cc0000413d00000040011000390000000002010433000005710000013d0000001c010000290000000001010433000000000091004b0000001502000029000005750000213d000008cc0000013d0000025c01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000025300100198000000e00c00003900000019090000290000001e04000029000005790000613d0000000f010000290000000101100367000000000101043b0000026f0010009c000001110000213d000000400500043d00000064025000390000001503000029000000000032043500000044025000390000000000120435000002530140019700000024025000390000000000120435000002700100004100000000001504350000001801000029000002530110019700000004025000390000000000120435001300000005001d000000840150003900000000000104350000025c01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000201043b0000001301000029000002500010009c000002500100804100000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000271011001c70000025302200197093a09300000040f00000060031002700000025003300197000000200030008c000000200400003900000000040340190000002006400190000000130a00002900000000056a0019000005510000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b0000054d0000c13d0000001f07400190000000e00c0000390000055f0000613d000000000161034f0000000306700210000000000705043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f0000000000150435000000010020019000000000020000190000001909000029000005710000613d0000001f01400039000000600210018f0000000001a20019000000000021004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f000000200030008c000001110000413d00000000020a04330000001c010000290000000001010433000000000091004b000008cc0000a13d0000001b010000290000000001010433000000200110003900000000002104350000000109900039000000170090006c000003c90000413d000000e00100043d000000120010006c000008cc0000a13d0000001001000029000000000101043300000080011000390000001c02000029000000000021043500000012020000290000000102200039000000170020006c000002a00000413d000000400100043d0000013d0000013d00000060010000390000000002000019000000400300043d000002720030009c000000320000213d000000a004300039000000400040043f0000008004300039000000000014043500000060043000390000000000140435000000400430003900000000000404350000002004300039000000000004043500000000000304350000000004a2001900000000003404350000002002200039000000000092004b0000058c0000413d00000005010000290002001f001001930000001102000029000c00400020003d0000003f011000390003025f0010019b0000000002000019000900000009001d00160000000a001d000b00000002001d00000060012000c90000001301100029001500000001001d0000000101100367000000000101043b001d00000001001d000002530010009c000001110000213d00000000010804330000000b0010006c000008cc0000a13d0000000b0100002900000005011002100000000001a10019000700000001001d00000000010104330000001d0200002900000000002104350000025301200197000002620010009c001800000001001d000005c10000613d000000000001004b000005d30000c13d000002630100004100000000001004430000000a0100002900000004001004430000000001000414000002500010009c0000025001008041000000c00110021000000264011001c70000800a02000039093a09350000040f0000000100200190000008d20000613d000000000101043b00000017080000290000000909000029000000160a000029000006080000013d000000400300043d001e00000003001d0000026501000041000000000013043500000004013000390000000a020000290000000000210435000002500030009c0000025001000041000000000103401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000266011001c70000001d02000029093a09350000040f0000001e0b00002900000060031002700000025005300197000000200050008c0000002005008039000000200450019000000000034b0019000005f40000613d000000000601034f00000000070b0019000000006806043c0000000007870436000000000037004b000005f00000c13d0000001f055001900000001708000029000006020000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000010020019000000000010000190000000909000029000000160a000029000006080000613d00000000010b043300000000020804330000000b0020006c000008cc0000a13d0000000702000029000000000202043300000020022000390000000000120435000000400600043d0000000301600029000000000061004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f000000100100002900000000071604360000000101000367000000050000006b000006250000613d000000050270002900000000031003680000000004070019000000003503043c0000000004540436000000000024004b000006210000c13d000000020000006b000000100000006b000006800000613d0000000004000019001a00000006001d001900000007001d00000005054002100000000f02500029000000000221034f000000000302043b000002530030009c000001110000213d0000001802000029000000000002004b000006730000613d000002620020009c000000010200008a000006780000613d001c00000005001d001e00000004001d000000400400043d001b00000004001d000000240140003900000000003104350000026701000041000000000014043500000004014000390000000a020000290000000000210435000002500040009c0000025001000041000000000104401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000268011001c70000001d02000029093a09350000040f0000001b0b00002900000060031002700000025005300197000000200050008c0000002005008039000000200450019000000000034b00190000065c0000613d000000000601034f00000000070b0019000000006806043c0000000007870436000000000037004b000006580000c13d0000001f05500190000006690000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000000101000367000000010020019000000017080000290000000909000029000000160a0000290000001a060000290000001907000029000006750000613d00000000020b0433000006760000013d000000010200008a000006780000013d00000000020000190000001e040000290000001c050000290000000003060433000000000043004b000008cc0000a13d000000000375001900000000002304350000000104400039000000100040006c0000062b0000413d00000000010804330000000b0010006c000008cc0000a13d0000000701000029000000000101043300000060011000390000000000610435000000180000006b0000001201000039000006c30000613d0000001801000029000002620010009c0000001201000039000006c30000613d000000400200043d001e00000002001d00000269010000410000000000120435000002500020009c0000025001000041000000000102401900000040011002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f0000026a011001c70000001d02000029093a09350000040f0000001e0b00002900000060031002700000025005300197000000200050008c0000002005008039000000200450019000000000034b0019000006ac0000613d000000000601034f00000000070b0019000000006806043c0000000007870436000000000037004b000006a80000c13d0000001f05500190000006b90000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000000100200190000000000100001900000017080000290000000909000029000000160a000029000006c30000613d00000000020b04330000002f0020008c0000000001000019000000000102a01900000000020804330000000b0020006c000008cc0000a13d000000070200002900000000020204330000004002200039000000000012043500000000010804330000000b0010006c000008cc0000a13d0000000701000029000000000101043300000040011000390000000001010433000000ff0110018f0000004e0010008c000009100000813d000000000001004b0000000104000039000006df0000613d0000000a02000039000000010010019000000000032200a9000000010200603900000000044200a900000001011002720000000002030019000006d80000c13d001200000004001d000000400200043d0000000401200029001b00000002001d000000000021004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f00000014010000290000001b020000290000000001120436001c00000001001d0000000001000019000000400200043d0000026b0020009c000000320000213d0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000001c0310002900000000002304350000002001100039000000000091004b000006f00000413d0000001501000029000600400010003d000000180000006b00000000010000390000000101006039000800000001001d000000000b0000190000006001b000c900000013011000290000000101100367000000000301043b000002530030009c000001110000213d0000001b0100002900000000010104330000000000b1004b000008cc0000a13d0000000501b002100000001c01100029001a00000001001d000000000101043300000000003104350000001d0130014f0000025300100198000008350000613d000000000003004b00190000000b001d001e00000003001d0000071f0000613d0000000002000415000000260220008a0000000502200210002600000000003d000007390000013d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001d0110014f0000000002000415000000250220008a00000005022002100000025300100198002500000000003d002500010000603d0000001708000029000000160a000029000000190b000029000008350000613d001500000002001d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001e03000029000000000131013f0000025300100198000007640000613d00000015010000290000000501100270000000000100003f000000180000006b0000001d010000290000076d0000c13d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b0000001e030000290000076d0000013d00000015010000290000000501100270000000080100002f000000180000006b0000001d010000290000001708000029000000160a000029000000190b000029000008350000613d001500000001001d000000000003004b0000077f0000c13d0000025c0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000301043b001e00000003001d0000025c01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b000002530010019800000011010000290000001e040000290000083b0000613d0000000001010433000000000001004b000008cc0000613d000000150200002900000253022001970000000d030000290000000000230435000000010010008c000008cc0000613d00000253014001970000000c020000290000000000120435000000400400043d0000002401400039000000400200003900000000002104350000026d01000041000000000014043500000004014000390000001202000029000000000021043500000011030000290000000001030433000000440240003900000000001204350000006405400039000000000001004b001e00000004001d000007b90000613d000000000200001900000020033000390000000004030433000002530440019700000000054504360000000102200039000000000012004b000007b20000413d001500000005001d0000025c01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d0000001e030000290000001502300069000002500020009c00000250020080410000006002200210000002500030009c00000250030080410000004003300210000000000232019f000000000301043b0000000001000414000002500010009c0000025001008041000000c001100210000000000121019f0000025302300197093a09350000040f000000010020019000000000020000190000001708000029000000160a000029000000190b000029000008b40000613d0000006002100270000002500220019700000252042001980000001e0c00002900000000034c0019000007ec0000613d000000000501034f00000000060c0019000000005705043c0000000006760436000000000036004b000007e80000c13d0000001f05200190000007f90000613d000000000141034f0000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000001f0120003900000251031001970000000001c30019000000000031004b000000000300003900000001030040390000025e0010009c000000320000213d0000000100300190000000320000c13d000000400010043f000000200020008c000001110000413d00000000040c04330000025e0040009c000001110000213d0000000003c200190000000002c400190000001f04200039000000000034004b00000000050000190000026e050080410000026e044001970000026e06300197000000000764013f000000000064004b00000000040000190000026e040040410000026e0070009c000000000405c019000000000004004b000001110000c13d00000000240204340000025e0040009c000000320000213d00000005054002100000003f065000390000025f0660019700000000061600190000025e0060009c000000320000213d000000400060043f00000000004104350000000005250019000000000035004b000001110000213d000000000052004b000008300000813d0000000003010019000000200330003900000000240204340000000000430435000000000052004b0000082a0000413d0000000004010433000000020040008c000008cc0000413d00000040011000390000000002010433000008b40000013d0000001b0100002900000000010104330000000000b1004b0000001202000029000008b80000213d000008cc0000013d0000025c01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000101043b00000253001001980000001708000029000000160a000029000000190b0000290000001e04000029000008bc0000613d00000006010000290000000101100367000000000101043b0000026f0010009c000001110000213d000000400500043d00000064025000390000001203000029000000000032043500000044025000390000000000120435000002530140019700000024025000390000000000120435000002700100004100000000001504350000001501000029000002530110019700000004025000390000000000120435000e00000005001d000000840150003900000000000104350000025c01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000002500010009c0000025001008041000000c0011002100000026c011001c70000800502000039093a09350000040f0000000100200190000008d20000613d000000000201043b0000000e01000029000002500010009c000002500100804100000040011002100000000003000414000002500030009c0000025003008041000000c003300210000000000113019f00000271011001c70000025302200197093a09300000040f00000060031002700000025003300197000000200030008c0000002004000039000000000403401900000020064001900000000e0c00002900000000056c0019000008930000613d000000000701034f00000000080c0019000000007907043c0000000008980436000000000058004b0000088f0000c13d0000001f074001900000001708000029000000160a000029000000190b000029000008a30000613d000000000161034f0000000306700210000000000705043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f000000000015043500000001002001900000000002000019000008b40000613d0000001f01400039000000600210018f0000000001c20019000000000021004b000000000200003900000001020040390000025e0010009c000000320000213d0000000100200190000000320000c13d000000400010043f000000200030008c000001110000413d00000000020c04330000001b0100002900000000010104330000000000b1004b000008cc0000a13d0000001a01000029000000000101043300000020011000390000000000210435000000010bb000390000001400b0006c000007040000413d00000000010804330000000b0010006c000008cc0000a13d0000000701000029000000000101043300000080011000390000001b0200002900000000002104350000000b020000290000000102200039000000140020006c000005a80000413d000000e40000013d0000027701000041000000000010043f0000003201000039000000040010043f00000266010000410000093c00010430000000000001042f000000a0050000390000000006000019000000170d000029000008da0000013d0000000106600039000000000026004b000000f10000813d0000000007130049000000400770008a0000000004740436000000200dd0003900000000070d04330000000098070434000002530880019700000000088304360000000009090433000000000098043500000040087000390000000008080433000000ff0880018f000000400930003900000000008904350000006008700039000000000908043300000060083000390000000000580435000000a008300039000000000a0904330000000000a80435000000c00830003900000000000a004b000008fa0000613d000000000b0000190000002009900039000000000c0904330000000008c80436000000010bb000390000000000ab004b000008f40000413d0000008007700039000000000707043300000000093800490000008003300039000000000093043500000000090704330000000003980436000000000009004b000008d70000613d00000000080000190000002007700039000000000a07043300000000ba0a0434000002530aa00197000000000aa30436000000000b0b04330000000000ba043500000040033000390000000108800039000000000098004b000009040000413d000008d70000013d0000027701000041000000000010043f0000001101000039000000040010043f00000266010000410000093c00010430000000000001042f00000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b0000091a0000413d000002500030009c000002500300804100000060013002100000000002000414000002500020009c0000025002008041000000c002200210000000000112019f00000278011001c70000000002050019093a09350000040f00000001002001900000092f0000613d000000000101043b000000000001042d000000000001042f00000933002104210000000102000039000000000001042d0000000002000019000000000001042d00000938002104230000000102000039000000000001042d0000000002000019000000000001042d0000093a000004320000093b0001042e0000093c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000020000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000000000ad5c464700000000000000000000000000000000000000000000000000000000ad5c464800000000000000000000000000000000000000000000000000000000ca61336b00000000000000000000000000000000000000000000000000000000eda0228f0000000000000000000000000000000000000000000000000000000019e5bd980000000000000000000000000000000000000000000000000000000041ea8f92000000000000000000000000000000000000000000000000000000009c645490310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff1f000000000000000000000000000000000000000000000000fffffffffffffe7f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39020000020000000000000000000000000000002400000000000000000000000070a08231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf0200000200000000000000000000000000000044000000000000000000000000d06ca61f0000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffff7729d430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f000000000000000000000000000000000000000000000000ffffffffffffff7f00fdd58e000000000000000000000000000000000000000000000000000000006352211e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa04e487b710000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000151420f7d60dd9eaf2312cfd4e044877df6607c5d54bb7195278acf4de40ea1e
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c280900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : weth (address): 0x3439153EB7AF838Ad19d56E1571FBD09333C2809
Arg [1] : pancakeRouter (address): 0x0000000000000000000000000000000000000000
Arg [2] : uniswapQuoter (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.