Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 856 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 13834691 | 1123 days ago | IN | 0 ETH | 0.00172462 | ||||
Transfer | 11556210 | 1477 days ago | IN | 0 ETH | 0.00296464 | ||||
Transfer | 11059363 | 1553 days ago | IN | 0 ETH | 0.00176272 | ||||
Transfer | 11058649 | 1554 days ago | IN | 0 ETH | 0.00296272 | ||||
Transfer | 11058640 | 1554 days ago | IN | 0 ETH | 0.00296272 | ||||
Transfer | 11058629 | 1554 days ago | IN | 0 ETH | 0.00416272 | ||||
Transfer | 10909068 | 1577 days ago | IN | 0 ETH | 0.00416368 | ||||
Transfer | 10908886 | 1577 days ago | IN | 0 ETH | 0.00416272 | ||||
Transfer | 10603579 | 1624 days ago | IN | 0 ETH | 0.00176272 | ||||
Transfer | 10603246 | 1624 days ago | IN | 0 ETH | 0.00416176 | ||||
Transfer | 10591788 | 1626 days ago | IN | 0 ETH | 0.00416272 | ||||
Transfer | 10589068 | 1626 days ago | IN | 0 ETH | 0.00176272 | ||||
Transfer | 10589065 | 1626 days ago | IN | 0 ETH | 0.00176272 | ||||
Transfer | 10589062 | 1626 days ago | IN | 0 ETH | 0.00176368 | ||||
Transfer | 10589054 | 1626 days ago | IN | 0 ETH | 0.00176272 | ||||
Transfer | 10588533 | 1626 days ago | IN | 0 ETH | 0.00176368 | ||||
Transfer | 10588525 | 1626 days ago | IN | 0 ETH | 0.00176368 | ||||
Transfer | 10588129 | 1626 days ago | IN | 0 ETH | 0.00473509 | ||||
Transfer | 10588127 | 1626 days ago | IN | 0 ETH | 0.00473618 | ||||
Transfer | 10588125 | 1626 days ago | IN | 0 ETH | 0.00473618 | ||||
Transfer | 10588122 | 1626 days ago | IN | 0 ETH | 0.00473509 | ||||
Transfer | 10588122 | 1626 days ago | IN | 0 ETH | 0.00473509 | ||||
Transfer | 10588122 | 1626 days ago | IN | 0 ETH | 0.00473509 | ||||
Transfer | 10571187 | 1629 days ago | IN | 0 ETH | 0.00416272 | ||||
Transfer | 10566362 | 1629 days ago | IN | 0 ETH | 0.00176272 |
Loading...
Loading
Contract Name:
ACI
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-06-28 */ /** *Submitted for verification at Etherscan.io on 2020-03-15 */ /** *Submitted for verification at Etherscan.io on 2019-02-27 */ pragma solidity ^0.5.2; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; function safeTransfer(IERC20 token, address to, uint256 value) internal { require(token.transfer(to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { require(token.transferFrom(from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' require((value == 0) || (token.allowance(address(this), spender) == 0)); require(token.approve(spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); require(token.approve(spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value); require(token.approve(spender, newAllowance)); } } /** * @title ERC20 interface * @dev see https://eips.ethereum.org/EIPS/eip-20 */ interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * https://eips.ethereum.org/EIPS/eip-20 * Originally based on code by FirstBlood: * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol * * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for * all accounts just by listening to said events. Note that this isn't required by the specification, and other * compliant implementations may not do it. */ contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowed; uint256 private _totalSupply; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param owner address The address which owns the funds. * @param spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address owner, address spender) public view returns (uint256) { return _allowed[owner][spender]; } /** * @dev Transfer token for a specified address * @param to The address to transfer to. * @param value The amount to be transferred. */ function transfer(address to, uint256 value) public returns (bool) { _transfer(msg.sender, to, value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) public returns (bool) { _approve(msg.sender, spender, value); return true; } /** * @dev Transfer tokens from one address to another. * Note that while this function emits an Approval event, this is not required as per the specification, * and other compliant implementations may not emit the event. * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to * @param value uint256 the amount of tokens to be transferred */ function transferFrom(address from, address to, uint256 value) public returns (bool) { _transfer(from, to, value); _approve(from, msg.sender, _allowed[from][msg.sender].sub(value)); return true; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue)); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue)); return true; } /** * @dev Transfer token for a specified addresses * @param from The address to transfer from. * @param to The address to transfer to. * @param value The amount to be transferred. */ function _transfer(address from, address to, uint256 value) internal { require(to != address(0)); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } /** * @dev Internal function that mints an amount of the token and assigns it to * an account. This encapsulates the modification of balances such that the * proper events are emitted. * @param account The account that will receive the created tokens. * @param value The amount that will be created. */ function _mint(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } /** * @dev Internal function that burns an amount of the token of a given * account. * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burn(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } /** * @dev Approve an address to spend another addresses' tokens. * @param owner The address that owns the tokens. * @param spender The address that will spend the tokens. * @param value The number of tokens that can be spent. */ function _approve(address owner, address spender, uint256 value) internal { require(spender != address(0)); require(owner != address(0)); _allowed[owner][spender] = value; emit Approval(owner, spender, value); } /** * @dev Internal function that burns an amount of the token of a given * account, deducting from the sender's allowance for said account. Uses the * internal burn function. * Emits an Approval event (reflecting the reduced allowance). * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burnFrom(address account, uint256 value) internal { _burn(account, value); _approve(account, msg.sender, _allowed[account][msg.sender].sub(value)); } } /** * @title Roles * @dev Library for managing addresses assigned to a Role. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev give an account access to this role */ function add(Role storage role, address account) internal { require(account != address(0)); require(!has(role, account)); role.bearer[account] = true; } /** * @dev remove an account's access to this role */ function remove(Role storage role, address account) internal { require(account != address(0)); require(has(role, account)); role.bearer[account] = false; } /** * @dev check if an account has this role * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0)); return role.bearer[account]; } } contract PauserRole { using Roles for Roles.Role; event PauserAdded(address indexed account); event PauserRemoved(address indexed account); Roles.Role private _pausers; constructor () internal { _addPauser(msg.sender); } modifier onlyPauser() { require(isPauser(msg.sender)); _; } function isPauser(address account) public view returns (bool) { return _pausers.has(account); } function addPauser(address account) public onlyPauser { _addPauser(account); } function renouncePauser() public { _removePauser(msg.sender); } function _addPauser(address account) internal { _pausers.add(account); emit PauserAdded(account); } function _removePauser(address account) internal { _pausers.remove(account); emit PauserRemoved(account); } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is PauserRole { event Paused(address account); event Unpaused(address account); bool private _paused; constructor () internal { _paused = false; } /** * @return true if the contract is paused, false otherwise. */ function paused() public view returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!_paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(_paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyPauser whenNotPaused { _paused = true; emit Paused(msg.sender); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyPauser whenPaused { _paused = false; emit Unpaused(msg.sender); } } /** * @title Pausable token * @dev ERC20 modified with pausable transfers. */ contract ERC20Pausable is ERC20, Pausable { function transfer(address to, uint256 value) public whenNotPaused returns (bool) { return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) { return super.transferFrom(from, to, value); } function approve(address spender, uint256 value) public whenNotPaused returns (bool) { return super.approve(spender, value); } function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool success) { return super.increaseAllowance(spender, addedValue); } function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool success) { return super.decreaseAllowance(spender, subtractedValue); } } /** * @title ERC20Detailed token * @dev The decimals are only for visualization purposes. * All the operations are done using the smallest and indivisible token unit, * just as on Ethereum all the operations are done in wei. */ contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @return the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @return the symbol of the token. */ function symbol() public view returns (string memory) { return _symbol; } /** * @return the number of decimals of the token. */ function decimals() public view returns (uint8) { return _decimals; } } /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract ERC20Burnable is ERC20 { /** * @dev Burns a specific amount of tokens. * @param value The amount of token to be burned. */ function burn(uint256 value) public { _burn(msg.sender, value); } /** * @dev Burns a specific amount of tokens from the target address and decrements allowance * @param from address The account whose tokens will be burned. * @param value uint256 The amount of token to be burned. */ function burnFrom(address from, uint256 value) public { _burnFrom(from, value); } } contract MinterRole { using Roles for Roles.Role; event MinterAdded(address indexed account); event MinterRemoved(address indexed account); Roles.Role private _minters; constructor () internal { _addMinter(msg.sender); } modifier onlyMinter() { require(isMinter(msg.sender)); _; } function isMinter(address account) public view returns (bool) { return _minters.has(account); } function addMinter(address account) public onlyMinter { _addMinter(account); } function renounceMinter() public { _removeMinter(msg.sender); } function _addMinter(address account) internal { _minters.add(account); emit MinterAdded(account); } function _removeMinter(address account) internal { _minters.remove(account); emit MinterRemoved(account); } } /** * @title ERC20Mintable * @dev ERC20 minting logic */ contract ERC20Mintable is ERC20, MinterRole { /** * @dev Function to mint tokens * @param to The address that will receive the minted tokens. * @param value The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address to, uint256 value) public onlyMinter returns (bool) { _mint(to, value); return true; } } /** * @title ACI * @dev ACI ERC20 Token, where all tokens are pre-assigned to the creator. * Note they can later distribute these tokens as they wish using `transfer` and other * `ERC20` functions. */ contract ACI is ERC20Mintable, ERC20Burnable, ERC20Pausable, ERC20Detailed { uint8 public constant DECIMALS = 8; uint256 public constant INITIAL_SUPPLY = 100000000 * (10 ** uint256(DECIMALS)); /** * @dev Constructor that gives msg.sender all of existing tokens. */ constructor () public ERC20Detailed("ACI", "ACI", DECIMALS) { _mint(msg.sender, INITIAL_SUPPLY); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"constant":true,"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isPauser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600381526020017f41434900000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4143490000000000000000000000000000000000000000000000000000000000815250600862000091336200013260201b60201c565b620000a2336200019360201b60201c565b6000600560006101000a81548160ff0219169083151502179055508260069080519060200190620000d5929190620004be565b508160079080519060200190620000ee929190620004be565b5080600860006101000a81548160ff021916908360ff1602179055505050506200012c33600860ff16600a0a6305f5e10002620001f460201b60201c565b6200056d565b6200014d8160036200035560201b6200194c1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b620001ae8160046200035560201b6200194c1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022f57600080fd5b6200024b816002546200040b60201b620018821790919060201c565b600281905550620002a9816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200040b60201b620018821790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200039057600080fd5b620003a282826200042b60201b60201c565b15620003ad57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000808284019050838110156200042157600080fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200046757600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200050157805160ff191683800117855562000532565b8280016001018555821562000532579182015b828111156200053157825182559160200191906001019062000514565b5b50905062000541919062000545565b5090565b6200056a91905b80821115620005665760008160009055506001016200054c565b5090565b90565b611a2d806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635c975abb116100de57806395d89b4111610097578063a457c2d711610071578063a457c2d7146106bc578063a9059cbb14610722578063aa271e1a14610788578063dd62ed3e146107e457610173565b806395d89b41146105eb578063983b2d561461066e57806398650275146106b257610173565b80635c975abb146104cb5780636ef8d66d146104ed57806370a08231146104f757806379cc67901461054f57806382dc1ec41461059d5780638456cb59146105e157610173565b8063313ce56711610130578063313ce56714610347578063395093511461036b5780633f4ba83a146103d157806340c10f19146103db57806342966c681461044157806346fbf68e1461046f57610173565b806306fdde0314610178578063095ea7b3146101fb57806318160ddd1461026157806323b872dd1461027f5780632e0f2625146103055780632ff2e9dc14610329575b600080fd5b61018061085c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c05780820151818401526020810190506101a5565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102476004803603604081101561021157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fe565b604051808215151515815260200191505060405180910390f35b61026961092c565b6040518082815260200191505060405180910390f35b6102eb6004803603606081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610936565b604051808215151515815260200191505060405180910390f35b61030d610966565b604051808260ff1660ff16815260200191505060405180910390f35b61033161096b565b6040518082815260200191505060405180910390f35b61034f61097c565b604051808260ff1660ff16815260200191505060405180910390f35b6103b76004803603604081101561038157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610993565b604051808215151515815260200191505060405180910390f35b6103d96109c1565b005b610427600480360360408110156103f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a6c565b604051808215151515815260200191505060405180910390f35b61046d6004803603602081101561045757600080fd5b8101908080359060200190929190505050610a94565b005b6104b16004803603602081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa1565b604051808215151515815260200191505060405180910390f35b6104d3610abe565b604051808215151515815260200191505060405180910390f35b6104f5610ad5565b005b6105396004803603602081101561050d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae0565b6040518082815260200191505060405180910390f35b61059b6004803603604081101561056557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b28565b005b6105df600480360360208110156105b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b36565b005b6105e9610b54565b005b6105f3610c00565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610633578082015181840152602081019050610618565b50505050905090810190601f1680156106605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b06004803603602081101561068457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ca2565b005b6106ba610cc0565b005b610708600480360360408110156106d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ccb565b604051808215151515815260200191505060405180910390f35b61076e6004803603604081101561073857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cf9565b604051808215151515815260200191505060405180910390f35b6107ca6004803603602081101561079e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d27565b604051808215151515815260200191505060405180910390f35b610846600480360360408110156107fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d44565b6040518082815260200191505060405180910390f35b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b6000600560009054906101000a900460ff161561091a57600080fd5b6109248383610dcb565b905092915050565b6000600254905090565b6000600560009054906101000a900460ff161561095257600080fd5b61095d848484610de2565b90509392505050565b600881565b600860ff16600a0a6305f5e1000281565b6000600860009054906101000a900460ff16905090565b6000600560009054906101000a900460ff16156109af57600080fd5b6109b98383610e93565b905092915050565b6109ca33610aa1565b6109d357600080fd5b600560009054906101000a900460ff166109ec57600080fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610a7733610d27565b610a8057600080fd5b610a8a8383610f38565b6001905092915050565b610a9e338261108a565b50565b6000610ab78260046111dc90919063ffffffff16565b9050919050565b6000600560009054906101000a900460ff16905090565b610ade3361126e565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b3282826112c8565b5050565b610b3f33610aa1565b610b4857600080fd5b610b518161136f565b50565b610b5d33610aa1565b610b6657600080fd5b600560009054906101000a900460ff1615610b8057600080fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c985780601f10610c6d57610100808354040283529160200191610c98565b820191906000526020600020905b815481529060010190602001808311610c7b57829003601f168201915b5050505050905090565b610cab33610d27565b610cb457600080fd5b610cbd816113c9565b50565b610cc933611423565b565b6000600560009054906101000a900460ff1615610ce757600080fd5b610cf1838361147d565b905092915050565b6000600560009054906101000a900460ff1615610d1557600080fd5b610d1f8383611522565b905092915050565b6000610d3d8260036111dc90919063ffffffff16565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000610dd8338484611539565b6001905092915050565b6000610def848484611698565b610e888433610e8385600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b611539565b600190509392505050565b6000610f2e3384610f2985600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188290919063ffffffff16565b611539565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7257600080fd5b610f878160025461188290919063ffffffff16565b600281905550610fde816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110c457600080fd5b6110d98160025461186290919063ffffffff16565b600281905550611130816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561121757600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6112828160046118a190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6112d2828261108a565b61136b823361136684600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b611539565b5050565b61138381600461194c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6113dd81600361194c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6114378160036118a190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b6000611518338461151385600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b611539565b6001905092915050565b600061152f338484611698565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561157357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115ad57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d257600080fd5b611723816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117b6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111561187157600080fd5b600082840390508091505092915050565b60008082840190508381101561189757600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118db57600080fd5b6118e582826111dc565b6118ee57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561198657600080fd5b61199082826111dc565b1561199a57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea265627a7a72315820c81bf7e3da57163f6b2c14554e79c2cff7202bf8dd295d065d6a25878184191a64736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80635c975abb116100de57806395d89b4111610097578063a457c2d711610071578063a457c2d7146106bc578063a9059cbb14610722578063aa271e1a14610788578063dd62ed3e146107e457610173565b806395d89b41146105eb578063983b2d561461066e57806398650275146106b257610173565b80635c975abb146104cb5780636ef8d66d146104ed57806370a08231146104f757806379cc67901461054f57806382dc1ec41461059d5780638456cb59146105e157610173565b8063313ce56711610130578063313ce56714610347578063395093511461036b5780633f4ba83a146103d157806340c10f19146103db57806342966c681461044157806346fbf68e1461046f57610173565b806306fdde0314610178578063095ea7b3146101fb57806318160ddd1461026157806323b872dd1461027f5780632e0f2625146103055780632ff2e9dc14610329575b600080fd5b61018061085c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c05780820151818401526020810190506101a5565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102476004803603604081101561021157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fe565b604051808215151515815260200191505060405180910390f35b61026961092c565b6040518082815260200191505060405180910390f35b6102eb6004803603606081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610936565b604051808215151515815260200191505060405180910390f35b61030d610966565b604051808260ff1660ff16815260200191505060405180910390f35b61033161096b565b6040518082815260200191505060405180910390f35b61034f61097c565b604051808260ff1660ff16815260200191505060405180910390f35b6103b76004803603604081101561038157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610993565b604051808215151515815260200191505060405180910390f35b6103d96109c1565b005b610427600480360360408110156103f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a6c565b604051808215151515815260200191505060405180910390f35b61046d6004803603602081101561045757600080fd5b8101908080359060200190929190505050610a94565b005b6104b16004803603602081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa1565b604051808215151515815260200191505060405180910390f35b6104d3610abe565b604051808215151515815260200191505060405180910390f35b6104f5610ad5565b005b6105396004803603602081101561050d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae0565b6040518082815260200191505060405180910390f35b61059b6004803603604081101561056557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b28565b005b6105df600480360360208110156105b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b36565b005b6105e9610b54565b005b6105f3610c00565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610633578082015181840152602081019050610618565b50505050905090810190601f1680156106605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b06004803603602081101561068457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ca2565b005b6106ba610cc0565b005b610708600480360360408110156106d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ccb565b604051808215151515815260200191505060405180910390f35b61076e6004803603604081101561073857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cf9565b604051808215151515815260200191505060405180910390f35b6107ca6004803603602081101561079e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d27565b604051808215151515815260200191505060405180910390f35b610846600480360360408110156107fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d44565b6040518082815260200191505060405180910390f35b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b6000600560009054906101000a900460ff161561091a57600080fd5b6109248383610dcb565b905092915050565b6000600254905090565b6000600560009054906101000a900460ff161561095257600080fd5b61095d848484610de2565b90509392505050565b600881565b600860ff16600a0a6305f5e1000281565b6000600860009054906101000a900460ff16905090565b6000600560009054906101000a900460ff16156109af57600080fd5b6109b98383610e93565b905092915050565b6109ca33610aa1565b6109d357600080fd5b600560009054906101000a900460ff166109ec57600080fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610a7733610d27565b610a8057600080fd5b610a8a8383610f38565b6001905092915050565b610a9e338261108a565b50565b6000610ab78260046111dc90919063ffffffff16565b9050919050565b6000600560009054906101000a900460ff16905090565b610ade3361126e565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b3282826112c8565b5050565b610b3f33610aa1565b610b4857600080fd5b610b518161136f565b50565b610b5d33610aa1565b610b6657600080fd5b600560009054906101000a900460ff1615610b8057600080fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c985780601f10610c6d57610100808354040283529160200191610c98565b820191906000526020600020905b815481529060010190602001808311610c7b57829003601f168201915b5050505050905090565b610cab33610d27565b610cb457600080fd5b610cbd816113c9565b50565b610cc933611423565b565b6000600560009054906101000a900460ff1615610ce757600080fd5b610cf1838361147d565b905092915050565b6000600560009054906101000a900460ff1615610d1557600080fd5b610d1f8383611522565b905092915050565b6000610d3d8260036111dc90919063ffffffff16565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000610dd8338484611539565b6001905092915050565b6000610def848484611698565b610e888433610e8385600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b611539565b600190509392505050565b6000610f2e3384610f2985600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188290919063ffffffff16565b611539565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7257600080fd5b610f878160025461188290919063ffffffff16565b600281905550610fde816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110c457600080fd5b6110d98160025461186290919063ffffffff16565b600281905550611130816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561121757600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6112828160046118a190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6112d2828261108a565b61136b823361136684600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b611539565b5050565b61138381600461194c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6113dd81600361194c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6114378160036118a190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b6000611518338461151385600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b611539565b6001905092915050565b600061152f338484611698565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561157357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115ad57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d257600080fd5b611723816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461186290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117b6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111561187157600080fd5b600082840390508091505092915050565b60008082840190508381101561189757600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118db57600080fd5b6118e582826111dc565b6118ee57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561198657600080fd5b61199082826111dc565b1561199a57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea265627a7a72315820c81bf7e3da57163f6b2c14554e79c2cff7202bf8dd295d065d6a25878184191a64736f6c63430005110032
Deployed Bytecode Sourcemap
19600:414:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19600:414:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16861:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;16861:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15741:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15741:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5242:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15573:160;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15573:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19682:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19723:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17177:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15889:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15889:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15174:118;;;:::i;:::-;;19250:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19250:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17521:79;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17521:79:0;;;;;;;;;;;;;;;;;:::i;:::-;;13448:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13448:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14427:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13665:77;;;:::i;:::-;;5553:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5553:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17854:95;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17854:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13565:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13565:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14963:116;;;:::i;:::-;;17011:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17011:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18438:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18438:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18538:77;;;:::i;:::-;;16072:185;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16072:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15433:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15433:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18321:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18321:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5998:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5998:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16861:83;16898:13;16931:5;16924:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16861:83;:::o;15741:140::-;15820:4;14664:7;;;;;;;;;;;14663:8;14655:17;;;;;;15844:29;15858:7;15867:5;15844:13;:29::i;:::-;15837:36;;15741:140;;;;:::o;5242:91::-;5286:7;5313:12;;5306:19;;5242:91;:::o;15573:160::-;15666:4;14664:7;;;;;;;;;;;14663:8;14655:17;;;;;;15690:35;15709:4;15715:2;15719:5;15690:18;:35::i;:::-;15683:42;;15573:160;;;;;:::o;19682:34::-;19715:1;19682:34;:::o;19723:78::-;19715:1;19783:17;;19777:2;:23;19764:9;:37;19723:78;:::o;17177:83::-;17218:5;17243:9;;;;;;;;;;;17236:16;;17177:83;:::o;15889:175::-;15980:12;14664:7;;;;;;;;;;;14663:8;14655:17;;;;;;16012:44;16036:7;16045:10;16012:23;:44::i;:::-;16005:51;;15889:175;;;;:::o;15174:118::-;13399:20;13408:10;13399:8;:20::i;:::-;13391:29;;;;;;14843:7;;;;;;;;;;;14835:16;;;;;;15243:5;15233:7;;:15;;;;;;;;;;;;;;;;;;15264:20;15273:10;15264:20;;;;;;;;;;;;;;;;;;;;;;15174:118::o;19250:131::-;19318:4;18272:20;18281:10;18272:8;:20::i;:::-;18264:29;;;;;;19335:16;19341:2;19345:5;19335;:16::i;:::-;19369:4;19362:11;;19250:131;;;;:::o;17521:79::-;17568:24;17574:10;17586:5;17568;:24::i;:::-;17521:79;:::o;13448:109::-;13504:4;13528:21;13541:7;13528:8;:12;;:21;;;;:::i;:::-;13521:28;;13448:109;;;:::o;14427:78::-;14466:4;14490:7;;;;;;;;;;;14483:14;;14427:78;:::o;13665:77::-;13709:25;13723:10;13709:13;:25::i;:::-;13665:77::o;5553:106::-;5608:7;5635:9;:16;5645:5;5635:16;;;;;;;;;;;;;;;;5628:23;;5553:106;;;:::o;17854:95::-;17919:22;17929:4;17935:5;17919:9;:22::i;:::-;17854:95;;:::o;13565:92::-;13399:20;13408:10;13399:8;:20::i;:::-;13391:29;;;;;;13630:19;13641:7;13630:10;:19::i;:::-;13565:92;:::o;14963:116::-;13399:20;13408:10;13399:8;:20::i;:::-;13391:29;;;;;;14664:7;;;;;;;;;;;14663:8;14655:17;;;;;;15033:4;15023:7;;:14;;;;;;;;;;;;;;;;;;15053:18;15060:10;15053:18;;;;;;;;;;;;;;;;;;;;;;14963:116::o;17011:87::-;17050:13;17083:7;17076:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17011:87;:::o;18438:92::-;18272:20;18281:10;18272:8;:20::i;:::-;18264:29;;;;;;18503:19;18514:7;18503:10;:19::i;:::-;18438:92;:::o;18538:77::-;18582:25;18596:10;18582:13;:25::i;:::-;18538:77::o;16072:185::-;16168:12;14664:7;;;;;;;;;;;14663:8;14655:17;;;;;;16200:49;16224:7;16233:15;16200:23;:49::i;:::-;16193:56;;16072:185;;;;:::o;15433:132::-;15508:4;14664:7;;;;;;;;;;;14663:8;14655:17;;;;;;15532:25;15547:2;15551:5;15532:14;:25::i;:::-;15525:32;;15433:132;;;;:::o;18321:109::-;18377:4;18401:21;18414:7;18401:8;:12;;:21;;;;:::i;:::-;18394:28;;18321:109;;;:::o;5998:131::-;6070:7;6097:8;:15;6106:5;6097:15;;;;;;;;;;;;;;;:24;6113:7;6097:24;;;;;;;;;;;;;;;;6090:31;;5998:131;;;;:::o;7091:148::-;7156:4;7173:36;7182:10;7194:7;7203:5;7173:8;:36::i;:::-;7227:4;7220:11;;7091:148;;;;:::o;7712:228::-;7791:4;7808:26;7818:4;7824:2;7828:5;7808:9;:26::i;:::-;7845:65;7854:4;7860:10;7872:37;7903:5;7872:8;:14;7881:4;7872:14;;;;;;;;;;;;;;;:26;7887:10;7872:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;7845:8;:65::i;:::-;7928:4;7921:11;;7712:228;;;;;:::o;8455:203::-;8535:4;8552:76;8561:10;8573:7;8582:45;8616:10;8582:8;:20;8591:10;8582:20;;;;;;;;;;;;;;;:29;8603:7;8582:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;8552:8;:76::i;:::-;8646:4;8639:11;;8455:203;;;;:::o;10232:269::-;10326:1;10307:21;;:7;:21;;;;10299:30;;;;;;10357:23;10374:5;10357:12;;:16;;:23;;;;:::i;:::-;10342:12;:38;;;;10412:29;10435:5;10412:9;:18;10422:7;10412:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;10391:9;:18;10401:7;10391:18;;;;;;;;;;;;;;;:50;;;;10478:7;10457:36;;10474:1;10457:36;;;10487:5;10457:36;;;;;;;;;;;;;;;;;;10232:269;;:::o;10735:::-;10829:1;10810:21;;:7;:21;;;;10802:30;;;;;;10860:23;10877:5;10860:12;;:16;;:23;;;;:::i;:::-;10845:12;:38;;;;10915:29;10938:5;10915:9;:18;10925:7;10915:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;10894:9;:18;10904:7;10894:18;;;;;;;;;;;;;;;:50;;;;10986:1;10960:36;;10969:7;10960:36;;;10990:5;10960:36;;;;;;;;;;;;;;;;;;10735:269;;:::o;12913:165::-;12985:4;13029:1;13010:21;;:7;:21;;;;13002:30;;;;;;13050:4;:11;;:20;13062:7;13050:20;;;;;;;;;;;;;;;;;;;;;;;;;13043:27;;12913:165;;;;:::o;13880:130::-;13940:24;13956:7;13940:8;:15;;:24;;;;:::i;:::-;13994:7;13980:22;;;;;;;;;;;;13880:130;:::o;11930:182::-;12001:21;12007:7;12016:5;12001;:21::i;:::-;12033:71;12042:7;12051:10;12063:40;12097:5;12063:8;:17;12072:7;12063:17;;;;;;;;;;;;;;;:29;12081:10;12063:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;12033:8;:71::i;:::-;11930:182;;:::o;13750:122::-;13807:21;13820:7;13807:8;:12;;:21;;;;:::i;:::-;13856:7;13844:20;;;;;;;;;;;;13750:122;:::o;18623:::-;18680:21;18693:7;18680:8;:12;;:21;;;;:::i;:::-;18729:7;18717:20;;;;;;;;;;;;18623:122;:::o;18753:130::-;18813:24;18829:7;18813:8;:15;;:24;;;;:::i;:::-;18867:7;18853:22;;;;;;;;;;;;18753:130;:::o;9178:213::-;9263:4;9280:81;9289:10;9301:7;9310:50;9344:15;9310:8;:20;9319:10;9310:20;;;;;;;;;;;;;;;:29;9331:7;9310:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;9280:8;:81::i;:::-;9379:4;9372:11;;9178:213;;;;:::o;6304:140::-;6365:4;6382:32;6392:10;6404:2;6408:5;6382:9;:32::i;:::-;6432:4;6425:11;;6304:140;;;;:::o;11277:254::-;11389:1;11370:21;;:7;:21;;;;11362:30;;;;;;11428:1;11411:19;;:5;:19;;;;11403:28;;;;;;11471:5;11444:8;:15;11453:5;11444:15;;;;;;;;;;;;;;;:24;11460:7;11444:24;;;;;;;;;;;;;;;:32;;;;11508:7;11492:31;;11501:5;11492:31;;;11517:5;11492:31;;;;;;;;;;;;;;;;;;11277:254;;;:::o;9618:262::-;9720:1;9706:16;;:2;:16;;;;9698:25;;;;;;9754:26;9774:5;9754:9;:15;9764:4;9754:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;9736:9;:15;9746:4;9736:15;;;;;;;;;;;;;;;:44;;;;9807:24;9825:5;9807:9;:13;9817:2;9807:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;9791:9;:13;9801:2;9791:13;;;;;;;;;;;;;;;:40;;;;9862:2;9847:25;;9856:4;9847:25;;;9866:5;9847:25;;;;;;;;;;;;;;;;;;9618:262;;;:::o;3705:150::-;3763:7;3796:1;3791;:6;;3783:15;;;;;;3809:9;3825:1;3821;:5;3809:17;;3846:1;3839:8;;;3705:150;;;;:::o;3943:::-;4001:7;4021:9;4037:1;4033;:5;4021:17;;4062:1;4057;:6;;4049:15;;;;;;4084:1;4077:8;;;3943:150;;;;:::o;12630:189::-;12729:1;12710:21;;:7;:21;;;;12702:30;;;;;;12751:18;12755:4;12761:7;12751:3;:18::i;:::-;12743:27;;;;;;12806:5;12783:4;:11;;:20;12795:7;12783:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12630:189;;:::o;12365:186::-;12461:1;12442:21;;:7;:21;;;;12434:30;;;;;;12484:18;12488:4;12494:7;12484:3;:18::i;:::-;12483:19;12475:28;;;;;;12539:4;12516;:11;;:20;12528:7;12516:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12365:186;;:::o
Swarm Source
bzzr://c81bf7e3da57163f6b2c14554e79c2cff7202bf8dd295d065d6a25878184191a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.