Polygon Sponsored slots available. Book your slot here!
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 523 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Swap | 69426123 | 30 days ago | IN | 0 POL | 0.03564357 | ||||
Swap | 69406657 | 30 days ago | IN | 0 POL | 0.01968796 | ||||
Swap | 69406570 | 30 days ago | IN | 0 POL | 0.01203664 | ||||
Swap | 68496544 | 53 days ago | IN | 0 POL | 0.01288485 | ||||
Swap | 68478102 | 53 days ago | IN | 0 POL | 0.10969085 | ||||
Swap | 68316948 | 57 days ago | IN | 0 POL | 0.02387995 | ||||
Swap | 68002592 | 65 days ago | IN | 0 POL | 0.03989882 | ||||
Swap | 67958934 | 66 days ago | IN | 0 POL | 0.01525668 | ||||
Swap | 67732924 | 72 days ago | IN | 0 POL | 1.2833312 | ||||
Swap | 67482682 | 78 days ago | IN | 0 POL | 0.40453083 | ||||
Swap | 67467630 | 79 days ago | IN | 0 POL | 0.07702102 | ||||
Swap | 67452335 | 79 days ago | IN | 0 POL | 0.04984937 | ||||
Swap | 67452326 | 79 days ago | IN | 0 POL | 0.05764487 | ||||
Swap | 67247148 | 84 days ago | IN | 0 POL | 0.00736155 | ||||
Swap | 67200844 | 85 days ago | IN | 0 POL | 0.07534701 | ||||
Swap | 67175927 | 86 days ago | IN | 0 POL | 0.05120802 | ||||
Swap | 67175896 | 86 days ago | IN | 0 POL | 0.04841878 | ||||
Swap | 67022602 | 90 days ago | IN | 0 POL | 0.07208914 | ||||
Swap | 66993860 | 91 days ago | IN | 0 POL | 0.10136909 | ||||
Swap | 66942417 | 92 days ago | IN | 0 POL | 0.23313285 | ||||
Swap | 66930717 | 92 days ago | IN | 0 POL | 0.71459832 | ||||
Swap | 66857189 | 94 days ago | IN | 0 POL | 0.02301723 | ||||
Swap | 66848593 | 94 days ago | IN | 0 POL | 0.15271553 | ||||
Swap | 66774590 | 96 days ago | IN | 0 POL | 0.02555683 | ||||
Swap | 66774250 | 96 days ago | IN | 0 POL | 0.02548946 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
67247148 | 84 days ago | 24.30258512 POL | ||||
67247148 | 84 days ago | 24.30258512 POL | ||||
67022602 | 90 days ago | 898.7509958 POL | ||||
67022602 | 90 days ago | 898.7509958 POL | ||||
66942417 | 92 days ago | 67.14781254 POL | ||||
66942417 | 92 days ago | 67.14781254 POL | ||||
66857189 | 94 days ago | 14.35955642 POL | ||||
66857189 | 94 days ago | 14.35955642 POL | ||||
66848593 | 94 days ago | 205.82117949 POL | ||||
66848593 | 94 days ago | 205.82117949 POL | ||||
66601826 | 100 days ago | 22.53830968 POL | ||||
66601826 | 100 days ago | 22.53830968 POL | ||||
66423291 | 105 days ago | 13.49109133 POL | ||||
66423291 | 105 days ago | 13.49109133 POL | ||||
66421425 | 105 days ago | 6.27879173 POL | ||||
66421425 | 105 days ago | 6.27879173 POL | ||||
66222593 | 110 days ago | 20.54691919 POL | ||||
66222593 | 110 days ago | 20.54691919 POL | ||||
66186586 | 111 days ago | 107.08521826 POL | ||||
66186586 | 111 days ago | 107.08521826 POL | ||||
65970262 | 117 days ago | 113.66937681 POL | ||||
65970262 | 117 days ago | 113.66937681 POL | ||||
65967461 | 117 days ago | 68.1426744 POL | ||||
65967461 | 117 days ago | 68.1426744 POL | ||||
65878602 | 119 days ago | 91.9145476 POL |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SwapProxy
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2024-04-16 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } abstract contract Controller is Ownable { event ControllerAdded(address controller); event ControllerRemoved(address controller); mapping(address => bool) controllers; uint8 public controllerCnt = 0; modifier onlyController() { require(isController(_msgSender()), "no controller rights"); _; } function isController(address _controller) public view returns (bool) { return _controller == owner() || controllers[_controller]; } function addController(address _controller) public onlyOwner { if (controllers[_controller] == false) { controllers[_controller] = true; controllerCnt++; } emit ControllerAdded(_controller); } function removeController(address _controller) public onlyOwner { if (controllers[_controller] == true) { controllers[_controller] = false; controllerCnt--; } emit ControllerRemoved(_controller); } } abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; } function _nonReentrantAfter() private { _status = _NOT_ENTERED; } function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface IERC20Permit { function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function nonces(address owner) external view returns (uint256); function DOMAIN_SEPARATOR() external view returns (bytes32); } library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall( address target, bytes memory data ) internal returns (bytes memory) { return functionCallWithValue( target, data, 0, "Address: low-level call failed" ); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } function functionStaticCall( address target, bytes memory data ) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } function functionDelegateCall( address target, bytes memory data ) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget( target, success, returndata, errorMessage ); } function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert( bytes memory returndata, string memory errorMessage ) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } interface IWrapToken { function deposit() external payable; function withdraw(uint256) external; } library SafeERC20 { using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transfer.selector, to, value) ); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value) ); } function safeApprove( IERC20 token, address spender, uint256 value ) internal { require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, value) ); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 oldAllowance = token.allowance(address(this), spender); _callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, oldAllowance + value ) ); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require( oldAllowance >= value, "SafeERC20: decreased allowance below zero" ); _callOptionalReturn( token, abi.encodeWithSelector( token.approve.selector, spender, oldAllowance - value ) ); } } function forceApprove( IERC20 token, address spender, uint256 value ) internal { bytes memory approvalCall = abi.encodeWithSelector( token.approve.selector, spender, value ); if (!_callOptionalReturnBool(token, approvalCall)) { _callOptionalReturn( token, abi.encodeWithSelector(token.approve.selector, spender, 0) ); _callOptionalReturn(token, approvalCall); } } function safePermit( IERC20Permit token, address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) internal { uint256 nonceBefore = token.nonces(owner); token.permit(owner, spender, value, deadline, v, r, s); uint256 nonceAfter = token.nonces(owner); require( nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed" ); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall( data, "SafeERC20: low-level call failed" ); require( returndata.length == 0 || abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed" ); } function _callOptionalReturnBool( IERC20 token, bytes memory data ) private returns (bool) { (bool success, bytes memory returndata) = address(token).call(data); return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token)); } } library TransferHelper { function safeTransferNative(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, "TransferHelper: NATIVE_TRANSFER_FAILED"); } } interface IMintBurnToken { function mint(address to, uint256 amount) external; function burn(address from, uint256 amount) external; } contract SwapProxy is Controller, ReentrancyGuard { using SafeERC20 for IERC20; using Address for address; using Address for address payable; mapping(address => bool) public whitelist; address public immutable NATIVE = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; uint256 MAX_UINT256 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; uint256 public _orderID; bool private _paused; event Paused(address account); event Unpaused(address account); event LogVaultOut( address indexed token, address indexed from, uint256 indexed orderID, uint256 amount, address vault, bytes order ); constructor(uint256 _id_prefix) { _paused = false; _orderID = _id_prefix * (10 ** 9); } receive() external payable {} fallback() external payable {} modifier whenNotPaused() { require(!_paused, "SP: paused"); _; } function chainID() public view returns (uint) { return block.chainid; } function pause() external onlyOwner { _paused = true; emit Paused(_msgSender()); } function unpause() external onlyOwner { _paused = false; emit Unpaused(_msgSender()); } function setWhitelist(address _addr) external onlyOwner { whitelist[_addr] = true; } function delWhitelist(address _addr) external onlyOwner { whitelist[_addr] = false; } function _balanceOfSelf( address receiveToken ) internal view returns (uint256) { uint256 _balance; if (receiveToken == NATIVE) { _balance = address(this).balance; } else { _balance = IERC20(receiveToken).balanceOf(address(this)); } return _balance; } function _checkVaultOut( address tokenAddr, uint256 amount, bytes calldata order ) internal pure { require(tokenAddr != address(0), "SP: tokenAddress is invalid"); require(amount > 0, "SP: amount is 0"); require(order.length > 0, "SP: order is empty"); } function swap( address tokenAddr, uint256 amount, address target, address receiveToken, address receiver, uint256 minAmount, bytes calldata callData, bytes calldata order ) external payable nonReentrant whenNotPaused { _checkVaultOut(tokenAddr, amount, order); require( target != address(this) && target != address(0), "SP: target is invalid" ); require(whitelist[target], "SP: wrong target"); require(callData.length > 0, "SP: calldata is empty"); require(receiveToken != address(0), "SP: receiveToken is empty"); require(receiver != address(0), "SP: receiver is empty"); require(minAmount > 0, "SP: minAmount is empty"); uint256 old_balance = _balanceOfSelf(receiveToken); if (tokenAddr == NATIVE) { require(amount == msg.value, "SP: amount is invalid"); target.functionCallWithValue( callData, amount, "SP: CallWithValue failed" ); } else { IERC20(tokenAddr).safeTransferFrom( _msgSender(), address(this), amount ); if (IERC20(tokenAddr).allowance(address(this), target) < amount) { IERC20(tokenAddr).safeApprove(target, MAX_UINT256); } target.functionCall(callData, "SP: FunctionCall failed"); } uint256 _amountOut = 0; uint256 new_balance = _balanceOfSelf(receiveToken); require( new_balance > old_balance, "SP: receive amount should above zero" ); _amountOut = new_balance - old_balance; require(_amountOut >= minAmount, "SP: receive amount not enough"); if (receiveToken == NATIVE) { TransferHelper.safeTransferNative(receiver, _amountOut); } else { IERC20(receiveToken).safeTransfer(receiver, _amountOut); } _orderID++; emit LogVaultOut( receiveToken, _msgSender(), _orderID, _amountOut, receiver, order ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"_id_prefix","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"controller","type":"address"}],"name":"ControllerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"controller","type":"address"}],"name":"ControllerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"orderID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"vault","type":"address"},{"indexed":false,"internalType":"bytes","name":"order","type":"bytes"}],"name":"LogVaultOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_orderID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"addController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chainID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"controllerCnt","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"delWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"isController","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"removeController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"receiveToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"minAmount","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes","name":"order","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526002805460ff1916905573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6080525f19600555348015610036575f80fd5b5060405161181e38038061181e833981016040819052610055916100d3565b61005e33610084565b60016003556007805460ff1916905561007b81633b9aca006100ea565b60065550610113565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100e3575f80fd5b5051919050565b808202811582820484141761010d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6080516116de6101405f395f8181610233015281816105b10152818161089f0152610e2901526116de5ff3fe6080604052600436106100df575f3560e01c806397ecfaab11610083578063adc879e911610055578063adc879e914610274578063b429afeb14610286578063f2fde38b146102a5578063f6a74ed7146102c457005b806397ecfaab146101c55780639b19251a146101e4578063a0cf0aea14610222578063a7fc7a071461025557005b806378bbe8b6116100bc57806378bbe8b6146101375780638456cb5914610162578063854cff2f146101765780638da5cb5b1461019557005b80633f4ba83a146100e85780635342389e146100fc578063565bc2341461012457005b366100e657005b005b3480156100f3575f80fd5b506100e66102e3565b348015610107575f80fd5b5061011160065481565b6040519081526020015b60405180910390f35b6100e661013236600461145a565b61035f565b348015610142575f80fd5b506002546101509060ff1681565b60405160ff909116815260200161011b565b34801561016d575f80fd5b506100e661097a565b348015610181575f80fd5b506100e661019036600461151b565b6109d8565b3480156101a0575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161011b565b3480156101d0575f80fd5b506100e66101df36600461151b565b610a24565b3480156101ef575f80fd5b506102126101fe36600461151b565b60046020525f908152604090205460ff1681565b604051901515815260200161011b565b34801561022d575f80fd5b506101ad7f000000000000000000000000000000000000000000000000000000000000000081565b348015610260575f80fd5b506100e661026f36600461151b565b610a6d565b34801561027f575f80fd5b5046610111565b348015610291575f80fd5b506102126102a036600461151b565b610b48565b3480156102b0575f80fd5b506100e66102bf36600461151b565b610b81565b3480156102cf575f80fd5b506100e66102de36600461151b565b610c1b565b5f546001600160a01b031633146103155760405162461bcd60e51b815260040161030c90611534565b60405180910390fd5b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610367610ced565b60075460ff16156103a75760405162461bcd60e51b815260206004820152600a60248201526914d40e881c185d5cd95960b21b604482015260640161030c565b6103b38a8a8484610d46565b6001600160a01b03881630148015906103d457506001600160a01b03881615155b6104185760405162461bcd60e51b815260206004820152601560248201527414d40e881d185c99d95d081a5cc81a5b9d985b1a59605a1b604482015260640161030c565b6001600160a01b0388165f9081526004602052604090205460ff166104725760405162461bcd60e51b815260206004820152601060248201526f14d40e881ddc9bdb99c81d185c99d95d60821b604482015260640161030c565b826104b75760405162461bcd60e51b815260206004820152601560248201527453503a2063616c6c6461746120697320656d70747960581b604482015260640161030c565b6001600160a01b03871661050d5760405162461bcd60e51b815260206004820152601960248201527f53503a2072656365697665546f6b656e20697320656d70747900000000000000604482015260640161030c565b6001600160a01b03861661055b5760405162461bcd60e51b815260206004820152601560248201527453503a20726563656976657220697320656d70747960581b604482015260640161030c565b5f85116105a35760405162461bcd60e51b815260206004820152601660248201527553503a206d696e416d6f756e7420697320656d70747960501b604482015260640161030c565b5f6105ad88610e25565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b0316036106b457348a1461062f5760405162461bcd60e51b815260206004820152601560248201527414d40e88185b5bdd5b9d081a5cc81a5b9d985b1a59605a1b604482015260640161030c565b6106ae85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505060408051808201909152601881527f53503a2043616c6c5769746856616c7565206661696c6564000000000000000060208201526001600160a01b038e169392508e9150610ed4565b506107d9565b6106c96001600160a01b038c1633308d610fad565b604051636eb1769f60e11b81523060048201526001600160a01b038a811660248301528b91908d169063dd62ed3e90604401602060405180830381865afa158015610716573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073a9190611569565b101561075957600554610759906001600160a01b038d16908b90611018565b6107d785858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505060408051808201909152601781527f53503a2046756e6374696f6e43616c6c206661696c656400000000000000000060208201526001600160a01b038e169392509050611130565b505b5f806107e48a610e25565b90508281116108415760405162461bcd60e51b8152602060048201526024808201527f53503a207265636569766520616d6f756e742073686f756c642061626f7665206044820152637a65726f60e01b606482015260840161030c565b61084b8382611594565b91508782101561089d5760405162461bcd60e51b815260206004820152601d60248201527f53503a207265636569766520616d6f756e74206e6f7420656e6f756768000000604482015260640161030c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168a6001600160a01b0316036108e5576108e0898361113e565b6108f9565b6108f96001600160a01b038b168a84611206565b60068054905f610908836115a7565b9091555050600654336001600160a01b03168b6001600160a01b03167f873a952504255baba041a0843512f2748152611db0d25da60657af220f7540ba858d8a8a60405161095994939291906115bf565b60405180910390a450505061096e6001600355565b50505050505050505050565b5f546001600160a01b031633146109a35760405162461bcd60e51b815260040161030c90611534565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586103423390565b5f546001600160a01b03163314610a015760405162461bcd60e51b815260040161030c90611534565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b03163314610a4d5760405162461bcd60e51b815260040161030c90611534565b6001600160a01b03165f908152600460205260409020805460ff19169055565b5f546001600160a01b03163314610a965760405162461bcd60e51b815260040161030c90611534565b6001600160a01b0381165f9081526001602052604081205460ff1615159003610b08576001600160a01b0381165f9081526001602081905260408220805460ff191690911790556002805460ff1691610aee83611605565b91906101000a81548160ff021916908360ff160217905550505b6040516001600160a01b03821681527f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d7474906020015b60405180910390a150565b5f80546001600160a01b0383811691161480610b7b57506001600160a01b0382165f9081526001602052604090205460ff165b92915050565b5f546001600160a01b03163314610baa5760405162461bcd60e51b815260040161030c90611534565b6001600160a01b038116610c0f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161030c565b610c1881611236565b50565b5f546001600160a01b03163314610c445760405162461bcd60e51b815260040161030c90611534565b6001600160a01b0381165f9081526001602081905260409091205460ff1615159003610cb4576001600160a01b0381165f908152600160205260408120805460ff191690556002805460ff1691610c9a83611623565b91906101000a81548160ff021916908360ff160217905550505b6040516001600160a01b03821681527f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e8111390602001610b3d565b600260035403610d3f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161030c565b6002600355565b6001600160a01b038416610d9c5760405162461bcd60e51b815260206004820152601b60248201527f53503a20746f6b656e4164647265737320697320696e76616c69640000000000604482015260640161030c565b5f8311610ddd5760405162461bcd60e51b815260206004820152600f60248201526e053503a20616d6f756e74206973203608c1b604482015260640161030c565b80610e1f5760405162461bcd60e51b815260206004820152601260248201527153503a206f7264657220697320656d70747960701b604482015260640161030c565b50505050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610e67575047610b7b565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ea9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecd9190611569565b9392505050565b606082471015610f355760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161030c565b5f80866001600160a01b03168587604051610f50919061163e565b5f6040518083038185875af1925050503d805f8114610f8a576040519150601f19603f3d011682016040523d82523d5f602084013e610f8f565b606091505b5091509150610fa087838387611285565b925050505b949350505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610e1f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526112fd565b8015806110905750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801561106a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108e9190611569565b155b6110fb5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161030c565b6040516001600160a01b03831660248201526044810182905261112b90849063095ea7b360e01b90606401610fe1565b505050565b6060610fa584845f85610ed4565b604080515f808252602082019092526001600160a01b038416908390604051611167919061163e565b5f6040518083038185875af1925050503d805f81146111a1576040519150601f19603f3d011682016040523d82523d5f602084013e6111a6565b606091505b505090508061112b5760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657248656c7065723a204e41544956455f5452414e534645525f60448201526511905253115160d21b606482015260840161030c565b6040516001600160a01b03831660248201526044810182905261112b90849063a9059cbb60e01b90606401610fe1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606083156112f35782515f036112ec576001600160a01b0385163b6112ec5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161030c565b5081610fa5565b610fa583836113d0565b5f611351826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111309092919063ffffffff16565b905080515f14806113715750808060200190518101906113719190611654565b61112b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161030c565b8151156113e05781518083602001fd5b8060405162461bcd60e51b815260040161030c9190611673565b80356001600160a01b0381168114611410575f80fd5b919050565b5f8083601f840112611425575f80fd5b50813567ffffffffffffffff81111561143c575f80fd5b602083019150836020828501011115611453575f80fd5b9250929050565b5f805f805f805f805f806101008b8d031215611474575f80fd5b61147d8b6113fa565b995060208b0135985061149260408c016113fa565b97506114a060608c016113fa565b96506114ae60808c016113fa565b955060a08b0135945060c08b013567ffffffffffffffff808211156114d1575f80fd5b6114dd8e838f01611415565b909650945060e08d01359150808211156114f5575f80fd5b506115028d828e01611415565b915080935050809150509295989b9194979a5092959850565b5f6020828403121561152b575f80fd5b610ecd826113fa565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611579575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610b7b57610b7b611580565b5f600182016115b8576115b8611580565b5060010190565b8481526001600160a01b03841660208201526060604082018190528101829052818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f60ff821660ff810361161a5761161a611580565b60010192915050565b5f60ff82168061163557611635611580565b5f190192915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611664575f80fd5b81518015158114610ecd575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea26469706673582212208292c5aee55f8b045a6b50253e9094e51e3aa61d39e26a9555b431d4b97399a564736f6c634300081900330000000000000000000000000000000000000000000000000000000000000079
Deployed Bytecode
0x6080604052600436106100df575f3560e01c806397ecfaab11610083578063adc879e911610055578063adc879e914610274578063b429afeb14610286578063f2fde38b146102a5578063f6a74ed7146102c457005b806397ecfaab146101c55780639b19251a146101e4578063a0cf0aea14610222578063a7fc7a071461025557005b806378bbe8b6116100bc57806378bbe8b6146101375780638456cb5914610162578063854cff2f146101765780638da5cb5b1461019557005b80633f4ba83a146100e85780635342389e146100fc578063565bc2341461012457005b366100e657005b005b3480156100f3575f80fd5b506100e66102e3565b348015610107575f80fd5b5061011160065481565b6040519081526020015b60405180910390f35b6100e661013236600461145a565b61035f565b348015610142575f80fd5b506002546101509060ff1681565b60405160ff909116815260200161011b565b34801561016d575f80fd5b506100e661097a565b348015610181575f80fd5b506100e661019036600461151b565b6109d8565b3480156101a0575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161011b565b3480156101d0575f80fd5b506100e66101df36600461151b565b610a24565b3480156101ef575f80fd5b506102126101fe36600461151b565b60046020525f908152604090205460ff1681565b604051901515815260200161011b565b34801561022d575f80fd5b506101ad7f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b348015610260575f80fd5b506100e661026f36600461151b565b610a6d565b34801561027f575f80fd5b5046610111565b348015610291575f80fd5b506102126102a036600461151b565b610b48565b3480156102b0575f80fd5b506100e66102bf36600461151b565b610b81565b3480156102cf575f80fd5b506100e66102de36600461151b565b610c1b565b5f546001600160a01b031633146103155760405162461bcd60e51b815260040161030c90611534565b60405180910390fd5b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b610367610ced565b60075460ff16156103a75760405162461bcd60e51b815260206004820152600a60248201526914d40e881c185d5cd95960b21b604482015260640161030c565b6103b38a8a8484610d46565b6001600160a01b03881630148015906103d457506001600160a01b03881615155b6104185760405162461bcd60e51b815260206004820152601560248201527414d40e881d185c99d95d081a5cc81a5b9d985b1a59605a1b604482015260640161030c565b6001600160a01b0388165f9081526004602052604090205460ff166104725760405162461bcd60e51b815260206004820152601060248201526f14d40e881ddc9bdb99c81d185c99d95d60821b604482015260640161030c565b826104b75760405162461bcd60e51b815260206004820152601560248201527453503a2063616c6c6461746120697320656d70747960581b604482015260640161030c565b6001600160a01b03871661050d5760405162461bcd60e51b815260206004820152601960248201527f53503a2072656365697665546f6b656e20697320656d70747900000000000000604482015260640161030c565b6001600160a01b03861661055b5760405162461bcd60e51b815260206004820152601560248201527453503a20726563656976657220697320656d70747960581b604482015260640161030c565b5f85116105a35760405162461bcd60e51b815260206004820152601660248201527553503a206d696e416d6f756e7420697320656d70747960501b604482015260640161030c565b5f6105ad88610e25565b90507f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168b6001600160a01b0316036106b457348a1461062f5760405162461bcd60e51b815260206004820152601560248201527414d40e88185b5bdd5b9d081a5cc81a5b9d985b1a59605a1b604482015260640161030c565b6106ae85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505060408051808201909152601881527f53503a2043616c6c5769746856616c7565206661696c6564000000000000000060208201526001600160a01b038e169392508e9150610ed4565b506107d9565b6106c96001600160a01b038c1633308d610fad565b604051636eb1769f60e11b81523060048201526001600160a01b038a811660248301528b91908d169063dd62ed3e90604401602060405180830381865afa158015610716573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073a9190611569565b101561075957600554610759906001600160a01b038d16908b90611018565b6107d785858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505060408051808201909152601781527f53503a2046756e6374696f6e43616c6c206661696c656400000000000000000060208201526001600160a01b038e169392509050611130565b505b5f806107e48a610e25565b90508281116108415760405162461bcd60e51b8152602060048201526024808201527f53503a207265636569766520616d6f756e742073686f756c642061626f7665206044820152637a65726f60e01b606482015260840161030c565b61084b8382611594565b91508782101561089d5760405162461bcd60e51b815260206004820152601d60248201527f53503a207265636569766520616d6f756e74206e6f7420656e6f756768000000604482015260640161030c565b7f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168a6001600160a01b0316036108e5576108e0898361113e565b6108f9565b6108f96001600160a01b038b168a84611206565b60068054905f610908836115a7565b9091555050600654336001600160a01b03168b6001600160a01b03167f873a952504255baba041a0843512f2748152611db0d25da60657af220f7540ba858d8a8a60405161095994939291906115bf565b60405180910390a450505061096e6001600355565b50505050505050505050565b5f546001600160a01b031633146109a35760405162461bcd60e51b815260040161030c90611534565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586103423390565b5f546001600160a01b03163314610a015760405162461bcd60e51b815260040161030c90611534565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b03163314610a4d5760405162461bcd60e51b815260040161030c90611534565b6001600160a01b03165f908152600460205260409020805460ff19169055565b5f546001600160a01b03163314610a965760405162461bcd60e51b815260040161030c90611534565b6001600160a01b0381165f9081526001602052604081205460ff1615159003610b08576001600160a01b0381165f9081526001602081905260408220805460ff191690911790556002805460ff1691610aee83611605565b91906101000a81548160ff021916908360ff160217905550505b6040516001600160a01b03821681527f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d7474906020015b60405180910390a150565b5f80546001600160a01b0383811691161480610b7b57506001600160a01b0382165f9081526001602052604090205460ff165b92915050565b5f546001600160a01b03163314610baa5760405162461bcd60e51b815260040161030c90611534565b6001600160a01b038116610c0f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161030c565b610c1881611236565b50565b5f546001600160a01b03163314610c445760405162461bcd60e51b815260040161030c90611534565b6001600160a01b0381165f9081526001602081905260409091205460ff1615159003610cb4576001600160a01b0381165f908152600160205260408120805460ff191690556002805460ff1691610c9a83611623565b91906101000a81548160ff021916908360ff160217905550505b6040516001600160a01b03821681527f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e8111390602001610b3d565b600260035403610d3f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161030c565b6002600355565b6001600160a01b038416610d9c5760405162461bcd60e51b815260206004820152601b60248201527f53503a20746f6b656e4164647265737320697320696e76616c69640000000000604482015260640161030c565b5f8311610ddd5760405162461bcd60e51b815260206004820152600f60248201526e053503a20616d6f756e74206973203608c1b604482015260640161030c565b80610e1f5760405162461bcd60e51b815260206004820152601260248201527153503a206f7264657220697320656d70747960701b604482015260640161030c565b50505050565b5f807f000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316836001600160a01b031603610e67575047610b7b565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ea9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecd9190611569565b9392505050565b606082471015610f355760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161030c565b5f80866001600160a01b03168587604051610f50919061163e565b5f6040518083038185875af1925050503d805f8114610f8a576040519150601f19603f3d011682016040523d82523d5f602084013e610f8f565b606091505b5091509150610fa087838387611285565b925050505b949350505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610e1f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526112fd565b8015806110905750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801561106a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108e9190611569565b155b6110fb5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161030c565b6040516001600160a01b03831660248201526044810182905261112b90849063095ea7b360e01b90606401610fe1565b505050565b6060610fa584845f85610ed4565b604080515f808252602082019092526001600160a01b038416908390604051611167919061163e565b5f6040518083038185875af1925050503d805f81146111a1576040519150601f19603f3d011682016040523d82523d5f602084013e6111a6565b606091505b505090508061112b5760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657248656c7065723a204e41544956455f5452414e534645525f60448201526511905253115160d21b606482015260840161030c565b6040516001600160a01b03831660248201526044810182905261112b90849063a9059cbb60e01b90606401610fe1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606083156112f35782515f036112ec576001600160a01b0385163b6112ec5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161030c565b5081610fa5565b610fa583836113d0565b5f611351826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111309092919063ffffffff16565b905080515f14806113715750808060200190518101906113719190611654565b61112b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161030c565b8151156113e05781518083602001fd5b8060405162461bcd60e51b815260040161030c9190611673565b80356001600160a01b0381168114611410575f80fd5b919050565b5f8083601f840112611425575f80fd5b50813567ffffffffffffffff81111561143c575f80fd5b602083019150836020828501011115611453575f80fd5b9250929050565b5f805f805f805f805f806101008b8d031215611474575f80fd5b61147d8b6113fa565b995060208b0135985061149260408c016113fa565b97506114a060608c016113fa565b96506114ae60808c016113fa565b955060a08b0135945060c08b013567ffffffffffffffff808211156114d1575f80fd5b6114dd8e838f01611415565b909650945060e08d01359150808211156114f5575f80fd5b506115028d828e01611415565b915080935050809150509295989b9194979a5092959850565b5f6020828403121561152b575f80fd5b610ecd826113fa565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611579575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610b7b57610b7b611580565b5f600182016115b8576115b8611580565b5060010190565b8481526001600160a01b03841660208201526060604082018190528101829052818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f60ff821660ff810361161a5761161a611580565b60010192915050565b5f60ff82168061163557611635611580565b5f190192915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611664575f80fd5b81518015158114610ecd575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea26469706673582212208292c5aee55f8b045a6b50253e9094e51e3aa61d39e26a9555b431d4b97399a564736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000079
-----Decoded View---------------
Arg [0] : _id_prefix (uint256): 121
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000079
Deployed Bytecode Sourcemap
13674:4560:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14922:110;;;;;;;;;;;;;:::i;14088:23::-;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;14088:23:0;;;;;;;;15928:2303;;;;;;:::i;:::-;;:::i;1436:30::-;;;;;;;;;;-1:-1:-1;1436:30:0;;;;;;;;;;;2057:4:1;2045:17;;;2027:36;;2015:2;2000:18;1436:30:0;1885:184:1;14809:105:0;;;;;;;;;;;;;:::i;15040:98::-;;;;;;;;;;-1:-1:-1;15040:98:0;;;;;:::i;:::-;;:::i;579:87::-;;;;;;;;;;-1:-1:-1;625:7:0;652:6;-1:-1:-1;;;;;652:6:0;579:87;;;-1:-1:-1;;;;;2429:32:1;;;2411:51;;2399:2;2384:18;579:87:0;2265:203:1;15146:99:0;;;;;;;;;;-1:-1:-1;15146:99:0;;;;;:::i;:::-;;:::i;13838:41::-;;;;;;;;;;-1:-1:-1;13838:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2638:14:1;;2631:22;2613:41;;2601:2;2586:18;13838:41:0;2473:187:1;13888:85:0;;;;;;;;;;;;;;;1753:250;;;;;;;;;;-1:-1:-1;1753:250:0;;;;;:::i;:::-;;:::i;14716:85::-;;;;;;;;;;-1:-1:-1;14780:13:0;14716:85;;1599:146;;;;;;;;;;-1:-1:-1;1599:146:0;;;;;:::i;:::-;;:::i;802:238::-;;;;;;;;;;-1:-1:-1;802:238:0;;;;;:::i;:::-;;:::i;2011:255::-;;;;;;;;;;-1:-1:-1;2011:255:0;;;;;:::i;:::-;;:::i;14922:110::-;625:7;652:6;-1:-1:-1;;;;;652:6:0;180:10;714:23;706:68;;;;-1:-1:-1;;;706:68:0;;;;;;;:::i;:::-;;;;;;;;;14971:7:::1;:15:::0;;-1:-1:-1;;14971:15:0::1;::::0;;15002:22:::1;180:10:::0;15011:12:::1;15002:22;::::0;-1:-1:-1;;;;;2429:32:1;;;2411:51;;2399:2;2384:18;15002:22:0::1;;;;;;;14922:110::o:0;15928:2303::-;2538:21;:19;:21::i;:::-;14666:7:::1;::::0;::::1;;14665:8;14657:31;;;::::0;-1:-1:-1;;;14657:31:0;;3228:2:1;14657:31:0::1;::::0;::::1;3210:21:1::0;3267:2;3247:18;;;3240:30;-1:-1:-1;;;3286:18:1;;;3279:40;3336:18;;14657:31:0::1;3026:334:1::0;14657:31:0::1;16233:40:::2;16248:9;16259:6;16267:5;;16233:14;:40::i;:::-;-1:-1:-1::0;;;;;16306:23:0;::::2;16324:4;16306:23;::::0;::::2;::::0;:47:::2;;-1:-1:-1::0;;;;;;16333:20:0;::::2;::::0;::::2;16306:47;16284:118;;;::::0;-1:-1:-1;;;16284:118:0;;3567:2:1;16284:118:0::2;::::0;::::2;3549:21:1::0;3606:2;3586:18;;;3579:30;-1:-1:-1;;;3625:18:1;;;3618:51;3686:18;;16284:118:0::2;3365:345:1::0;16284:118:0::2;-1:-1:-1::0;;;;;16421:17:0;::::2;;::::0;;;:9:::2;:17;::::0;;;;;::::2;;16413:46;;;::::0;-1:-1:-1;;;16413:46:0;;3917:2:1;16413:46:0::2;::::0;::::2;3899:21:1::0;3956:2;3936:18;;;3929:30;-1:-1:-1;;;3975:18:1;;;3968:46;4031:18;;16413:46:0::2;3715:340:1::0;16413:46:0::2;16478:19:::0;16470:53:::2;;;::::0;-1:-1:-1;;;16470:53:0;;4262:2:1;16470:53:0::2;::::0;::::2;4244:21:1::0;4301:2;4281:18;;;4274:30;-1:-1:-1;;;4320:18:1;;;4313:51;4381:18;;16470:53:0::2;4060:345:1::0;16470:53:0::2;-1:-1:-1::0;;;;;16542:26:0;::::2;16534:64;;;::::0;-1:-1:-1;;;16534:64:0;;4612:2:1;16534:64:0::2;::::0;::::2;4594:21:1::0;4651:2;4631:18;;;4624:30;4690:27;4670:18;;;4663:55;4735:18;;16534:64:0::2;4410:349:1::0;16534:64:0::2;-1:-1:-1::0;;;;;16617:22:0;::::2;16609:56;;;::::0;-1:-1:-1;;;16609:56:0;;4966:2:1;16609:56:0::2;::::0;::::2;4948:21:1::0;5005:2;4985:18;;;4978:30;-1:-1:-1;;;5024:18:1;;;5017:51;5085:18;;16609:56:0::2;4764:345:1::0;16609:56:0::2;16696:1;16684:9;:13;16676:48;;;::::0;-1:-1:-1;;;16676:48:0;;5316:2:1;16676:48:0::2;::::0;::::2;5298:21:1::0;5355:2;5335:18;;;5328:30;-1:-1:-1;;;5374:18:1;;;5367:52;5436:18;;16676:48:0::2;5114:346:1::0;16676:48:0::2;16737:19;16759:28;16774:12;16759:14;:28::i;:::-;16737:50;;16815:6;-1:-1:-1::0;;;;;16802:19:0::2;:9;-1:-1:-1::0;;;;;16802:19:0::2;::::0;16798:665:::2;;16856:9;16846:6;:19;16838:53;;;::::0;-1:-1:-1;;;16838:53:0;;5667:2:1;16838:53:0::2;::::0;::::2;5649:21:1::0;5706:2;5686:18;;;5679:30;-1:-1:-1;;;5725:18:1;;;5718:51;5786:18;;16838:53:0::2;5465:345:1::0;16838:53:0::2;16906:140;16953:8;;16906:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;16906:140:0::2;::::0;;;;::::2;::::0;;;::::2;::::0;;::::2;;::::0;::::2;::::0;-1:-1:-1;;;;;16906:28:0;::::2;::::0;:140;-1:-1:-1;16980:6:0;;-1:-1:-1;16906:28:0::2;:140::i;:::-;;16798:665;;;17079:137;-1:-1:-1::0;;;;;17079:34:0;::::2;180:10:::0;17171:4:::2;17195:6:::0;17079:34:::2;:137::i;:::-;17235:50;::::0;-1:-1:-1;;;17235:50:0;;17271:4:::2;17235:50;::::0;::::2;6027:34:1::0;-1:-1:-1;;;;;6097:15:1;;;6077:18;;;6070:43;17288:6:0;;17235:27;;::::2;::::0;::::2;::::0;5962:18:1;;17235:50:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:59;17231:150;;;17353:11;::::0;17315:50:::2;::::0;-1:-1:-1;;;;;17315:29:0;::::2;::::0;17345:6;;17315:29:::2;:50::i;:::-;17395:56;17415:8;;17395:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;;-1:-1:-1;;17395:56:0::2;::::0;;;;::::2;::::0;;;::::2;::::0;;::::2;;::::0;::::2;::::0;-1:-1:-1;;;;;17395:19:0;::::2;::::0;:56;-1:-1:-1;17395:56:0;-1:-1:-1;17395:19:0::2;:56::i;:::-;;16798:665;17475:18;17510:19:::0;17532:28:::2;17547:12;17532:14;:28::i;:::-;17510:50;;17607:11;17593;:25;17571:111;;;::::0;-1:-1:-1;;;17571:111:0;;6515:2:1;17571:111:0::2;::::0;::::2;6497:21:1::0;6554:2;6534:18;;;6527:30;6593:34;6573:18;;;6566:62;-1:-1:-1;;;6644:18:1;;;6637:34;6688:19;;17571:111:0::2;6313:400:1::0;17571:111:0::2;17706:25;17720:11:::0;17706;:25:::2;:::i;:::-;17693:38;;17766:9;17752:10;:23;;17744:65;;;::::0;-1:-1:-1;;;17744:65:0;;7185:2:1;17744:65:0::2;::::0;::::2;7167:21:1::0;7224:2;7204:18;;;7197:30;7263:31;7243:18;;;7236:59;7312:18;;17744:65:0::2;6983:353:1::0;17744:65:0::2;17840:6;-1:-1:-1::0;;;;;17824:22:0::2;:12;-1:-1:-1::0;;;;;17824:22:0::2;::::0;17820:198:::2;;17863:55;17897:8;17907:10;17863:33;:55::i;:::-;17820:198;;;17951:55;-1:-1:-1::0;;;;;17951:33:0;::::2;17985:8:::0;17995:10;17951:33:::2;:55::i;:::-;18030:8;:10:::0;;;:8:::2;:10;::::0;::::2;:::i;:::-;::::0;;;-1:-1:-1;;18136:8:0::2;::::0;180:10;-1:-1:-1;;;;;18056:167:0::2;18082:12;-1:-1:-1::0;;;;;18056:167:0::2;;18159:10;18184:8;18207:5;;18056:167;;;;;;;;;:::i;:::-;;;;;;;;16222:2009;;;2582:20:::0;2354:1;2825:7;:22;2776:79;2582:20;15928:2303;;;;;;;;;;:::o;14809:105::-;625:7;652:6;-1:-1:-1;;;;;652:6:0;180:10;714:23;706:68;;;;-1:-1:-1;;;706:68:0;;;;;;;:::i;:::-;14856:7:::1;:14:::0;;-1:-1:-1;;14856:14:0::1;14866:4;14856:14;::::0;;14886:20:::1;14893:12;180:10:::0;;100:98;15040;625:7;652:6;-1:-1:-1;;;;;652:6:0;180:10;714:23;706:68;;;;-1:-1:-1;;;706:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15107:16:0::1;;::::0;;;:9:::1;:16;::::0;;;;:23;;-1:-1:-1;;15107:23:0::1;15126:4;15107:23;::::0;;15040:98::o;15146:99::-;625:7;652:6;-1:-1:-1;;;;;652:6:0;180:10;714:23;706:68;;;;-1:-1:-1;;;706:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15213:16:0::1;15232:5;15213:16:::0;;;:9:::1;:16;::::0;;;;:24;;-1:-1:-1;;15213:24:0::1;::::0;;15146:99::o;1753:250::-;625:7;652:6;-1:-1:-1;;;;;652:6:0;180:10;714:23;706:68;;;;-1:-1:-1;;;706:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1829:24:0;::::1;;::::0;;;:11:::1;:24;::::0;;;;;::::1;;:33;;::::0;;1825:127:::1;;-1:-1:-1::0;;;;;1879:24:0;::::1;;::::0;;;1906:4:::1;1879:24;::::0;;;;;;:31;;-1:-1:-1;;1879:31:0::1;::::0;;::::1;::::0;;1925:13:::1;:15:::0;;1879:31:::1;1925:15;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1825:127;1967:28;::::0;-1:-1:-1;;;;;2429:32:1;;2411:51;;1967:28:0::1;::::0;2399:2:1;2384:18;1967:28:0::1;;;;;;;;1753:250:::0;:::o;1599:146::-;1663:4;652:6;;-1:-1:-1;;;;;1687:22:0;;;652:6;;1687:22;;:50;;-1:-1:-1;;;;;;1713:24:0;;;;;;:11;:24;;;;;;;;1687:50;1680:57;1599:146;-1:-1:-1;;1599:146:0:o;802:238::-;625:7;652:6;-1:-1:-1;;;;;652:6:0;180:10;714:23;706:68;;;;-1:-1:-1;;;706:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:22:0;::::1;883:110;;;::::0;-1:-1:-1;;;883:110:0;;8427:2:1;883:110:0::1;::::0;::::1;8409:21:1::0;8466:2;8446:18;;;8439:30;8505:34;8485:18;;;8478:62;-1:-1:-1;;;8556:18:1;;;8549:36;8602:19;;883:110:0::1;8225:402:1::0;883:110:0::1;1004:28;1023:8;1004:18;:28::i;:::-;802:238:::0;:::o;2011:255::-;625:7;652:6;-1:-1:-1;;;;;652:6:0;180:10;714:23;706:68;;;;-1:-1:-1;;;706:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2090:24:0;::::1;;::::0;;;:11:::1;:24;::::0;;;;;;;;::::1;;:32;;::::0;;2086:127:::1;;-1:-1:-1::0;;;;;2139:24:0;::::1;2166:5;2139:24:::0;;;:11:::1;:24;::::0;;;;:32;;-1:-1:-1;;2139:32:0::1;::::0;;2186:13:::1;:15:::0;;2139:32:::1;2186:15;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2086:127;2228:30;::::0;-1:-1:-1;;;;;2429:32:1;;2411:51;;2228:30:0::1;::::0;2399:2:1;2384:18;2228:30:0::1;2265:203:1::0;2618:150:0;2398:1;2676:7;;:19;2668:63;;;;-1:-1:-1;;;2668:63:0;;9017:2:1;2668:63:0;;;8999:21:1;9056:2;9036:18;;;9029:30;9095:33;9075:18;;;9068:61;9146:18;;2668:63:0;8815:355:1;2668:63:0;2398:1;2742:7;:18;2618:150::o;15602:318::-;-1:-1:-1;;;;;15750:23:0;;15742:63;;;;-1:-1:-1;;;15742:63:0;;9377:2:1;15742:63:0;;;9359:21:1;9416:2;9396:18;;;9389:30;9455:29;9435:18;;;9428:57;9502:18;;15742:63:0;9175:351:1;15742:63:0;15833:1;15824:6;:10;15816:38;;;;-1:-1:-1;;;15816:38:0;;9733:2:1;15816:38:0;;;9715:21:1;9772:2;9752:18;;;9745:30;-1:-1:-1;;;9791:18:1;;;9784:45;9846:18;;15816:38:0;9531:339:1;15816:38:0;15873:16;15865:47;;;;-1:-1:-1;;;15865:47:0;;10077:2:1;15865:47:0;;;10059:21:1;10116:2;10096:18;;;10089:30;-1:-1:-1;;;10135:18:1;;;10128:48;10193:18;;15865:47:0;9875:342:1;15865:47:0;15602:318;;;;:::o;15253:341::-;15338:7;15358:16;15405:6;-1:-1:-1;;;;;15389:22:0;:12;-1:-1:-1;;;;;15389:22:0;;15385:176;;-1:-1:-1;15439:21:0;15385:176;;;15504:45;;-1:-1:-1;;;15504:45:0;;15543:4;15504:45;;;2411:51:1;-1:-1:-1;;;;;15504:30:0;;;;;2384:18:1;;15504:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15493:56;15578:8;-1:-1:-1;;;15253:341:0:o;5576:612::-;5746:12;5818:5;5793:21;:30;;5771:118;;;;-1:-1:-1;;;5771:118:0;;10424:2:1;5771:118:0;;;10406:21:1;10463:2;10443:18;;;10436:30;10502:34;10482:18;;;10475:62;-1:-1:-1;;;10553:18:1;;;10546:36;10599:19;;5771:118:0;10222:402:1;5771:118:0;5901:12;5915:23;5942:6;-1:-1:-1;;;;;5942:11:0;5961:5;5982:4;5942:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:97;;;;6028:152;6073:6;6098:7;6124:10;6153:12;6028:26;:152::i;:::-;6008:172;;;;5576:612;;;;;;;:::o;9635:285::-;9833:68;;-1:-1:-1;;;;;11193:15:1;;;9833:68:0;;;11175:34:1;11245:15;;11225:18;;;11218:43;11277:18;;;11270:34;;;9779:133:0;;9813:5;;-1:-1:-1;;;9856:27:0;11110:18:1;;9833:68:0;;;;-1:-1:-1;;9833:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;9833:68:0;-1:-1:-1;;;;;;9833:68:0;;;;;;;;;;9779:19;:133::i;9928:433::-;10072:10;;;10071:62;;-1:-1:-1;10088:39:0;;-1:-1:-1;;;10088:39:0;;10112:4;10088:39;;;6027:34:1;-1:-1:-1;;;;;6097:15:1;;;6077:18;;;6070:43;10088:15:0;;;;;5962:18:1;;10088:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;10071:62;10049:166;;;;-1:-1:-1;;;10049:166:0;;11517:2:1;10049:166:0;;;11499:21:1;11556:2;11536:18;;;11529:30;11595:34;11575:18;;;11568:62;-1:-1:-1;;;11646:18:1;;;11639:52;11708:19;;10049:166:0;11315:418:1;10049:166:0;10280:62;;-1:-1:-1;;;;;11930:32:1;;10280:62:0;;;11912:51:1;11979:18;;;11972:34;;;10226:127:0;;10260:5;;-1:-1:-1;;;10303:22:0;11885:18:1;;10280:62:0;11738:274:1;10226:127:0;9928:433;;;:::o;4975:229::-;5112:12;5144:52;5166:6;5174:4;5180:1;5183:12;5144:21;:52::i;13310:206::-;13426:12;;;13386;13426;;;;;;;;;-1:-1:-1;;;;;13404:7:0;;;13419:5;;13404:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13385:54;;;13458:7;13450:58;;;;-1:-1:-1;;;13450:58:0;;12351:2:1;13450:58:0;;;12333:21:1;12390:2;12370:18;;;12363:30;12429:34;12409:18;;;12402:62;-1:-1:-1;;;12480:18:1;;;12473:36;12526:19;;13450:58:0;12149:402:1;9413:214:0;9550:58;;-1:-1:-1;;;;;11930:32:1;;9550:58:0;;;11912:51:1;11979:18;;;11972:34;;;9496:123:0;;9530:5;;-1:-1:-1;;;9573:23:0;11885:18:1;;9550:58:0;11738:274:1;1048:191:0;1122:16;1141:6;;-1:-1:-1;;;;;1158:17:0;;;-1:-1:-1;;;;;;1158:17:0;;;;;;1191:40;;1141:6;;;;;;;1191:40;;1122:16;1191:40;1111:128;1048:191;:::o;7692:644::-;7877:12;7906:7;7902:427;;;7934:10;:17;7955:1;7934:22;7930:290;;-1:-1:-1;;;;;4221:19:0;;;8144:60;;;;-1:-1:-1;;;8144:60:0;;12758:2:1;8144:60:0;;;12740:21:1;12797:2;12777:18;;;12770:30;12836:31;12816:18;;;12809:59;12885:18;;8144:60:0;12556:353:1;8144:60:0;-1:-1:-1;8241:10:0;8234:17;;7902:427;8284:33;8292:10;8304:12;8284:7;:33::i;12521:380::-;12602:23;12628:106;12670:4;12628:106;;;;;;;;;;;;;;;;;12636:5;-1:-1:-1;;;;;12628:27:0;;;:106;;;;;:::i;:::-;12602:132;;12767:10;:17;12788:1;12767:22;:56;;;;12804:10;12793:30;;;;;;;;;;;;:::i;:::-;12745:148;;;;-1:-1:-1;;;12745:148:0;;13398:2:1;12745:148:0;;;13380:21:1;13437:2;13417:18;;;13410:30;13476:34;13456:18;;;13449:62;-1:-1:-1;;;13527:18:1;;;13520:40;13577:19;;12745:148:0;13196:406:1;8657:577:0;8843:17;;:21;8839:388;;9075:10;9069:17;9132:15;9119:10;9115:2;9111:19;9104:44;8839:388;9202:12;9195:20;;-1:-1:-1;;;9195:20:0;;;;;;;;:::i;196:173:1:-;264:20;;-1:-1:-1;;;;;313:31:1;;303:42;;293:70;;359:1;356;349:12;293:70;196:173;;;:::o;374:347::-;425:8;435:6;489:3;482:4;474:6;470:17;466:27;456:55;;507:1;504;497:12;456:55;-1:-1:-1;530:20:1;;573:18;562:30;;559:50;;;605:1;602;595:12;559:50;642:4;634:6;630:17;618:29;;694:3;687:4;678:6;670;666:19;662:30;659:39;656:59;;;711:1;708;701:12;656:59;374:347;;;;;:::o;726:1154::-;870:6;878;886;894;902;910;918;926;934;942;995:3;983:9;974:7;970:23;966:33;963:53;;;1012:1;1009;1002:12;963:53;1035:29;1054:9;1035:29;:::i;:::-;1025:39;;1111:2;1100:9;1096:18;1083:32;1073:42;;1134:38;1168:2;1157:9;1153:18;1134:38;:::i;:::-;1124:48;;1191:38;1225:2;1214:9;1210:18;1191:38;:::i;:::-;1181:48;;1248:39;1282:3;1271:9;1267:19;1248:39;:::i;:::-;1238:49;;1334:3;1323:9;1319:19;1306:33;1296:43;;1390:3;1379:9;1375:19;1362:33;1414:18;1455:2;1447:6;1444:14;1441:34;;;1471:1;1468;1461:12;1441:34;1510:58;1560:7;1551:6;1540:9;1536:22;1510:58;:::i;:::-;1587:8;;-1:-1:-1;1484:84:1;-1:-1:-1;1675:3:1;1660:19;;1647:33;;-1:-1:-1;1692:16:1;;;1689:36;;;1721:1;1718;1711:12;1689:36;;1760:60;1812:7;1801:8;1790:9;1786:24;1760:60;:::i;:::-;1734:86;;1839:8;1829:18;;;1866:8;1856:18;;;726:1154;;;;;;;;;;;;;:::o;2074:186::-;2133:6;2186:2;2174:9;2165:7;2161:23;2157:32;2154:52;;;2202:1;2199;2192:12;2154:52;2225:29;2244:9;2225:29;:::i;2665:356::-;2867:2;2849:21;;;2886:18;;;2879:30;2945:34;2940:2;2925:18;;2918:62;3012:2;2997:18;;2665:356::o;6124:184::-;6194:6;6247:2;6235:9;6226:7;6222:23;6218:32;6215:52;;;6263:1;6260;6253:12;6215:52;-1:-1:-1;6286:16:1;;6124:184;-1:-1:-1;6124:184:1:o;6718:127::-;6779:10;6774:3;6770:20;6767:1;6760:31;6810:4;6807:1;6800:15;6834:4;6831:1;6824:15;6850:128;6917:9;;;6938:11;;;6935:37;;;6952:18;;:::i;7341:135::-;7380:3;7401:17;;;7398:43;;7421:18;;:::i;:::-;-1:-1:-1;7468:1:1;7457:13;;7341:135::o;7481:559::-;7676:25;;;-1:-1:-1;;;;;7737:32:1;;7732:2;7717:18;;7710:60;7806:2;7801;7786:18;;7779:30;;;7825:18;;7818:34;;;7845:6;7895;7889:3;7874:19;;7861:49;7960:1;7930:22;;;7954:3;7926:32;;;7919:43;;;;8023:2;8002:15;;;-1:-1:-1;;7998:29:1;7983:45;7979:55;;7481:559;-1:-1:-1;;;7481:559:1:o;8045:175::-;8082:3;8126:4;8119:5;8115:16;8155:4;8146:7;8143:17;8140:43;;8163:18;;:::i;:::-;8212:1;8199:15;;8045:175;-1:-1:-1;;8045:175:1:o;8632:178::-;8669:3;8713:4;8706:5;8702:16;8737:7;8727:41;;8748:18;;:::i;:::-;-1:-1:-1;;8784:20:1;;8632:178;-1:-1:-1;;8632:178:1:o;10629:301::-;10758:3;10796:6;10790:13;10842:6;10835:4;10827:6;10823:17;10818:3;10812:37;10904:1;10868:16;;10893:13;;;-1:-1:-1;10868:16:1;10629:301;-1:-1:-1;10629:301:1:o;12914:277::-;12981:6;13034:2;13022:9;13013:7;13009:23;13005:32;13002:52;;;13050:1;13047;13040:12;13002:52;13082:9;13076:16;13135:5;13128:13;13121:21;13114:5;13111:32;13101:60;;13157:1;13154;13147:12;13607:418;13756:2;13745:9;13738:21;13719:4;13788:6;13782:13;13831:6;13826:2;13815:9;13811:18;13804:34;13890:6;13885:2;13877:6;13873:15;13868:2;13857:9;13853:18;13847:50;13946:1;13941:2;13932:6;13921:9;13917:22;13913:31;13906:42;14016:2;14009;14005:7;14000:2;13992:6;13988:15;13984:29;13973:9;13969:45;13965:54;13957:62;;;13607:418;;;;:::o
Swarm Source
ipfs://8292c5aee55f8b045a6b50253e9094e51e3aa61d39e26a9555b431d4b97399a5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
POL | 100.00% | $0.217701 | 0.01 | $0.002177 |
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.