More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 748 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20217448 | 65 days ago | IN | 0 ETH | 0.00020309 | ||||
Transfer | 20217442 | 65 days ago | IN | 0 ETH | 0.00047314 | ||||
Transfer | 20217257 | 65 days ago | IN | 0 ETH | 0.00032116 | ||||
Approve | 20199925 | 68 days ago | IN | 0 ETH | 0.00007098 | ||||
Wrap | 20199918 | 68 days ago | IN | 0 ETH | 0.00245895 | ||||
Transfer* | 20199892 | 68 days ago | IN | 0 ETH | 0.00004214 | ||||
Claim | 18604484 | 291 days ago | IN | 0 ETH | 0.00338278 | ||||
Approve | 17740810 | 412 days ago | IN | 0 ETH | 0.00091788 | ||||
Approve | 16621260 | 570 days ago | IN | 0 ETH | 0.00157628 | ||||
Claim | 16621253 | 570 days ago | IN | 0 ETH | 0.0061257 | ||||
Claim | 16474816 | 590 days ago | IN | 0 ETH | 0.00241933 | ||||
Approve | 16460462 | 592 days ago | IN | 0 ETH | 0.00067909 | ||||
Wrap | 16460454 | 592 days ago | IN | 0 ETH | 0.00392701 | ||||
Claim | 16285465 | 617 days ago | IN | 0 ETH | 0.00318364 | ||||
Claim | 16256581 | 621 days ago | IN | 0 ETH | 0.00233265 | ||||
Approve | 16256280 | 621 days ago | IN | 0 ETH | 0.00056592 | ||||
Claim | 16251590 | 622 days ago | IN | 0 ETH | 0.00208433 | ||||
Wrap | 16166027 | 634 days ago | IN | 0 ETH | 0.007926 | ||||
Approve | 16097059 | 643 days ago | IN | 0 ETH | 0.00056196 | ||||
Claim | 16088633 | 644 days ago | IN | 0 ETH | 0.00213464 | ||||
Unwrap | 15962755 | 662 days ago | IN | 0 ETH | 0.00414585 | ||||
Claim | 15909327 | 669 days ago | IN | 0 ETH | 0.00157841 | ||||
Claim | 15819567 | 682 days ago | IN | 0 ETH | 0.00348245 | ||||
Claim For | 15817188 | 682 days ago | IN | 0 ETH | 0.00196877 | ||||
Claim | 15816799 | 682 days ago | IN | 0 ETH | 0.00167981 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
13781752 | 999 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xcE113e6e...bfA4F58Ca The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
WrappedToken
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-11 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; interface Callable { function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool); } interface Bridge { function depositFor(address _user, address _rootToken, bytes calldata _depositData) external; } interface Router { function WETH() external pure returns (address); function factory() external pure returns (address); } interface Factory { function createPair(address, address) external returns (address); } interface Pair { function token0() external view returns (address); function totalSupply() external view returns (uint256); function balanceOf(address) external view returns (uint256); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); } interface WhalesGame { function krillAddress() external view returns (address); function stakingRewardsAddress() external view returns (address); function getIsWhale(uint256) external view returns (bool); function balanceOf(address) external view returns (uint256); function ownerOf(uint256) external view returns (address); function fishermenOf(address) external view returns (uint256); function whalesOf(address) external view returns (uint256); function isApprovedForAll(address, address) external view returns (bool); function transferFrom(address, address, uint256) external; function claim() external; } interface KRILL { function allowance(address, address) external view returns (uint256); function balanceOf(address) external view returns (uint256); function approve(address, uint256) external returns (bool); function transfer(address, uint256) external returns (bool); function transferFrom(address, address, uint256) external returns (bool); function burn(uint256) external; } contract WrappedToken { uint256 constant private UINT_MAX = type(uint256).max; uint256 constant private FLOAT_SCALAR = 2**64; address constant private POLYGON_ERC20_BRIDGE = 0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf; uint8 constant public decimals = 18; struct User { uint256 balance; mapping(address => uint256) allowance; int256 scaledPayout; } struct Info { uint256 totalSupply; uint256 scaledRewardsPerToken; uint256 pendingRewards; mapping(address => User) users; mapping(address => bool) rewardBurn; address burnDestination; address owner; bool isBridged; Bridge bridge; Router router; Pair pair; bool weth0; bool isWhale; WhalesGame wg; KRILL krill; } Info private info; event Transfer(address indexed from, address indexed to, uint256 tokens); event Approval(address indexed owner, address indexed spender, uint256 tokens); event Claim(address indexed user, uint256 amount); event Reward(uint256 amount); modifier _onlyOwner() { require(msg.sender == owner()); _; } constructor(WhalesGame _wg, bool _isWhale) { info.isBridged = false; info.bridge = Bridge(0xA0c68C638235ee32657e8f720a23ceC1bFc77C77); info.router = Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); info.pair = Pair(Factory(info.router.factory()).createPair(info.router.WETH(), address(this))); info.weth0 = info.pair.token0() == info.router.WETH(); info.wg = _wg; info.krill = KRILL(_wg.krillAddress()); info.isWhale = _isWhale; info.owner = tx.origin; info.rewardBurn[address(this)] = true; info.rewardBurn[pairAddress()] = true; info.rewardBurn[POLYGON_ERC20_BRIDGE] = true; info.krill.approve(POLYGON_ERC20_BRIDGE, UINT_MAX); info.burnDestination = address(0x0); } function setOwner(address _owner) external _onlyOwner { info.owner = _owner; } function setIsBridged(bool _isBridged) external _onlyOwner { info.isBridged = _isBridged; } function setRewardBurn(address _user, bool _shouldBurn) external _onlyOwner { uint32 _size; assembly { _size := extcodesize(_user) } require(_size > 0); info.rewardBurn[_user] = _shouldBurn; } function setBurnDestination(address _destination) external _onlyOwner { info.burnDestination = _destination; } function disburse(uint256 _amount) external { if (_amount > 0) { address _this = address(this); uint256 _balanceBefore = info.krill.balanceOf(_this); info.krill.transferFrom(msg.sender, _this, _amount); _disburse(info.krill.balanceOf(_this) - _balanceBefore); } } function wrap(uint256[] calldata _tokenIds) external { uint256 _count = _tokenIds.length; require(_count > 0); _update(); for (uint256 i = 0; i < _count; i++) { require(info.wg.getIsWhale(_tokenIds[i]) == info.isWhale); info.wg.transferFrom(msg.sender, address(this), _tokenIds[i]); } uint256 _amount = _count * 1e18; info.totalSupply += _amount; info.users[msg.sender].balance += _amount; info.users[msg.sender].scaledPayout += int256(_amount * info.scaledRewardsPerToken); emit Transfer(address(0x0), msg.sender, _amount); } function unwrap(uint256[] calldata _tokenIds) external returns (uint256 totalUnwrapped) { uint256 _count = _tokenIds.length; require(balanceOf(msg.sender) >= _count * 1e18); _update(); totalUnwrapped = 0; for (uint256 i = 0; i < _count; i++) { if (info.wg.ownerOf(_tokenIds[i]) == address(this)) { require(info.wg.getIsWhale(_tokenIds[i]) == info.isWhale); info.wg.transferFrom(address(this), msg.sender, _tokenIds[i]); totalUnwrapped++; } } require(totalUnwrapped > 0); uint256 _cost = totalUnwrapped * 1e18; info.totalSupply -= _cost; info.users[msg.sender].balance -= _cost; info.users[msg.sender].scaledPayout -= int256(_cost * info.scaledRewardsPerToken); emit Transfer(msg.sender, address(0x0), _cost); } function claim() external { claimFor(msg.sender); } function claimFor(address _user) public { _update(); uint256 _rewards = rewardsOf(_user); if (_rewards > 0) { info.users[_user].scaledPayout += int256(_rewards * FLOAT_SCALAR); if (rewardBurn(_user)) { address _destination = burnDestination(); if (_destination == address(0x0)) { info.krill.burn(_rewards); } else { if (isBridged()) { info.bridge.depositFor(_destination, address(info.krill), abi.encodePacked(_rewards)); } else { info.krill.transfer(_destination, _rewards); } } } else { info.krill.transfer(_user, _rewards); } emit Claim(_user, _rewards); } } function transfer(address _to, uint256 _tokens) external returns (bool) { return _transfer(msg.sender, _to, _tokens); } function approve(address _spender, uint256 _tokens) external returns (bool) { info.users[msg.sender].allowance[_spender] = _tokens; emit Approval(msg.sender, _spender, _tokens); return true; } function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) { uint256 _allowance = allowance(_from, msg.sender); require(_allowance >= _tokens); if (_allowance != UINT_MAX) { info.users[_from].allowance[msg.sender] -= _tokens; } return _transfer(_from, _to, _tokens); } function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) { _transfer(msg.sender, _to, _tokens); uint32 _size; assembly { _size := extcodesize(_to) } if (_size > 0) { require(Callable(_to).tokenCallback(msg.sender, _tokens, _data)); } return true; } function name() external view returns (string memory) { return info.isWhale ? 'Wrapped Whales' : 'Wrapped Fishermen'; } function symbol() external view returns (string memory) { return info.isWhale ? 'wWH' : 'wFM'; } function owner() public view returns (address) { return info.owner; } function isBridged() public view returns (bool) { return info.isBridged; } function burnDestination() public view returns (address) { return info.burnDestination; } function rewardBurn(address _user) public view returns (bool) { return info.rewardBurn[_user]; } function pairAddress() public view returns (address) { return address(info.pair); } function totalSupply() public view returns (uint256) { return info.totalSupply; } function balanceOf(address _user) public view returns (uint256) { return info.users[_user].balance; } function rewardsOf(address _user) public view returns (uint256) { return uint256(int256(info.scaledRewardsPerToken * balanceOf(_user)) - info.users[_user].scaledPayout) / FLOAT_SCALAR; } function allowance(address _user, address _spender) public view returns (uint256) { return info.users[_user].allowance[_spender]; } function allInfoFor(address _user) external view returns (uint256 totalTokens, uint256 totalLPTokens, uint256 wethReserve, uint256 wrappedReserve, uint256 userTokens, bool userApproved, uint256 userBalance, uint256 userRewards, uint256 userLPBalance, uint256 contractFishermen, uint256 contractWhales) { totalTokens = totalSupply(); totalLPTokens = info.pair.totalSupply(); (uint256 _res0, uint256 _res1, ) = info.pair.getReserves(); wethReserve = info.weth0 ? _res0 : _res1; wrappedReserve = info.weth0 ? _res1 : _res0; userTokens = info.wg.balanceOf(_user); userApproved = info.wg.isApprovedForAll(_user, address(this)); userBalance = balanceOf(_user); userRewards = rewardsOf(_user); userLPBalance = info.pair.balanceOf(_user); contractFishermen = info.wg.fishermenOf(address(this)); contractWhales = info.wg.whalesOf(address(this)); } function _transfer(address _from, address _to, uint256 _tokens) internal returns (bool) { require(balanceOf(_from) >= _tokens); _update(); info.users[_from].balance -= _tokens; info.users[_from].scaledPayout -= int256(_tokens * info.scaledRewardsPerToken); info.users[_to].balance += _tokens; info.users[_to].scaledPayout += int256(_tokens * info.scaledRewardsPerToken); emit Transfer(_from, _to, _tokens); return true; } function _update() internal { address _this = address(this); uint256 _balanceBefore = info.krill.balanceOf(_this); info.wg.claim(); _disburse(info.krill.balanceOf(_this) - _balanceBefore); } function _disburse(uint256 _amount) internal { if (_amount > 0) { if (totalSupply() == 0) { info.pendingRewards += _amount; } else { info.scaledRewardsPerToken += (_amount + info.pendingRewards) * FLOAT_SCALAR / totalSupply(); info.pendingRewards = 0; } emit Reward(_amount); } } } contract Islands { uint256 constant private UINT_MAX = type(uint256).max; uint256 constant private POLYGON_ISLANDS = 1000; uint256 constant private MINTABLE_ISLANDS = 1000; uint256 constant private MAX_ISLANDS = POLYGON_ISLANDS + MINTABLE_ISLANDS; // 2k uint256 constant private BASE_KRILL_COST = 1e23; // 100k uint256 constant private KRILL_COST_INCREMENT = 2e21; // 2k string constant public name = "Whales Game Islands"; string constant public symbol = "ISLAND"; uint8 constant public decimals = 18; struct User { uint256 balance; mapping(address => uint256) allowance; } struct Info { uint256 totalSupply; mapping(address => User) users; Router router; Pair pair; WhalesGame wg; KRILL krill; WrappedToken wfm; WrappedToken wwh; address owner; address feeRecipient; bool weth0; uint256 openingTime; } Info private info; event Transfer(address indexed from, address indexed to, uint256 tokens); event Approval(address indexed owner, address indexed spender, uint256 tokens); modifier _onlyOwner() { require(msg.sender == owner()); _; } constructor(WhalesGame _wg, address _booster, uint256 _openingTime) { info.router = Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); info.pair = Pair(Factory(info.router.factory()).createPair(info.router.WETH(), address(this))); info.weth0 = info.pair.token0() == info.router.WETH(); info.wg = _wg; info.krill = KRILL(_wg.krillAddress()); info.wfm = new WrappedToken(_wg, false); info.wwh = new WrappedToken(_wg, true); info.owner = msg.sender; info.feeRecipient = _booster; info.openingTime = _openingTime; uint256 _polygonIslands = POLYGON_ISLANDS * 1e18; info.totalSupply = _polygonIslands; info.users[msg.sender].balance = _polygonIslands; emit Transfer(address(0x0), msg.sender, _polygonIslands); } function setOwner(address _owner) external _onlyOwner { info.owner = _owner; } function setFeeRecipient(address _feeRecipient) external _onlyOwner { info.feeRecipient = _feeRecipient; } function buyIsland(uint256[4] memory _fishermenIds, uint256 _whaleId) external { require(block.timestamp >= info.openingTime); require(totalIslands() < MAX_ISLANDS); require(info.wg.getIsWhale(_whaleId)); info.wg.transferFrom(msg.sender, wrappedWhalesAddress(), _whaleId); require(!info.wg.getIsWhale(_fishermenIds[0])); info.wg.transferFrom(msg.sender, wrappedFishermenAddress(), _fishermenIds[0]); require(!info.wg.getIsWhale(_fishermenIds[1])); info.wg.transferFrom(msg.sender, info.wg.stakingRewardsAddress(), _fishermenIds[1]); require(!info.wg.getIsWhale(_fishermenIds[2])); info.wg.transferFrom(msg.sender, info.wg.stakingRewardsAddress(), _fishermenIds[2]); require(!info.wg.getIsWhale(_fishermenIds[3])); info.wg.transferFrom(msg.sender, feeRecipient(), _fishermenIds[3]); info.krill.transferFrom(msg.sender, feeRecipient(), currentKrillCost()); info.totalSupply += 1e18; info.users[msg.sender].balance += 1e18; emit Transfer(address(0x0), msg.sender, 1e18); } function transfer(address _to, uint256 _tokens) external returns (bool) { return _transfer(msg.sender, _to, _tokens); } function approve(address _spender, uint256 _tokens) external returns (bool) { info.users[msg.sender].allowance[_spender] = _tokens; emit Approval(msg.sender, _spender, _tokens); return true; } function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) { uint256 _allowance = allowance(_from, msg.sender); require(_allowance >= _tokens); if (_allowance != UINT_MAX) { info.users[_from].allowance[msg.sender] -= _tokens; } return _transfer(_from, _to, _tokens); } function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) { _transfer(msg.sender, _to, _tokens); uint32 _size; assembly { _size := extcodesize(_to) } if (_size > 0) { require(Callable(_to).tokenCallback(msg.sender, _tokens, _data)); } return true; } function whalesGameAddress() external view returns (address) { return address(info.wg); } function wrappedFishermenAddress() public view returns (address) { return address(info.wfm); } function wrappedWhalesAddress() public view returns (address) { return address(info.wwh); } function owner() public view returns (address) { return info.owner; } function feeRecipient() public view returns (address) { return info.feeRecipient; } function totalSupply() public view returns (uint256) { return info.totalSupply; } function totalIslands() public view returns (uint256) { return totalSupply() / 1e18; } function currentKrillCost() public view returns (uint256) { return BASE_KRILL_COST + (totalIslands() - POLYGON_ISLANDS) * KRILL_COST_INCREMENT; } function balanceOf(address _user) public view returns (uint256) { return info.users[_user].balance; } function allowance(address _user, address _spender) public view returns (uint256) { return info.users[_user].allowance[_spender]; } function allInfoFor(address _user) external view returns (uint256 openingTime, uint256 totalTokens, uint256 totalLPTokens, uint256 wethReserve, uint256 islandReserve, uint256 userTokens, bool userApproved, uint256 userAllowance, uint256 userKRILL, uint256 userBalance, uint256 userLPBalance) { openingTime = info.openingTime; totalTokens = totalSupply(); totalLPTokens = info.pair.totalSupply(); (uint256 _res0, uint256 _res1, ) = info.pair.getReserves(); wethReserve = info.weth0 ? _res0 : _res1; islandReserve = info.weth0 ? _res1 : _res0; userTokens = info.wg.balanceOf(_user); userApproved = info.wg.isApprovedForAll(_user, address(this)); userAllowance = info.krill.allowance(_user, address(this)); userKRILL = info.krill.balanceOf(_user); userBalance = balanceOf(_user); userLPBalance = info.pair.balanceOf(_user); } function _transfer(address _from, address _to, uint256 _tokens) internal returns (bool) { require(balanceOf(_from) >= _tokens); info.users[_from].balance -= _tokens; info.users[_to].balance += _tokens; emit Transfer(_from, _to, _tokens); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract WhalesGame","name":"_wg","type":"address"},{"internalType":"bool","name":"_isWhale","type":"bool"}],"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":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","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":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokens","type":"uint256"},{"internalType":"uint256","name":"totalLPTokens","type":"uint256"},{"internalType":"uint256","name":"wethReserve","type":"uint256"},{"internalType":"uint256","name":"wrappedReserve","type":"uint256"},{"internalType":"uint256","name":"userTokens","type":"uint256"},{"internalType":"bool","name":"userApproved","type":"bool"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userRewards","type":"uint256"},{"internalType":"uint256","name":"userLPBalance","type":"uint256"},{"internalType":"uint256","name":"contractFishermen","type":"uint256"},{"internalType":"uint256","name":"contractWhales","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","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":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"claimFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"disburse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isBridged","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"rewardBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"rewardsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_destination","type":"address"}],"name":"setBurnDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isBridged","type":"bool"}],"name":"setIsBridged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_shouldBurn","type":"bool"}],"name":"setRewardBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","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":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"unwrap","outputs":[{"internalType":"uint256","name":"totalUnwrapped","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"wrap","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c9bd33b116100de578063a9059cbb11610097578063cc17a5bf11610071578063cc17a5bf146103b8578063dd62ed3e146103cb578063ddeae03314610408578063f10f1b031461041b57600080fd5b8063a9059cbb1461037f578063ae268ca714610392578063bd77ac2c146103a557600080fd5b80635c9bd33b1461030757806363ac2a4c1461031957806370a082311461032c5780638da5cb5b1461035557806395d89b4114610366578063a8b089821461036e57600080fd5b8063313ce5671161014b5780634e71d92d116101255780634e71d92d146102735780634ff9fd661461027b57806350ccb3021461028e57806357f6b812146102a157600080fd5b8063313ce567146102335780634000aea01461024d578063479ba7ae1461026057600080fd5b806306fdde0314610193578063095ea7b3146101b15780630fca9687146101d457806313af4035146101f957806318160ddd1461020e57806323b872dd14610220575b600080fd5b61019b610447565b6040516101a891906118f2565b60405180910390f35b6101c46101bf36600461191a565b6104b0565b60405190151581526020016101a8565b6005546001600160a01b03165b6040516001600160a01b0390911681526020016101a8565b61020c610207366004611946565b61051b565b005b6000545b6040519081526020016101a8565b6101c461022e366004611963565b610554565b61023b601281565b60405160ff90911681526020016101a8565b6101c461025b3660046119a4565b6105e1565b61021261026e366004611946565b610687565b61020c6106d3565b61020c610289366004611a3b565b6106de565b61020c61029c366004611a58565b610713565b6102b46102af366004611946565b610768565b604080519b8c5260208c019a909a52988a01979097526060890195909552608088019390935290151560a087015260c086015260e0850152610100840152610120830152610140820152610160016101a8565b600654600160a01b900460ff166101c4565b610212610327366004611a91565b610b8f565b61021261033a366004611946565b6001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03166101e1565b61019b610ea0565b6009546001600160a01b03166101e1565b6101c461038d36600461191a565b610ef0565b61020c6103a0366004611946565b610f04565b61020c6103b3366004611b06565b610f3d565b61020c6103c6366004611a91565b6110be565b6102126103d9366004611b1f565b6001600160a01b0391821660009081526003602090815260408083209390941682526001909201909152205490565b61020c610416366004611946565b6112ef565b6101c4610429366004611946565b6001600160a01b031660009081526004602052604090205460ff1690565b600954606090600160a81b900460ff1661048757506040805180820190915260118152702bb930b83832b2102334b9b432b936b2b760791b602082015290565b5060408051808201909152600e81526d57726170706564205768616c657360901b602082015290565b3360008181526003602090815260408083206001600160a01b0387168085526001909101835281842086905590518581529293909290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6006546001600160a01b0316331461053257600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831660009081526003602090815260408083203384526001019091528120548281101561058857600080fd5b60001981146105cd576001600160a01b0385166000908152600360209081526040808320338452600101909152812080548592906105c7908490611b63565b90915550505b6105d8858585611596565b95945050505050565b60006105ee338686611596565b50843b63ffffffff81161561067b57604051636be32e7360e01b81526001600160a01b03871690636be32e739061062f903390899089908990600401611b7a565b6020604051808303816000875af115801561064e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106729190611bc2565b61067b57600080fd5b50600195945050505050565b6001600160a01b038116600090815260036020526040812060028101549054600154600160401b92916106b991611bdf565b6106c39190611bfe565b6106cd9190611c3d565b92915050565b6106dc336112ef565b565b6006546001600160a01b031633146106f557600080fd5b60068054911515600160a01b0260ff60a01b19909216919091179055565b6006546001600160a01b0316331461072a57600080fd5b813b63ffffffff811661073c57600080fd5b506001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b600080600080600080600080600080600061078260005490565b600954604080516318160ddd60e01b81529051929d506001600160a01b03909116916318160ddd916004808201926020929091908290030181865afa1580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f39190611c5f565b60095460408051630240bc6b60e21b81529051929c5060009283926001600160a01b031691630902f1ac9160048083019260609291908290030181865afa158015610842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108669190611c94565b506009546001600160701b03928316945091169150600160a01b900460ff1661088f5780610891565b815b600954909b50600160a01b900460ff166108ab57816108ad565b805b99506000600a0160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b815260040161090291906001600160a01b0391909116815260200190565b602060405180830381865afa15801561091f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109439190611c5f565b98506000600a0160009054906101000a90046001600160a01b03166001600160a01b031663e985e9c58f306040518363ffffffff1660e01b81526004016109a09291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa1580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190611bc2565b9750610a028e6001600160a01b031660009081526003602052604090205490565b9650610a0d8e610687565b9550600060090160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b8152600401610a6291906001600160a01b0391909116815260200190565b602060405180830381865afa158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa39190611c5f565b600a546040516379400dc160e01b81523060048201529196506001600160a01b0316906379400dc190602401602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c5f565b600a5460405162c4d0c360e51b81523060048201529195506001600160a01b03169063189a186090602401602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611c5f565b9250505091939597999b90929496989a50565b600081610ba481670de0b6b3a7640000611bdf565b336000908152600360205260409020541015610bbf57600080fd5b610bc76116f0565b6000915060005b81811015610dcb57600a5430906001600160a01b0316636352211e878785818110610bfb57610bfb611ce4565b905060200201356040518263ffffffff1660e01b8152600401610c2091815260200190565b602060405180830381865afa158015610c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c619190611cfa565b6001600160a01b03161415610db957600954600a54600160a81b90910460ff161515906001600160a01b031663a0ced6fd878785818110610ca457610ca4611ce4565b905060200201356040518263ffffffff1660e01b8152600401610cc991815260200190565b602060405180830381865afa158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190611bc2565b151514610d1657600080fd5b600a546001600160a01b03166323b872dd3033888886818110610d3b57610d3b611ce4565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015610d9257600080fd5b505af1158015610da6573d6000803e3d6000fd5b505050508280610db590611d17565b9350505b80610dc381611d17565b915050610bce565b5060008211610dd957600080fd5b6000610ded83670de0b6b3a7640000611bdf565b905080600080016000828254610e039190611b63565b90915550503360009081526003602052604081208054839290610e27908490611b63565b9091555050600154610e399082611bdf565b3360009081526003602052604081206002018054909190610e5b908490611bfe565b909155505060405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505092915050565b600954606090600160a81b900460ff16610ed2575060408051808201909152600381526277464d60e81b602082015290565b506040805180820190915260038152620eeae960eb1b602082015290565b6000610efd338484611596565b9392505050565b6006546001600160a01b03163314610f1b57600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b80156110bb57600b546040516370a0823160e01b81523060048201819052916000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190611c5f565b600b546040516323b872dd60e01b81523360048201526001600160a01b038581166024830152604482018790529293509116906323b872dd906064016020604051808303816000875af1158015611010573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110349190611bc2565b50600b546040516370a0823160e01b81526001600160a01b0384811660048301526110b89284929116906370a08231906024015b602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190611c5f565b6110b39190611b63565b6117fb565b50505b50565b80806110c957600080fd5b6110d16116f0565b60005b8181101561122957600954600a54600160a81b90910460ff161515906001600160a01b031663a0ced6fd86868581811061111057611110611ce4565b905060200201356040518263ffffffff1660e01b815260040161113591815260200190565b602060405180830381865afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611bc2565b15151461118257600080fd5b600a546001600160a01b03166323b872dd33308787868181106111a7576111a7611ce4565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156111fe57600080fd5b505af1158015611212573d6000803e3d6000fd5b50505050808061122190611d17565b9150506110d4565b50600061123e82670de0b6b3a7640000611bdf565b9050806000800160008282546112549190611d32565b90915550503360009081526003602052604081208054839290611278908490611d32565b909155505060015461128a9082611bdf565b33600090815260036020526040812060020180549091906112ac908490611d4a565b909155505060405181815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b6112f76116f0565b600061130282610687565b9050801561159257611318600160401b82611bdf565b6001600160a01b03831660009081526003602052604081206002018054909190611343908490611d4a565b90915550506001600160a01b03821660009081526004602052604090205460ff16156114d557600061137d6005546001600160a01b031690565b90506001600160a01b0381166113f157600b54604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c68906024015b600060405180830381600087803b1580156113d457600080fd5b505af11580156113e8573d6000803e3d6000fd5b505050506114cf565b600654600160a01b900460ff161561145657600754600b54604080516020808201879052825180830390910181528183019283905263e3dec8fb60e01b9092526001600160a01b039384169363e3dec8fb936113ba9387939290911691604401611d8b565b600b5460405163a9059cbb60e01b81526001600160a01b038381166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af11580156114a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cd9190611bc2565b505b5061154e565b600b5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611528573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154c9190611bc2565b505b816001600160a01b03167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d48260405161158991815260200190565b60405180910390a25b5050565b6001600160a01b0383166000908152600360205260408120548211156115bb57600080fd5b6115c36116f0565b6001600160a01b038416600090815260036020526040812080548492906115eb908490611b63565b90915550506001546115fd9083611bdf565b6001600160a01b03851660009081526003602052604081206002018054909190611628908490611bfe565b90915550506001600160a01b03831660009081526003602052604081208054849290611655908490611d32565b90915550506001546116679083611bdf565b6001600160a01b03841660009081526003602052604081206002018054909190611692908490611d4a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116de91815260200190565b60405180910390a35060019392505050565b600b546040516370a0823160e01b81523060048201819052916000916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561173e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117629190611c5f565b600a5460408051634e71d92d60e01b815290519293506001600160a01b0390911691634e71d92d9160048082019260009290919082900301818387803b1580156117ab57600080fd5b505af11580156117bf573d6000803e3d6000fd5b5050600b546040516370a0823160e01b81526001600160a01b0386811660048301526115929450859350909116906370a0823190602401611068565b80156110bb5760005461182857806000600201600082825461181d9190611d32565b9091555061186f9050565b600054600254600160401b9061183e9084611d32565b6118489190611bdf565b6118529190611c3d565b60018054600090611864908490611d32565b909155505060006002555b6040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a150565b6000815180845260005b818110156118cb576020818501810151868301820152016118af565b818111156118dd576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610efd60208301846118a5565b6001600160a01b03811681146110bb57600080fd5b6000806040838503121561192d57600080fd5b823561193881611905565b946020939093013593505050565b60006020828403121561195857600080fd5b8135610efd81611905565b60008060006060848603121561197857600080fd5b833561198381611905565b9250602084013561199381611905565b929592945050506040919091013590565b600080600080606085870312156119ba57600080fd5b84356119c581611905565b935060208501359250604085013567ffffffffffffffff808211156119e957600080fd5b818701915087601f8301126119fd57600080fd5b813581811115611a0c57600080fd5b886020828501011115611a1e57600080fd5b95989497505060200194505050565b80151581146110bb57600080fd5b600060208284031215611a4d57600080fd5b8135610efd81611a2d565b60008060408385031215611a6b57600080fd5b8235611a7681611905565b91506020830135611a8681611a2d565b809150509250929050565b60008060208385031215611aa457600080fd5b823567ffffffffffffffff80821115611abc57600080fd5b818501915085601f830112611ad057600080fd5b813581811115611adf57600080fd5b8660208260051b8501011115611af457600080fd5b60209290920196919550909350505050565b600060208284031215611b1857600080fd5b5035919050565b60008060408385031215611b3257600080fd5b8235611b3d81611905565b91506020830135611a8681611905565b634e487b7160e01b600052601160045260246000fd5b600082821015611b7557611b75611b4d565b500390565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b600060208284031215611bd457600080fd5b8151610efd81611a2d565b6000816000190483118215151615611bf957611bf9611b4d565b500290565b60008083128015600160ff1b850184121615611c1c57611c1c611b4d565b6001600160ff1b0384018313811615611c3757611c37611b4d565b50500390565b600082611c5a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c7157600080fd5b5051919050565b80516001600160701b0381168114611c8f57600080fd5b919050565b600080600060608486031215611ca957600080fd5b611cb284611c78565b9250611cc060208501611c78565b9150604084015163ffffffff81168114611cd957600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d0c57600080fd5b8151610efd81611905565b6000600019821415611d2b57611d2b611b4d565b5060010190565b60008219821115611d4557611d45611b4d565b500190565b600080821280156001600160ff1b0384900385131615611d6c57611d6c611b4d565b600160ff1b8390038412811615611d8557611d85611b4d565b50500190565b6001600160a01b038481168252831660208201526060604082018190526000906105d8908301846118a556fea2646970667358221220cd8a9eb3ac97d2581e7db9966bd2022ed3071b3e504d9c104ef955c4bf829ec864736f6c634300080a0033
Deployed Bytecode Sourcemap
1875:8799:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7567:124;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6702:203;;;;;;:::i;:::-;;:::i;:::-;;;1337:14:1;;1330:22;1312:41;;1300:2;1285:18;6702:203:0;1172:187:1;7968:94:0;8037:20;;-1:-1:-1;;;;;8037:20:0;7968:94;;;-1:-1:-1;;;;;1528:32:1;;;1510:51;;1498:2;1483:18;7968:94:0;1364:203:1;3681:83:0;;;;;;:::i;:::-;;:::i;:::-;;8269:86;8313:7;8334:16;8269:86;;;1970:25:1;;;1958:2;1943:18;8269:86:0;1824:177:1;6910:321:0;;;;;;:::i;:::-;;:::i;2105:35::-;;2138:2;2105:35;;;;;2639:4:1;2627:17;;;2609:36;;2597:2;2582:18;2105:35:0;2467:184:1;7236:323:0;;;;;;:::i;:::-;;:::i;8472:191::-;;;;;;:::i;:::-;;:::i;5849:56::-;;;:::i;3769:96::-;;;;;;:::i;:::-;;:::i;3870:213::-;;;;;;:::i;:::-;;:::i;8809:876::-;;;;;;:::i;:::-;;:::i;:::-;;;;4633:25:1;;;4689:2;4674:18;;4667:34;;;;4717:18;;;4710:34;;;;4775:2;4760:18;;4753:34;;;;4818:3;4803:19;;4796:35;;;;4875:14;;4868:22;4862:3;4847:19;;4840:51;4922:3;4907:19;;4900:35;4966:3;4951:19;;4944:35;5010:3;4995:19;;4988:35;5054:3;5039:19;;5032:35;5098:3;5083:19;;5076:36;4620:3;4605:19;8809:876:0;4211:907:1;7883:79:0;7943:14;;-1:-1:-1;;;7943:14:0;;;;7883:79;;5073:771;;;;;;:::i;:::-;;:::i;8360:106::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8436:17:0;8415:7;8436:17;;;:10;:17;;;;;:25;;8360:106;7803:74;7862:10;;-1:-1:-1;;;;;7862:10:0;7803:74;;7696:101;;;:::i;8175:88::-;8248:9;;-1:-1:-1;;;;;8248:9:0;8175:88;;6573:124;;;;;;:::i;:::-;;:::i;4088:115::-;;;;;;:::i;:::-;;:::i;4210:287::-;;;;;;:::i;:::-;;:::i;4502:566::-;;;;;;:::i;:::-;;:::i;8668:136::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8762:17:0;;;8741:7;8762:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;;;:37;;;;;;8668:136;5910:658;;;;;;:::i;:::-;;:::i;8068:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8142:22:0;8124:4;8142:22;;;:15;:22;;;;;;;;;8068:101;7567:124;7633:12;;7606:13;;-1:-1:-1;;;7633:12:0;;;;:53;;-1:-1:-1;7633:53:0;;;;;;;;;;;;-1:-1:-1;;;7633:53:0;;;;;7567:124::o;7633:53::-;-1:-1:-1;7633:53:0;;;;;;;;;;;;-1:-1:-1;;;7633:53:0;;;;;7567:124::o;6702:203::-;6794:10;6772:4;6783:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;6783:42:0;;;;;:32;;;;:42;;;;;:52;;;6845:39;;1970:25:1;;;6772:4:0;;6783:42;;6794:10;;6845:39;;1943:18:1;6845:39:0;;;;;;;-1:-1:-1;6896:4:0;6702:203;;;;:::o;3681:83::-;7862:10;;-1:-1:-1;;;;;7862:10:0;2922;:21;2914:30;;;;;;3740:10:::1;:19:::0;;-1:-1:-1;;;;;;3740:19:0::1;-1:-1:-1::0;;;;;3740:19:0;;;::::1;::::0;;;::::1;::::0;;3681:83::o;6910:321::-;-1:-1:-1;;;;;8762:17:0;;6995:4;8762:17;;;:10;:17;;;;;;;;7044:10;8762:37;;:27;;:37;;;;;;7082:7;7068:10;:21;;7060:30;;;;;;-1:-1:-1;;7099:10:0;:22;7095:90;;-1:-1:-1;;;;;7129:17:0;;:4;:17;;;:10;:17;;;;;;;;7157:10;7129:39;;:27;;:39;;;;;:50;;7172:7;;7129:4;:50;;7172:7;;7129:50;:::i;:::-;;;;-1:-1:-1;;7095:90:0;7196:30;7206:5;7213:3;7218:7;7196:9;:30::i;:::-;7189:37;6910:321;-1:-1:-1;;;;;6910:321:0:o;7236:323::-;7331:4;7342:35;7352:10;7364:3;7369:7;7342:9;:35::i;:::-;-1:-1:-1;7423:16:0;;7452:9;;;;7448:91;;7477:55;;-1:-1:-1;;;7477:55:0;;-1:-1:-1;;;;;7477:27:0;;;;;:55;;7505:10;;7517:7;;7526:5;;;;7477:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7469:64;;;;;;-1:-1:-1;7550:4:0;;7236:323;-1:-1:-1;;;;;7236:323:0:o;8472:191::-;-1:-1:-1;;;;;8612:17:0;;8527:7;8612:17;;;:10;:17;;;;;:30;;;;8436:25;;8563:26;;-1:-1:-1;;;2000:5:0;8612:30;8563:45;;;:::i;:::-;8556:86;;;;:::i;:::-;8548:110;;;;:::i;:::-;8541:117;8472:191;-1:-1:-1;;8472:191:0:o;5849:56::-;5880:20;5889:10;5880:8;:20::i;:::-;5849:56::o;3769:96::-;7862:10;;-1:-1:-1;;;;;7862:10:0;2922;:21;2914:30;;;;;;3833:14:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;3833:27:0::1;-1:-1:-1::0;;;;3833:27:0;;::::1;::::0;;;::::1;::::0;;3769:96::o;3870:213::-;7862:10;;-1:-1:-1;;;;;7862:10:0;2922;:21;2914:30;;;;;;3992:18;::::1;4027:9;::::0;::::1;4019:18;;;::::0;::::1;;-1:-1:-1::0;;;;;;4042:22:0;;;::::1;:4;:22:::0;;;:15:::1;:22;::::0;;;;:36;;-1:-1:-1;;4042:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;3870:213::o;8809:876::-;8867:19;8888:21;8911:19;8932:22;8956:18;8976:17;8995:19;9016;9037:21;9060:25;9087:22;9130:13;8313:7;8334:16;;8269:86;9130:13;9164:9;;:23;;;-1:-1:-1;;;9164:23:0;;;;9116:27;;-1:-1:-1;;;;;;9164:9:0;;;;:21;;:23;;;;;;;;;;;;;;;:9;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9227:9;;:23;;;-1:-1:-1;;;9227:23:0;;;;9148:39;;-1:-1:-1;9193:13:0;;;;-1:-1:-1;;;;;9227:9:0;;:21;;:23;;;;;;;;;;;;;;:9;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9269:10:0;;-1:-1:-1;;;;;9192:58:0;;;;-1:-1:-1;9192:58:0;;;-1:-1:-1;;;;9269:10:0;;;;:26;;9290:5;9269:26;;;9282:5;9269:26;9317:10;;9255:40;;-1:-1:-1;;;;9317:10:0;;;;:26;;9338:5;9317:26;;;9330:5;9317:26;9300:43;;9361:4;:7;;;;;;;;;;-1:-1:-1;;;;;9361:7:0;-1:-1:-1;;;;;9361:17:0;;9379:5;9361:24;;;;;;;;;;;;;;-1:-1:-1;;;;;1528:32:1;;;;1510:51;;1498:2;1483:18;;1364:203;9361:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9348:37;;9405:4;:7;;;;;;;;;;-1:-1:-1;;;;;9405:7:0;-1:-1:-1;;;;;9405:24:0;;9430:5;9445:4;9405:46;;;;;;;;;;;;;;;-1:-1:-1;;;;;9131:15:1;;;9113:34;;9183:15;;9178:2;9163:18;;9156:43;9063:2;9048:18;;8901:304;9405:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9390:61;;9470:16;9480:5;-1:-1:-1;;;;;8436:17:0;8415:7;8436:17;;;:10;:17;;;;;:25;;8360:106;9470:16;9456:30;;9505:16;9515:5;9505:9;:16::i;:::-;9491:30;;9542:4;:9;;;;;;;;;;-1:-1:-1;;;;;9542:9:0;-1:-1:-1;;;;;9542:19:0;;9562:5;9542:26;;;;;;;;;;;;;;-1:-1:-1;;;;;1528:32:1;;;;1510:51;;1498:2;1483:18;;1364:203;9542:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9593:7;;:34;;-1:-1:-1;;;9593:34:0;;9621:4;9593:34;;;1510:51:1;9526:42:0;;-1:-1:-1;;;;;;9593:7:0;;:19;;1483:18:1;;9593:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9649:7;;:31;;-1:-1:-1;;;9649:31:0;;9674:4;9649:31;;;1510:51:1;9573:54:0;;-1:-1:-1;;;;;;9649:7:0;;:16;;1483:18:1;;9649:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9632:48;;9111:574;;8809:876;;;;;;;;;;;;;:::o;5073:771::-;5137:22;5183:9;5237:13;5183:9;5246:4;5237:13;:::i;:::-;5222:10;8415:7;8436:17;;;:10;:17;;;;;:25;5212:38;;5204:47;;;;;;5256:9;:7;:9::i;:::-;5287:1;5270:18;;5298:9;5293:262;5317:6;5313:1;:10;5293:262;;;5340:7;;5381:4;;-1:-1:-1;;;;;5340:7:0;:15;5356:9;;5366:1;5356:12;;;;;;;:::i;:::-;;;;;;;5340:29;;;;;;;;;;;;;1970:25:1;;1958:2;1943:18;;1824:177;5340:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5340:46:0;;5336:214;;;5439:12;;5403:7;;-1:-1:-1;;;5439:12:0;;;;;5403:48;;;-1:-1:-1;;;;;5403:7:0;:18;5422:9;;5432:1;5422:12;;;;;;;:::i;:::-;;;;;;;5403:32;;;;;;;;;;;;;1970:25:1;;1958:2;1943:18;;1824:177;5403:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;;5395:57;;;;;;5459:7;;-1:-1:-1;;;;;5459:7:0;:20;5488:4;5495:10;5507:9;;5517:1;5507:12;;;;;;;:::i;:::-;5459:61;;-1:-1:-1;;;;;;5459:61:0;;;;;;;-1:-1:-1;;;;;9856:15:1;;;5459:61:0;;;9838:34:1;9908:15;;;;9888:18;;;9881:43;-1:-1:-1;5507:12:0;;;;;;9940:18:1;;;9933:34;9773:18;;5459:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5527:16;;;;;:::i;:::-;;;;5336:214;5325:3;;;;:::i;:::-;;;;5293:262;;;;5584:1;5567:14;:18;5559:27;;;;;;5591:13;5607:21;:14;5624:4;5607:21;:::i;:::-;5591:37;;5653:5;5633:4;:16;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;5674:10:0;5663:4;:22;;;:10;:22;;;;;:39;;5697:5;;5663:4;:39;;5697:5;;5663:39;:::i;:::-;;;;-1:-1:-1;;5761:26:0;;5753:34;;:5;:34;:::i;:::-;5718:10;5707:4;:22;;;:10;:22;;;;;:35;;:81;;:35;;:4;:81;;;;;:::i;:::-;;;;-1:-1:-1;;5798:41:0;;1970:25:1;;;5827:3:0;;5807:10;;5798:41;;1958:2:1;1943:18;5798:41:0;;;;;;;5161:683;;5073:771;;;;:::o;7696:101::-;7764:12;;7737:13;;-1:-1:-1;;;7764:12:0;;;;:28;;-1:-1:-1;7764:28:0;;;;;;;;;;;;-1:-1:-1;;;7764:28:0;;;;;7567:124::o;7764:28::-;-1:-1:-1;7764:28:0;;;;;;;;;;;;-1:-1:-1;;;7764:28:0;;;;;7696:101::o;6573:124::-;6639:4;6657:35;6667:10;6679:3;6684:7;6657:9;:35::i;:::-;6650:42;6573:124;-1:-1:-1;;;6573:124:0:o;4088:115::-;7862:10;;-1:-1:-1;;;;;7862:10:0;2922;:21;2914:30;;;;;;4163:20:::1;:35:::0;;-1:-1:-1;;;;;;4163:35:0::1;-1:-1:-1::0;;;;;4163:35:0;;;::::1;::::0;;;::::1;::::0;;4088:115::o;4210:287::-;4263:11;;4259:234;;4342:10;;:27;;-1:-1:-1;;;4342:27:0;;4306:4;4342:27;;;1510:51:1;;;4306:4:0;4282:13;;-1:-1:-1;;;;;4342:10:0;;;;:20;;1483:18:1;;4342:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4375:10;;:51;;-1:-1:-1;;;4375:51:0;;4399:10;4375:51;;;9838:34:1;-1:-1:-1;;;;;9908:15:1;;;9888:18;;;9881:43;9940:18;;;9933:34;;;4317:52:0;;-1:-1:-1;4375:10:0;;;:23;;9773:18:1;;4375:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4442:10:0;;:27;;-1:-1:-1;;;4442:27:0;;-1:-1:-1;;;;;1528:32:1;;;4442:27:0;;;1510:51:1;4432:55:0;;4472:14;;4442:10;;;:20;;1483:18:1;;4442:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;;;:::i;:::-;4432:9;:55::i;:::-;4276:217;;4259:234;4210:287;:::o;4502:566::-;4577:9;4606:10;4598:19;;;;;;4622:9;:7;:9::i;:::-;4641;4636:173;4660:6;4656:1;:10;4636:173;;;4723:12;;4687:7;;-1:-1:-1;;;4723:12:0;;;;;4687:48;;;-1:-1:-1;;;;;4687:7:0;:18;4706:9;;4716:1;4706:12;;;;;;;:::i;:::-;;;;;;;4687:32;;;;;;;;;;;;;1970:25:1;;1958:2;1943:18;;1824:177;4687:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;;4679:57;;;;;;4742:7;;-1:-1:-1;;;;;4742:7:0;:20;4763:10;4783:4;4790:9;;4800:1;4790:12;;;;;;;:::i;:::-;4742:61;;-1:-1:-1;;;;;;4742:61:0;;;;;;;-1:-1:-1;;;;;9856:15:1;;;4742:61:0;;;9838:34:1;9908:15;;;;9888:18;;;9881:43;-1:-1:-1;4790:12:0;;;;;;9940:18:1;;;9933:34;9773:18;;4742:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4668:3;;;;;:::i;:::-;;;;4636:173;;;-1:-1:-1;4813:15:0;4831:13;:6;4840:4;4831:13;:::i;:::-;4813:31;;4869:7;4849:4;:16;;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;4892:10:0;4881:4;:22;;;:10;:22;;;;;:41;;4915:7;;4881:4;:41;;4915:7;;4881:41;:::i;:::-;;;;-1:-1:-1;;4983:26:0;;4973:36;;:7;:36;:::i;:::-;4938:10;4927:4;:22;;;:10;:22;;;;;:35;;:83;;:35;;:4;:83;;;;;:::i;:::-;;;;-1:-1:-1;;5020:43:0;;1970:25:1;;;5043:10:0;;5037:3;;5020:43;;1958:2:1;1943:18;5020:43:0;;;;;;;4555:513;;4502:566;;:::o;5910:658::-;5955:9;:7;:9::i;:::-;5969:16;5988;5998:5;5988:9;:16::i;:::-;5969:35;-1:-1:-1;6013:12:0;;6009:555;;6074:23;-1:-1:-1;;;6074:8:0;:23;:::i;:::-;-1:-1:-1;;;;;6033:17:0;;:4;:17;;;:10;:17;;;;;:30;;:65;;:30;;:4;:65;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8142:22:0;;8124:4;8142:22;;;:15;:22;;;;;;;;6104:422;;;6134:20;6157:17;8037:20;;-1:-1:-1;;;;;8037:20:0;;7968:94;6157:17;6134:40;-1:-1:-1;;;;;;6185:28:0;;6181:283;;6223:10;;:25;;-1:-1:-1;;;6223:25:0;;;;;1970::1;;;-1:-1:-1;;;;;6223:10:0;;;;:15;;1943:18:1;;6223:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6181:283;;;7943:14;;-1:-1:-1;;;7943:14:0;;;;6270:187;;;6296:11;;6341:10;;6354:26;;;;;;;10650:19:1;;;6354:26:0;;;;;;;;;;10685:12:1;;;6354:26:0;;;;-1:-1:-1;;;6296:85:0;;;-1:-1:-1;;;;;6296:11:0;;;;:22;;:85;;6319:12;;6341:10;;;;;6296:85;;;:::i;6270:187::-;6405:10;;:43;;-1:-1:-1;;;6405:43:0;;-1:-1:-1;;;;;11321:32:1;;;6405:43:0;;;11303:51:1;11370:18;;;11363:34;;;6405:10:0;;;;:19;;11276:18:1;;6405:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6270:187;6127:343;6104:422;;;6483:10;;:36;;-1:-1:-1;;;6483:36:0;;-1:-1:-1;;;;;11321:32:1;;;6483:36:0;;;11303:51:1;11370:18;;;11363:34;;;6483:10:0;;;;:19;;11276:18:1;;6483:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6104:422;6542:5;-1:-1:-1;;;;;6536:22:0;;6549:8;6536:22;;;;1970:25:1;;1958:2;1943:18;;1824:177;6536:22:0;;;;;;;;6009:555;5950:618;5910:658;:::o;9692:447::-;-1:-1:-1;;;;;8436:17:0;;9774:4;8436:17;;;:10;:17;;;;;:25;9813:7;-1:-1:-1;9793:27:0;9785:36;;;;;;9826:9;:7;:9::i;:::-;-1:-1:-1;;;;;9840:17:0;;:4;:17;;;:10;:17;;;;;:36;;9869:7;;9840:4;:36;;9869:7;;9840:36;:::i;:::-;;;;-1:-1:-1;;9932:26:0;;9922:36;;:7;:36;:::i;:::-;-1:-1:-1;;;;;9881:17:0;;:4;:17;;;:10;:17;;;;;:30;;:78;;:30;;:4;:78;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9964:15:0;;:4;:15;;;:10;:15;;;;;:34;;9991:7;;9964:4;:34;;9991:7;;9964:34;:::i;:::-;;;;-1:-1:-1;;10052:26:0;;10042:36;;:7;:36;:::i;:::-;-1:-1:-1;;;;;10003:15:0;;:4;:15;;;:10;:15;;;;;:28;;:76;;:28;;:4;:76;;;;;:::i;:::-;;;;;;;;10105:3;-1:-1:-1;;;;;10089:29:0;10098:5;-1:-1:-1;;;;;10089:29:0;;10110:7;10089:29;;;;1970:25:1;;1958:2;1943:18;;1824:177;10089:29:0;;;;;;;;-1:-1:-1;10130:4:0;9692:447;;;;;:::o;10144:204::-;10236:10;;:27;;-1:-1:-1;;;10236:27:0;;10201:4;10236:27;;;1510:51:1;;;10201:4:0;10177:13;;-1:-1:-1;;;;;10236:10:0;;;;:20;;1483:18:1;;10236:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10268:7;;:15;;;-1:-1:-1;;;10268:15:0;;;;10211:52;;-1:-1:-1;;;;;;10268:7:0;;;;:13;;:15;;;;;:4;;:15;;;;;;;;:4;:7;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10298:10:0;;:27;;-1:-1:-1;;;10298:27:0;;-1:-1:-1;;;;;1528:32:1;;;10298:27:0;;;1510:51:1;10288:55:0;;-1:-1:-1;10328:14:0;;-1:-1:-1;10298:10:0;;;;:20;;1483:18:1;;10298:27:0;1364:203:1;10353:318:0;10407:11;;10403:264;;8313:7;8334:16;10426:210;;10480:7;10457:4;:19;;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;10426:210:0;;-1:-1:-1;10426:210:0;;8313:7;8334:16;10548:19;;-1:-1:-1;;;2000:5:0;10538:29;;:7;:29;:::i;:::-;10537:46;;;;:::i;:::-;:62;;;;:::i;:::-;10507:26;:92;;:4;;:92;;;;;:::i;:::-;;;;-1:-1:-1;;10628:1:0;10606:19;:23;10426:210;10646:15;;1970:25:1;;;10646:15:0;;1958:2:1;1943:18;10646:15:0;;;;;;;10353:318;:::o;14:472:1:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;336:6;333:1;330:13;327:87;;;402:1;395:4;386:6;381:3;377:16;373:27;366:38;327:87;-1:-1:-1;468:2:1;447:15;-1:-1:-1;;443:29:1;434:39;;;;475:4;430:50;;14:472;-1:-1:-1;;14:472:1:o;491:220::-;640:2;629:9;622:21;603:4;660:45;701:2;690:9;686:18;678:6;660:45;:::i;716:131::-;-1:-1:-1;;;;;791:31:1;;781:42;;771:70;;837:1;834;827:12;852:315;920:6;928;981:2;969:9;960:7;956:23;952:32;949:52;;;997:1;994;987:12;949:52;1036:9;1023:23;1055:31;1080:5;1055:31;:::i;:::-;1105:5;1157:2;1142:18;;;;1129:32;;-1:-1:-1;;;852:315:1:o;1572:247::-;1631:6;1684:2;1672:9;1663:7;1659:23;1655:32;1652:52;;;1700:1;1697;1690:12;1652:52;1739:9;1726:23;1758:31;1783:5;1758:31;:::i;2006:456::-;2083:6;2091;2099;2152:2;2140:9;2131:7;2127:23;2123:32;2120:52;;;2168:1;2165;2158:12;2120:52;2207:9;2194:23;2226:31;2251:5;2226:31;:::i;:::-;2276:5;-1:-1:-1;2333:2:1;2318:18;;2305:32;2346:33;2305:32;2346:33;:::i;:::-;2006:456;;2398:7;;-1:-1:-1;;;2452:2:1;2437:18;;;;2424:32;;2006:456::o;2656:794::-;2744:6;2752;2760;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;2997:2:1;2982:18;;2969:32;;-1:-1:-1;3052:2:1;3037:18;;3024:32;3075:18;3105:14;;;3102:34;;;3132:1;3129;3122:12;3102:34;3170:6;3159:9;3155:22;3145:32;;3215:7;3208:4;3204:2;3200:13;3196:27;3186:55;;3237:1;3234;3227:12;3186:55;3277:2;3264:16;3303:2;3295:6;3292:14;3289:34;;;3319:1;3316;3309:12;3289:34;3364:7;3359:2;3350:6;3346:2;3342:15;3338:24;3335:37;3332:57;;;3385:1;3382;3375:12;3332:57;2656:794;;;;-1:-1:-1;;3416:2:1;3408:11;;-1:-1:-1;;;2656:794:1:o;3455:118::-;3541:5;3534:13;3527:21;3520:5;3517:32;3507:60;;3563:1;3560;3553:12;3578:241;3634:6;3687:2;3675:9;3666:7;3662:23;3658:32;3655:52;;;3703:1;3700;3693:12;3655:52;3742:9;3729:23;3761:28;3783:5;3761:28;:::i;3824:382::-;3889:6;3897;3950:2;3938:9;3929:7;3925:23;3921:32;3918:52;;;3966:1;3963;3956:12;3918:52;4005:9;3992:23;4024:31;4049:5;4024:31;:::i;:::-;4074:5;-1:-1:-1;4131:2:1;4116:18;;4103:32;4144:30;4103:32;4144:30;:::i;:::-;4193:7;4183:17;;;3824:382;;;;;:::o;5123:615::-;5209:6;5217;5270:2;5258:9;5249:7;5245:23;5241:32;5238:52;;;5286:1;5283;5276:12;5238:52;5326:9;5313:23;5355:18;5396:2;5388:6;5385:14;5382:34;;;5412:1;5409;5402:12;5382:34;5450:6;5439:9;5435:22;5425:32;;5495:7;5488:4;5484:2;5480:13;5476:27;5466:55;;5517:1;5514;5507:12;5466:55;5557:2;5544:16;5583:2;5575:6;5572:14;5569:34;;;5599:1;5596;5589:12;5569:34;5652:7;5647:2;5637:6;5634:1;5630:14;5626:2;5622:23;5618:32;5615:45;5612:65;;;5673:1;5670;5663:12;5612:65;5704:2;5696:11;;;;;5726:6;;-1:-1:-1;5123:615:1;;-1:-1:-1;;;;5123:615:1:o;5743:180::-;5802:6;5855:2;5843:9;5834:7;5830:23;5826:32;5823:52;;;5871:1;5868;5861:12;5823:52;-1:-1:-1;5894:23:1;;5743:180;-1:-1:-1;5743:180:1:o;5928:388::-;5996:6;6004;6057:2;6045:9;6036:7;6032:23;6028:32;6025:52;;;6073:1;6070;6063:12;6025:52;6112:9;6099:23;6131:31;6156:5;6131:31;:::i;:::-;6181:5;-1:-1:-1;6238:2:1;6223:18;;6210:32;6251:33;6210:32;6251:33;:::i;6321:127::-;6382:10;6377:3;6373:20;6370:1;6363:31;6413:4;6410:1;6403:15;6437:4;6434:1;6427:15;6453:125;6493:4;6521:1;6518;6515:8;6512:34;;;6526:18;;:::i;:::-;-1:-1:-1;6563:9:1;;6453:125::o;6583:559::-;-1:-1:-1;;;;;6796:32:1;;6778:51;;6860:2;6845:18;;6838:34;;;6908:2;6903;6888:18;;6881:30;;;6927:18;;6920:34;;;6947:6;6997;6991:3;6976:19;;6963:49;7062:1;7032:22;;;7056:3;7028:32;;;7021:43;;;;7125:2;7104:15;;;-1:-1:-1;;7100:29:1;7085:45;7081:55;;6583:559;-1:-1:-1;;;6583:559:1:o;7147:245::-;7214:6;7267:2;7255:9;7246:7;7242:23;7238:32;7235:52;;;7283:1;7280;7273:12;7235:52;7315:9;7309:16;7334:28;7356:5;7334:28;:::i;7397:168::-;7437:7;7503:1;7499;7495:6;7491:14;7488:1;7485:21;7480:1;7473:9;7466:17;7462:45;7459:71;;;7510:18;;:::i;:::-;-1:-1:-1;7550:9:1;;7397:168::o;7570:267::-;7609:4;7638:9;;;7663:10;;-1:-1:-1;;;7682:19:1;;7675:27;;7659:44;7656:70;;;7706:18;;:::i;:::-;-1:-1:-1;;;;;7753:27:1;;7746:35;;7738:44;;7735:70;;;7785:18;;:::i;:::-;-1:-1:-1;;7822:9:1;;7570:267::o;7842:217::-;7882:1;7908;7898:132;;7952:10;7947:3;7943:20;7940:1;7933:31;7987:4;7984:1;7977:15;8015:4;8012:1;8005:15;7898:132;-1:-1:-1;8044:9:1;;7842:217::o;8064:184::-;8134:6;8187:2;8175:9;8166:7;8162:23;8158:32;8155:52;;;8203:1;8200;8193:12;8155:52;-1:-1:-1;8226:16:1;;8064:184;-1:-1:-1;8064:184:1:o;8253:188::-;8332:13;;-1:-1:-1;;;;;8374:42:1;;8364:53;;8354:81;;8431:1;8428;8421:12;8354:81;8253:188;;;:::o;8446:450::-;8533:6;8541;8549;8602:2;8590:9;8581:7;8577:23;8573:32;8570:52;;;8618:1;8615;8608:12;8570:52;8641:40;8671:9;8641:40;:::i;:::-;8631:50;;8700:49;8745:2;8734:9;8730:18;8700:49;:::i;:::-;8690:59;;8792:2;8781:9;8777:18;8771:25;8836:10;8829:5;8825:22;8818:5;8815:33;8805:61;;8862:1;8859;8852:12;8805:61;8885:5;8875:15;;;8446:450;;;;;:::o;9210:127::-;9271:10;9266:3;9262:20;9259:1;9252:31;9302:4;9299:1;9292:15;9326:4;9323:1;9316:15;9342:251;9412:6;9465:2;9453:9;9444:7;9440:23;9436:32;9433:52;;;9481:1;9478;9471:12;9433:52;9513:9;9507:16;9532:31;9557:5;9532:31;:::i;9978:135::-;10017:3;-1:-1:-1;;10038:17:1;;10035:43;;;10058:18;;:::i;:::-;-1:-1:-1;10105:1:1;10094:13;;9978:135::o;10118:128::-;10158:3;10189:1;10185:6;10182:1;10179:13;10176:39;;;10195:18;;:::i;:::-;-1:-1:-1;10231:9:1;;10118:128::o;10251:265::-;10290:3;10318:9;;;10343:10;;-1:-1:-1;;;;;10362:27:1;;;10355:35;;10339:52;10336:78;;;10394:18;;:::i;:::-;-1:-1:-1;;;10441:19:1;;;10434:27;;10426:36;;10423:62;;;10465:18;;:::i;:::-;-1:-1:-1;;10501:9:1;;10251:265::o;10708:416::-;-1:-1:-1;;;;;10949:15:1;;;10931:34;;11001:15;;10996:2;10981:18;;10974:43;11053:2;11048;11033:18;;11026:30;;;10874:4;;11073:45;;11099:18;;11091:6;11073:45;:::i
Swarm Source
ipfs://cd8a9eb3ac97d2581e7db9966bd2022ed3071b3e504d9c104ef955c4bf829ec8
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.