More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 493 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 21122478 | 3 hrs ago | IN | 0 ETH | 0.00059807 | ||||
Transfer | 21122478 | 3 hrs ago | IN | 0 ETH | 0.00059824 | ||||
Transfer | 21122478 | 3 hrs ago | IN | 0 ETH | 0.00059824 | ||||
Release | 21122353 | 4 hrs ago | IN | 0 ETH | 0.0020231 | ||||
Transfer | 21072975 | 7 days ago | IN | 0 ETH | 0.00056741 | ||||
Transfer | 21072975 | 7 days ago | IN | 0 ETH | 0.00056757 | ||||
Transfer | 21072975 | 7 days ago | IN | 0 ETH | 0.00056757 | ||||
Release | 21072196 | 7 days ago | IN | 0 ETH | 0.001168 | ||||
Transfer | 21021851 | 14 days ago | IN | 0 ETH | 0.00069878 | ||||
Transfer | 21021851 | 14 days ago | IN | 0 ETH | 0.00069878 | ||||
Transfer | 21021851 | 14 days ago | IN | 0 ETH | 0.00069858 | ||||
Release | 21021726 | 14 days ago | IN | 0 ETH | 0.00294306 | ||||
Transfer | 20971694 | 21 days ago | IN | 0 ETH | 0.00144489 | ||||
Transfer | 20971694 | 21 days ago | IN | 0 ETH | 0.0014453 | ||||
Transfer | 20971694 | 21 days ago | IN | 0 ETH | 0.0014453 | ||||
Release | 20971571 | 21 days ago | IN | 0 ETH | 0.00294429 | ||||
Transfer | 20921686 | 28 days ago | IN | 0 ETH | 0.00127047 | ||||
Transfer | 20921686 | 28 days ago | IN | 0 ETH | 0.00127047 | ||||
Transfer | 20921686 | 28 days ago | IN | 0 ETH | 0.00127012 | ||||
Release | 20921467 | 28 days ago | IN | 0 ETH | 0.00316105 | ||||
Transfer | 20871639 | 35 days ago | IN | 0 ETH | 0.0011184 | ||||
Transfer | 20871639 | 35 days ago | IN | 0 ETH | 0.0011184 | ||||
Transfer | 20871639 | 35 days ago | IN | 0 ETH | 0.00111809 | ||||
Release | 20871251 | 35 days ago | IN | 0 ETH | 0.00194458 | ||||
Transfer | 20821189 | 42 days ago | IN | 0 ETH | 0.00152708 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ERC20
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-19 */ pragma solidity 0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); /** * @dev Returns the bep token owner. */ function getOwner() external view returns (address); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a manager access control mechanism, where * there is owner and manager, that can be granted exclusive access to * specific functions. * * Both owner and manager accounts need to be specified when deploying the contract. This * can later be changed with {setOwner} and {setManager}. * * This module is used through inheritance. Modifiers `onlyOwner` and `ownerOrManager` * will be available, which can be applied to your functions to restrict their use. */ abstract contract Managed is Context { event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event ManagementTransferred(address indexed previousManager, address indexed newManager); address private _owner; address private _manager; /** * @dev Initializes the contract, setting owner and manager. */ constructor(address owner_, address manager_) { require(owner_ != address(0), "Owner address can't be a zero address"); require(manager_ != address(0), "Manager address can't be a zero address"); _setOwner(owner_); _setManager(manager_); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Returns the address of the current manager. */ function manager() public view returns (address) { return _manager; } /** * @dev Transfers owner permissions to a new account (`newOwner`). * Can only be called by owner. */ function setOwner(address newOwner) external onlyOwner { require(newOwner != address(0), "Managed: new owner can't be zero address"); _setOwner(newOwner); } /** * @dev Transfers manager permissions to a new account (`newManager`). * Can only be called by owner. */ function setManager(address newManager) external onlyOwner { require(newManager != address(0), "Managed: new manager can't be zero address"); _setManager(newManager); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_msgSender() == _owner, "Managed: caller is not the owner"); _; } /** * @dev Throws if called by any account other than owner or manager. */ modifier ownerOrManager() { require(_msgSender() == _owner || _msgSender() == _manager, "Managed: caller is not the owner or manager"); _; } /** * @dev Transfers owner permissions to a new account (`newOwner`). * Internal function without access restriction. */ function _setOwner(address newOwner) internal { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } /** * @dev Transfers manager permissions to a new account (`newManager`). * Internal function without access restriction. */ function _setManager(address newManager) internal { address oldManager = _manager; _manager = newManager; emit ManagementTransferred(oldManager, newManager); } } /** * @dev Contract module which provides a locking mechanism that allows * a total token lock, or lock of a specific address. * * This module is used through inheritance. Modifier `isUnlocked` * will be available, which can be applied to your functions to restrict their use. */ abstract contract Lockable is Managed { event AddressLockChanged(address indexed addr, bool newLock); event TokenLockChanged(bool newLock); mapping(address => bool) private _addressLocks; bool private _locked; /** * @dev Completely locks any transfers of the token. * Can only be called by owner. */ function lockToken() external onlyOwner { _locked = true; emit TokenLockChanged(true); } /** * @dev Completely unlocks any transfers of the token. * Can only be called by owner. */ function unlockToken() external onlyOwner { _locked = false; emit TokenLockChanged(false); } /** * @dev Return whether the token is currently locked. */ function isLocked() public view returns (bool) { return _locked; } /** * @dev Throws if a function is called while the token is locked. */ modifier isUnlocked() { require(!_locked, "All token transfers are currently locked"); _; } /** * @dev Completely locks sending and receiving of token for a specific address. * Can only be called by owner or manager */ function lockAddress(address addr) external onlyOwner { _addressLocks[addr] = true; emit AddressLockChanged(addr, true); } /** * @dev Completely unlocks sending and receiving of token for a specific address. * Can only be called by owner or manager */ function unlockAddress(address addr) external onlyOwner { _addressLocks[addr] = false; emit AddressLockChanged(addr, false); } /** * @dev Returns whether the account (`addr`) is currently locked. */ function isAddressLocked(address addr) public view returns (bool) { return _addressLocks[addr]; } } /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, Managed, Lockable { event Burn(address indexed from, uint256 amount); event Release(address indexed to1, address indexed to2, address indexed to3, uint256 amount); event Halving(uint256 oldReleaseAmount, uint256 newReleaseAmount); event ReleaseAddressChanged(address indexed oldAddress, address indexed newAddress); event BurnApproval(address indexed owner, address indexed spender, uint256 value); mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => mapping(address => uint256)) private _burnAllowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private immutable _decimals; uint256 private _releaseAmount; uint256 private _nextReleaseDate; uint256 private _nextReducementDate; address private _releaseAddress1; address private _releaseAddress2; address private _releaseAddress3; uint256 private constant _week = 600000; // 10 000 minutes uint256 private constant _4years = 126000000; // 2 100 000 minutes /** * @dev Sets the values for {owner}, {manager} and {initialDepositAddress}. * * Sends first released amount to the {initialDepositAddress1, initialDepositAddress2, initialDepositAddress3}, and locks the remaining supply within contract. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All values for token parameters are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_, uint8 decimals_, address owner_, address manager_, address initialDepositAddress1, address initialDepositAddress2, address initialDepositAddress3) Managed(owner_, manager_) { require(initialDepositAddress1 != address(0), "Initial release address can't be a zero address"); require(initialDepositAddress2 != address(0), "Initial release address can't be a zero address"); require(initialDepositAddress3 != address(0), "Initial release address can't be a zero address"); require(initialDepositAddress1 != initialDepositAddress2, "Initial addresses can't be the same"); require(initialDepositAddress2 != initialDepositAddress3, "Initial addresses can't be the same"); require(initialDepositAddress3 != initialDepositAddress1, "Initial addresses can't be the same"); _name = name_; _symbol = symbol_; _decimals = decimals_; _totalSupply = 21000000 * uint256(10**decimals_); _releaseAmount = 50000 * uint256(10**decimals_); _nextReleaseDate = block.timestamp + _week; _nextReducementDate = block.timestamp + _4years; _balances[address(this)] = _totalSupply - _releaseAmount; emit Transfer(address(0), address(this), _balances[address(this)]); _releaseAddress1 = initialDepositAddress1; _releaseAddress2 = initialDepositAddress2; _releaseAddress3 = initialDepositAddress3; _balances[initialDepositAddress1] = _releaseAmount*72/100; _balances[initialDepositAddress2] = _releaseAmount*8/100; _balances[initialDepositAddress3] = _releaseAmount*20/100; emit Transfer(address(0), initialDepositAddress1, _balances[initialDepositAddress1]); emit Transfer(address(0), initialDepositAddress2, _balances[initialDepositAddress2]); emit Transfer(address(0), initialDepositAddress3, _balances[initialDepositAddress3]); emit Release(initialDepositAddress1, initialDepositAddress2, initialDepositAddress3, _releaseAmount); } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return _decimals; } /** * @dev See {IERC20-getOwner}. */ function getOwner() public view virtual override returns (address) { return owner(); } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev Returns real current supply without the locked tokens */ function currentSupply() view public returns(uint256) { return _totalSupply - _balances[address(this)]; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - the caller must have an available balance of at least `amount`. */ function transfer(address recipient, uint256 amount) external virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function burnAllowance(address owner, address spender) public view returns (uint256) { return _burnAllowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) external virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * Requirements: * * - `spender` cannot be the zero address. */ function burnApprove(address spender, uint256 amount) external returns (bool) { _burnApprove(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) external virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) external virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have burnAllowance for `accounts`'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) external virtual { uint256 currentBurnAllowance = burnAllowance(account, _msgSender()); require(currentBurnAllowance >= amount, "ERC20: burn amount exceeds allowance"); unchecked { _burnApprove(account, _msgSender(), currentBurnAllowance - amount); } _burn(account, amount); } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically increases the burnAllowance granted to `spender` by the caller. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseBurnAllowance(address spender, uint256 addedValue) external virtual returns (bool) { _burnApprove(_msgSender(), spender, _burnAllowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Atomically decreases the burnAllowance granted to `spender` by the caller. * * Emits an {BurnApproval} event indicating the updated burnAllowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseBurnAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) { uint256 currentBurnAllowance = _burnAllowances[_msgSender()][spender]; require(currentBurnAllowance >= subtractedValue, "ERC20: decreased burnAllowance below zero"); unchecked { _burnApprove(_msgSender(), spender, currentBurnAllowance - subtractedValue); } return true; } /** * @dev Sets {_releaseAddress1} to {newReleaseAddress}. * Emits a {ReleaseAddressChanged} event containing old and a new release addresses. */ function setReleaseAddress1(address newReleaseAddress) external onlyOwner { require(newReleaseAddress != address(0), "New release address can't be a zero address"); require(newReleaseAddress != _releaseAddress1, "New release address can't be same as _releaseAddress1"); require(newReleaseAddress != _releaseAddress2, "New release address can't be same as _releaseAddress2"); require(newReleaseAddress != _releaseAddress3, "New release address can't be same as _releaseAddress3"); address oldAddress = _releaseAddress1; _releaseAddress1 = newReleaseAddress; emit ReleaseAddressChanged(oldAddress, _releaseAddress1); } /** * @dev Sets {_releaseAddress2} to {newReleaseAddress}. * * Emits a {ReleaseAddressChanged} event containing old and a new release addresses. */ function setReleaseAddress2(address newReleaseAddress) external onlyOwner { require(newReleaseAddress != address(0), "New release address can't be a zero address"); require(newReleaseAddress != _releaseAddress1, "New release address can't be same as _releaseAddress1"); require(newReleaseAddress != _releaseAddress2, "New release address can't be same as _releaseAddress2"); require(newReleaseAddress != _releaseAddress3, "New release address can't be same as _releaseAddress3"); address oldAddress = _releaseAddress2; _releaseAddress2 = newReleaseAddress; emit ReleaseAddressChanged(oldAddress, _releaseAddress2); } /** * @dev Sets {_releaseAddress3} to {newReleaseAddress}. * * Emits a {ReleaseAddressChanged} event containing old and a new release addresses. */ function setReleaseAddress3(address newReleaseAddress) external onlyOwner { require(newReleaseAddress != address(0), "New release address can't be a zero address"); require(newReleaseAddress != _releaseAddress1, "New release address can't be same as _releaseAddress1"); require(newReleaseAddress != _releaseAddress2, "New release address can't be same as _releaseAddress2"); require(newReleaseAddress != _releaseAddress3, "New release address can't be same as _releaseAddress3"); address oldAddress = _releaseAddress3; _releaseAddress3 = newReleaseAddress; emit ReleaseAddressChanged(oldAddress, _releaseAddress3); } /** * @dev Calculates and releases new coins into circulation. * If multiple weeks have passed, releases all the coins that should be * released within those weeks. * * Emits a {Release} event containing the address {_releaseAddress1, _releaseAddress2, _releaseAddress3} the coins were released to, * and the amount {toRelease} of coins the function released. */ function release() external ownerOrManager { require(block.timestamp > _nextReleaseDate, "Next coin release is not yet scheduled"); require(balanceOf(address(this)) > 0, "There are no more coins to release"); uint256 toRelease = 0; uint256 currentRelease = 0; while((currentRelease = _calculateReleaseAmount()) > 0) { toRelease += currentRelease; } _transfer(address(this), _releaseAddress1, toRelease*72/100); _transfer(address(this), _releaseAddress2, toRelease*8/100); _transfer(address(this), _releaseAddress3, toRelease*20/100); emit Release(_releaseAddress1, _releaseAddress2, _releaseAddress3, toRelease); } /** * @dev Calculates the exact amount of coins that should be released for one release cycle. * If the next release will be after the halving date, it also calculates a new {_releaseAmount} * for future releases. * * Emits a {Halving} event if halving happens, containing the old release amount {oldReleaseAmount}, * and new release amount {_releaseAmount} */ function _calculateReleaseAmount() internal returns (uint256) { if(block.timestamp < _nextReleaseDate || balanceOf(address(this)) == 0) return 0; uint256 amount = _releaseAmount > balanceOf(address(this)) ? balanceOf(address(this)) : _releaseAmount; _nextReleaseDate += _week; if(_nextReleaseDate >= _nextReducementDate) { _nextReducementDate += _4years; uint256 oldReleaseAmount = _releaseAmount; _releaseAmount = _releaseAmount / 2; emit Halving(oldReleaseAmount, _releaseAmount); } return amount; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * If the `recipient` address is zero address, calls {_burn} instead. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `sender` must have an available balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal isUnlocked virtual { require(recipient != address(0), "ERC20: transfer to zero address"); require(sender != address(0), "ERC20: transfer from the zero address"); require(!isAddressLocked(sender), "Sender address is currently locked and can't send funds"); require(!isAddressLocked(recipient), "Recipient address is currently locked and can't receive funds"); require(_balances[sender] >= amount, "ERC20: transfer amount exceeds available balance"); _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * Emits an {BurnApproval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _burnApprove(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "burnApprove from the zero address"); require(spender != address(0), "burnApprove to the zero address"); _burnAllowances[owner][spender] = amount; emit BurnApproval(owner, spender, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * Emits a {Burn} event with `amount` burned. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. * - `account` can't be locked. */ function _burn(address account, uint256 amount) internal isUnlocked virtual { require(account != address(0), "ERC20: burn from the zero address"); require(!isAddressLocked(account), "Sender address is currently locked and can't burn funds"); require(_balances[account] >= amount, "ERC20: burn amount exceeds available balance"); _balances[account] -= amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); emit Burn(account, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"manager_","type":"address"},{"internalType":"address","name":"initialDepositAddress1","type":"address"},{"internalType":"address","name":"initialDepositAddress2","type":"address"},{"internalType":"address","name":"initialDepositAddress3","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"newLock","type":"bool"}],"name":"AddressLockChanged","type":"event"},{"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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"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":"BurnApproval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldReleaseAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newReleaseAmount","type":"uint256"}],"name":"Halving","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousManager","type":"address"},{"indexed":true,"internalType":"address","name":"newManager","type":"address"}],"name":"ManagementTransferred","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":true,"internalType":"address","name":"to1","type":"address"},{"indexed":true,"internalType":"address","name":"to2","type":"address"},{"indexed":true,"internalType":"address","name":"to3","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Release","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"ReleaseAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"newLock","type":"bool"}],"name":"TokenLockChanged","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"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"burnAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseBurnAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseBurnAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isAddressLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"lockAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newManager","type":"address"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReleaseAddress","type":"address"}],"name":"setReleaseAddress1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReleaseAddress","type":"address"}],"name":"setReleaseAddress2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReleaseAddress","type":"address"}],"name":"setReleaseAddress3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"unlockAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a06040523480156200001157600080fd5b506040516200588038038062005880833981810160405281019062000037919062000cf0565b8484600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620000ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a39062000f96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200011f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001169062000fb8565b60405180910390fd5b620001308262000a1660201b60201c565b620001418162000ada60201b60201c565b5050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620001b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001ad9062000ffc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000229576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002209062000ffc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200029c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002939062000ffc565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200030e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003059062000fda565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000380576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003779062000fda565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620003f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003e99062000fda565b60405180910390fd5b87600890805190602001906200040a92919062000ba0565b5086600990805190602001906200042392919062000ba0565b508560ff1660808160ff1660f81b8152505085600a620004449190620011a3565b6301406f40620004559190620012e0565b60078190555085600a6200046a9190620011a3565b61c350620004799190620012e0565b600a81905550620927c042620004909190620010b3565b600b819055506307829b8042620004a89190620010b3565b600c81905550600a54600754620004c0919062001341565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620005a291906200101e565b60405180910390a382600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060646048600a54620006809190620012e0565b6200068c919062001110565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646008600a54620006e29190620012e0565b620006ee919062001110565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060646014600a54620007449190620012e0565b62000750919062001110565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200083291906200101e565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620008d991906200101e565b60405180910390a38073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200098091906200101e565b60405180910390a38073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f38591994c3ae49552708bc1833f4ccb313aa9d4e43514dea62839b3e4a91d4c5600a5460405162000a0091906200101e565b60405180910390a4505050505050505062001530565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8560405160405180910390a35050565b82805462000bae90620013fd565b90600052602060002090601f01602090048101928262000bd2576000855562000c1e565b82601f1062000bed57805160ff191683800117855562000c1e565b8280016001018555821562000c1e579182015b8281111562000c1d57825182559160200191906001019062000c00565b5b50905062000c2d919062000c31565b5090565b5b8082111562000c4c57600081600090555060010162000c32565b5090565b600062000c6762000c61846200106f565b6200103b565b90508281526020810184848401111562000c8057600080fd5b62000c8d848285620013c7565b509392505050565b60008151905062000ca681620014fc565b92915050565b600082601f83011262000cbe57600080fd5b815162000cd084826020860162000c50565b91505092915050565b60008151905062000cea8162001516565b92915050565b600080600080600080600080610100898b03121562000d0e57600080fd5b600089015167ffffffffffffffff81111562000d2957600080fd5b62000d378b828c0162000cac565b985050602089015167ffffffffffffffff81111562000d5557600080fd5b62000d638b828c0162000cac565b975050604062000d768b828c0162000cd9565b965050606062000d898b828c0162000c95565b955050608062000d9c8b828c0162000c95565b94505060a062000daf8b828c0162000c95565b93505060c062000dc28b828c0162000c95565b92505060e062000dd58b828c0162000c95565b9150509295985092959890939650565b600062000df4602583620010a2565b91507f4f776e657220616464726573732063616e27742062652061207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600062000e5c602783620010a2565b91507f4d616e6167657220616464726573732063616e27742062652061207a65726f2060008301527f61646472657373000000000000000000000000000000000000000000000000006020830152604082019050919050565b600062000ec4602383620010a2565b91507f496e697469616c206164647265737365732063616e277420626520746865207360008301527f616d6500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600062000f2c602f83620010a2565b91507f496e697469616c2072656c6561736520616464726573732063616e277420626560008301527f2061207a65726f206164647265737300000000000000000000000000000000006020830152604082019050919050565b62000f9081620013b0565b82525050565b6000602082019050818103600083015262000fb18162000de5565b9050919050565b6000602082019050818103600083015262000fd38162000e4d565b9050919050565b6000602082019050818103600083015262000ff58162000eb5565b9050919050565b60006020820190508181036000830152620010178162000f1d565b9050919050565b600060208201905062001035600083018462000f85565b92915050565b6000604051905081810181811067ffffffffffffffff82111715620010655762001064620014c0565b5b8060405250919050565b600067ffffffffffffffff8211156200108d576200108c620014c0565b5b601f19601f8301169050602081019050919050565b600082825260208201905092915050565b6000620010c082620013b0565b9150620010cd83620013b0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001105576200110462001433565b5b828201905092915050565b60006200111d82620013b0565b91506200112a83620013b0565b9250826200113d576200113c62001462565b5b828204905092915050565b6000808291508390505b60018511156200119a5780860481111562001172576200117162001433565b5b6001851615620011825780820291505b80810290506200119285620014ef565b945062001152565b94509492505050565b6000620011b082620013b0565b9150620011bd83620013ba565b9250620011ec7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620011f4565b905092915050565b600082620012065760019050620012d9565b81620012165760009050620012d9565b81600181146200122f57600281146200123a5762001270565b6001915050620012d9565b60ff8411156200124f576200124e62001433565b5b8360020a91508482111562001269576200126862001433565b5b50620012d9565b5060208310610133831016604e8410600b8410161715620012aa5782820a905083811115620012a457620012a362001433565b5b620012d9565b620012b9848484600162001148565b92509050818404811115620012d357620012d262001433565b5b81810290505b9392505050565b6000620012ed82620013b0565b9150620012fa83620013b0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001336576200133562001433565b5b828202905092915050565b60006200134e82620013b0565b91506200135b83620013b0565b92508282101562001371576200137062001433565b5b828203905092915050565b6000620013898262001390565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620013e7578082015181840152602081019050620013ca565b83811115620013f7576000848401525b50505050565b600060028204905060018216806200141657607f821691505b602082108114156200142d576200142c62001491565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008160011c9050919050565b62001507816200137c565b81146200151357600080fd5b50565b6200152181620013ba565b81146200152d57600080fd5b50565b60805160f81c6143316200154f60003960006112aa01526143316000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063481c6a751161011a578063a457c2d7116100ad578063bca7a9e21161007c578063bca7a9e2146105c6578063c576e4a4146105d0578063d0ebdbe7146105ec578063dd62ed3e14610608578063e52e9f1514610638576101fb565b8063a457c2d71461052c578063a4e2d6341461055c578063a9059cbb1461057a578063b7eb5e0a146105aa576101fb565b806386d1a69f116100e957806386d1a69f146104c8578063893d20e8146104d25780638da5cb5b146104f057806395d89b411461050e576101fb565b8063481c6a751461044057806370a082311461045e578063771282f61461048e57806379cc6790146104ac576101fb565b806323b872dd116101925780633336dbf3116101615780633336dbf3146103a857806334a90d02146103d857806339509351146103f457806342966c6814610424576101fb565b806323b872dd1461032257806325541297146103525780632d787b951461036e578063313ce5671461038a576101fb565b80631641aa96116101ce5780631641aa961461029a57806318160ddd146102ca57806318a24b5b146102e85780631e50cfbd146102f2576101fb565b806306fdde0314610200578063095ea7b31461021e57806313af40351461024e5780631525ee4e1461026a575b600080fd5b610208610668565b6040516102159190613c63565b60405180910390f35b61023860048036038101906102339190613103565b6106fa565b6040516102459190613c48565b60405180910390f35b6102686004803603810190610263919061304f565b610718565b005b610284600480360381019061027f9190613078565b610829565b6040516102919190613fe5565b60405180910390f35b6102b460048036038101906102af9190613103565b6108b0565b6040516102c19190613c48565b60405180910390f35b6102d26108ce565b6040516102df9190613fe5565b60405180910390f35b6102f06108d8565b005b61030c60048036038101906103079190613103565b6109c2565b6040516103199190613c48565b60405180910390f35b61033c600480360381019061033791906130b4565b610a6e565b6040516103499190613c48565b60405180910390f35b61036c6004803603810190610367919061304f565b610b66565b005b6103886004803603810190610383919061304f565b610f06565b005b6103926112a6565b60405161039f9190614029565b60405180910390f35b6103c260048036038101906103bd9190613103565b6112ce565b6040516103cf9190613c48565b60405180910390f35b6103f260048036038101906103ed919061304f565b6113b9565b005b61040e60048036038101906104099190613103565b6114f8565b60405161041b9190613c48565b60405180910390f35b61043e6004803603810190610439919061313f565b6115a4565b005b6104486115b8565b6040516104559190613c2d565b60405180910390f35b6104786004803603810190610473919061304f565b6115e2565b6040516104859190613fe5565b60405180910390f35b61049661162b565b6040516104a39190613fe5565b60405180910390f35b6104c660048036038101906104c19190613103565b61167f565b005b6104d06116fa565b005b6104da611a5c565b6040516104e79190613c2d565b60405180910390f35b6104f8611a6b565b6040516105059190613c2d565b60405180910390f35b610516611a94565b6040516105239190613c63565b60405180910390f35b61054660048036038101906105419190613103565b611b26565b6040516105539190613c48565b60405180910390f35b610564611c11565b6040516105719190613c48565b60405180910390f35b610594600480360381019061058f9190613103565b611c28565b6040516105a19190613c48565b60405180910390f35b6105c460048036038101906105bf919061304f565b611c46565b005b6105ce611d85565b005b6105ea60048036038101906105e5919061304f565b611e6f565b005b6106066004803603810190610601919061304f565b61220f565b005b610622600480360381019061061d9190613078565b612320565b60405161062f9190613fe5565b60405180910390f35b610652600480360381019061064d919061304f565b6123a7565b60405161065f9190613c48565b60405180910390f35b606060088054610677906141fd565b80601f01602080910402602001604051908101604052809291908181526020018280546106a3906141fd565b80156106f05780601f106106c5576101008083540402835291602001916106f0565b820191906000526020600020905b8154815290600101906020018083116106d357829003601f168201915b5050505050905090565b600061070e6107076123fd565b8484612405565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107576123fd565b73ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a490613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561081d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081490613e65565b60405180910390fd5b610826816125d0565b50565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006108c46108bd6123fd565b8484612694565b6001905092915050565b6000600754905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109176123fd565b73ffffffffffffffffffffffffffffffffffffffff161461096d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096490613e05565b60405180910390fd5b6000600360006101000a81548160ff0219169083151502179055507f74e75687cb4b4a63d93a397950b5ded4054b5b45e48b215162a5efb3162465cd60006040516109b89190613c48565b60405180910390a1565b6000610a646109cf6123fd565b8484600660006109dd6123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a5f9190614060565b612694565b6001905092915050565b6000610a7b84848461285f565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ac66123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d90613de5565b60405180910390fd5b610b5a85610b526123fd565b858403612405565b60019150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ba56123fd565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290613ec5565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390613cc5565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8490613d85565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590613f25565b60405180910390fd5b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0822d2eff5e397b947a8e3922f27065290b50e08d40f83fa8f3b72c41aa7e6f560405160405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f456123fd565b73ffffffffffffffffffffffffffffffffffffffff1614610f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9290613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290613ec5565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390613cc5565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490613d85565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b590613f25565b60405180910390fd5b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0822d2eff5e397b947a8e3922f27065290b50e08d40f83fa8f3b72c41aa7e6f560405160405180910390a35050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b600080600660006112dd6123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190613da5565b60405180910390fd5b6113ae6113a56123fd565b85858403612694565b600191505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113f86123fd565b73ffffffffffffffffffffffffffffffffffffffff161461144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590613e05565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f18e3f5e6e436b491427e1abe846e624b5846cd3bad2f3b48ad174ec2eb1431d960016040516114ed9190613c48565b60405180910390a250565b600061159a6115056123fd565b8484600560006115136123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115959190614060565b612405565b6001905092915050565b6115b56115af6123fd565b82612bb9565b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460075461167a9190614141565b905090565b60006116928361168d6123fd565b610829565b9050818110156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90613e45565b60405180910390fd5b6116eb836116e36123fd565b848403612694565b6116f58383612bb9565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117396123fd565b73ffffffffffffffffffffffffffffffffffffffff1614806117af5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117976123fd565b73ffffffffffffffffffffffffffffffffffffffff16145b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e590613f85565b60405180910390fd5b600b544211611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990613e25565b60405180910390fd5b600061183d306115e2565b1161187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490613c85565b60405180910390fd5b6000805b600061188b612e6b565b91508111156118a75780826118a09190614060565b9150611881565b6118ec30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646048866118dd91906140e7565b6118e791906140b6565b61285f565b61193130600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460088661192291906140e7565b61192c91906140b6565b61285f565b61197630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460148661196791906140e7565b61197191906140b6565b61285f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f38591994c3ae49552708bc1833f4ccb313aa9d4e43514dea62839b3e4a91d4c585604051611a509190613fe5565b60405180910390a45050565b6000611a66611a6b565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054611aa3906141fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611acf906141fd565b8015611b1c5780601f10611af157610100808354040283529160200191611b1c565b820191906000526020600020905b815481529060010190602001808311611aff57829003601f168201915b5050505050905090565b60008060056000611b356123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990613fc5565b60405180910390fd5b611c06611bfd6123fd565b85858403612405565b600191505092915050565b6000600360009054906101000a900460ff16905090565b6000611c3c611c356123fd565b848461285f565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c856123fd565b73ffffffffffffffffffffffffffffffffffffffff1614611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd290613e05565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f18e3f5e6e436b491427e1abe846e624b5846cd3bad2f3b48ad174ec2eb1431d96000604051611d7a9190613c48565b60405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dc46123fd565b73ffffffffffffffffffffffffffffffffffffffff1614611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190613e05565b60405180910390fd5b6001600360006101000a81548160ff0219169083151502179055507f74e75687cb4b4a63d93a397950b5ded4054b5b45e48b215162a5efb3162465cd6001604051611e659190613c48565b60405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611eae6123fd565b73ffffffffffffffffffffffffffffffffffffffff1614611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b90613ec5565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90613cc5565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d90613d85565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90613f25565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0822d2eff5e397b947a8e3922f27065290b50e08d40f83fa8f3b72c41aa7e6f560405160405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661224e6123fd565b73ffffffffffffffffffffffffffffffffffffffff16146122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b90613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b90613d05565b60405180910390fd5b61231d81612f5f565b50565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90613f45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dc90613ce5565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125c39190613fe5565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fb90613d25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276b90613ea5565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f7cf97656de28b2f9c34f8f8f50ddae38f357b7ed1962a845f2246640f1a9d811836040516128529190613fe5565b60405180910390a3505050565b600360009054906101000a900460ff16156128af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a690613ca5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561291f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291690613d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690613f05565b60405180910390fd5b612998836123a7565b156129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf90613e85565b60405180910390fd5b6129e1826123a7565b15612a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1890613dc5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9a90613d65565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612af29190614141565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b489190614060565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bac9190613fe5565b60405180910390a3505050565b600360009054906101000a900460ff1615612c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0090613ca5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7090613ee5565b60405180910390fd5b612c82826123a7565b15612cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb990613fa5565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3b90613f65565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d939190614141565b925050819055508060076000828254612dac9190614141565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e119190613fe5565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051612e5f9190613fe5565b60405180910390a25050565b6000600b54421080612e8557506000612e83306115e2565b145b15612e935760009050612f5c565b6000612e9e306115e2565b600a5411612eae57600a54612eb8565b612eb7306115e2565b5b9050620927c0600b6000828254612ecf9190614060565b92505081905550600c54600b5410612f57576307829b80600c6000828254612ef79190614060565b925050819055506000600a5490506002600a54612f1491906140b6565b600a819055507f394823b0bcaf78cd8f5876a52c05dbab91512a05f5da2a31e239a11ab66d605f81600a54604051612f4d929190614000565b60405180910390a1505b809150505b90565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8560405160405180910390a35050565b600081359050613034816142cd565b92915050565b600081359050613049816142e4565b92915050565b60006020828403121561306157600080fd5b600061306f84828501613025565b91505092915050565b6000806040838503121561308b57600080fd5b600061309985828601613025565b92505060206130aa85828601613025565b9150509250929050565b6000806000606084860312156130c957600080fd5b60006130d786828701613025565b93505060206130e886828701613025565b92505060406130f98682870161303a565b9150509250925092565b6000806040838503121561311657600080fd5b600061312485828601613025565b92505060206131358582860161303a565b9150509250929050565b60006020828403121561315157600080fd5b600061315f8482850161303a565b91505092915050565b61317181614175565b82525050565b61318081614187565b82525050565b600061319182614044565b61319b818561404f565b93506131ab8185602086016141ca565b6131b4816142bc565b840191505092915050565b60006131cc60228361404f565b91507f546865726520617265206e6f206d6f726520636f696e7320746f2072656c656160008301527f73650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061323260288361404f565b91507f416c6c20746f6b656e207472616e7366657273206172652063757272656e746c60008301527f79206c6f636b65640000000000000000000000000000000000000000000000006020830152604082019050919050565b600061329860358361404f565b91507f4e65772072656c6561736520616464726573732063616e27742062652073616d60008301527f65206173205f72656c65617365416464726573733100000000000000000000006020830152604082019050919050565b60006132fe60228361404f565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613364602a8361404f565b91507f4d616e616765643a206e6577206d616e616765722063616e2774206265207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b60006133ca60218361404f565b91507f6275726e417070726f76652066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613430601f8361404f565b91507f45524332303a207472616e7366657220746f207a65726f2061646472657373006000830152602082019050919050565b600061347060308361404f565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f7661696c61626c652062616c616e6365000000000000000000000000000000006020830152604082019050919050565b60006134d660358361404f565b91507f4e65772072656c6561736520616464726573732063616e27742062652073616d60008301527f65206173205f72656c65617365416464726573733200000000000000000000006020830152604082019050919050565b600061353c60298361404f565b91507f45524332303a20646563726561736564206275726e416c6c6f77616e6365206260008301527f656c6f77207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b60006135a2603d8361404f565b91507f526563697069656e7420616464726573732069732063757272656e746c79206c60008301527f6f636b656420616e642063616e277420726563656976652066756e64730000006020830152604082019050919050565b600061360860288361404f565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b600061366e60208361404f565b91507f4d616e616765643a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006136ae60268361404f565b91507f4e65787420636f696e2072656c65617365206973206e6f74207965742073636860008301527f6564756c656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061371460248361404f565b91507f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008301527f616e6365000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061377a60288361404f565b91507f4d616e616765643a206e6577206f776e65722063616e2774206265207a65726f60008301527f20616464726573730000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137e060378361404f565b91507f53656e64657220616464726573732069732063757272656e746c79206c6f636b60008301527f656420616e642063616e27742073656e642066756e64730000000000000000006020830152604082019050919050565b6000613846601f8361404f565b91507f6275726e417070726f766520746f20746865207a65726f2061646472657373006000830152602082019050919050565b6000613886602b8361404f565b91507f4e65772072656c6561736520616464726573732063616e27742062652061207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b60006138ec60218361404f565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061395260258361404f565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139b860358361404f565b91507f4e65772072656c6561736520616464726573732063616e27742062652073616d60008301527f65206173205f72656c65617365416464726573733300000000000000000000006020830152604082019050919050565b6000613a1e60248361404f565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a84602c8361404f565b91507f45524332303a206275726e20616d6f756e74206578636565647320617661696c60008301527f61626c652062616c616e636500000000000000000000000000000000000000006020830152604082019050919050565b6000613aea602b8361404f565b91507f4d616e616765643a2063616c6c6572206973206e6f7420746865206f776e657260008301527f206f72206d616e616765720000000000000000000000000000000000000000006020830152604082019050919050565b6000613b5060378361404f565b91507f53656e64657220616464726573732069732063757272656e746c79206c6f636b60008301527f656420616e642063616e2774206275726e2066756e64730000000000000000006020830152604082019050919050565b6000613bb660258361404f565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b613c18816141b3565b82525050565b613c27816141bd565b82525050565b6000602082019050613c426000830184613168565b92915050565b6000602082019050613c5d6000830184613177565b92915050565b60006020820190508181036000830152613c7d8184613186565b905092915050565b60006020820190508181036000830152613c9e816131bf565b9050919050565b60006020820190508181036000830152613cbe81613225565b9050919050565b60006020820190508181036000830152613cde8161328b565b9050919050565b60006020820190508181036000830152613cfe816132f1565b9050919050565b60006020820190508181036000830152613d1e81613357565b9050919050565b60006020820190508181036000830152613d3e816133bd565b9050919050565b60006020820190508181036000830152613d5e81613423565b9050919050565b60006020820190508181036000830152613d7e81613463565b9050919050565b60006020820190508181036000830152613d9e816134c9565b9050919050565b60006020820190508181036000830152613dbe8161352f565b9050919050565b60006020820190508181036000830152613dde81613595565b9050919050565b60006020820190508181036000830152613dfe816135fb565b9050919050565b60006020820190508181036000830152613e1e81613661565b9050919050565b60006020820190508181036000830152613e3e816136a1565b9050919050565b60006020820190508181036000830152613e5e81613707565b9050919050565b60006020820190508181036000830152613e7e8161376d565b9050919050565b60006020820190508181036000830152613e9e816137d3565b9050919050565b60006020820190508181036000830152613ebe81613839565b9050919050565b60006020820190508181036000830152613ede81613879565b9050919050565b60006020820190508181036000830152613efe816138df565b9050919050565b60006020820190508181036000830152613f1e81613945565b9050919050565b60006020820190508181036000830152613f3e816139ab565b9050919050565b60006020820190508181036000830152613f5e81613a11565b9050919050565b60006020820190508181036000830152613f7e81613a77565b9050919050565b60006020820190508181036000830152613f9e81613add565b9050919050565b60006020820190508181036000830152613fbe81613b43565b9050919050565b60006020820190508181036000830152613fde81613ba9565b9050919050565b6000602082019050613ffa6000830184613c0f565b92915050565b60006040820190506140156000830185613c0f565b6140226020830184613c0f565b9392505050565b600060208201905061403e6000830184613c1e565b92915050565b600081519050919050565b600082825260208201905092915050565b600061406b826141b3565b9150614076836141b3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140ab576140aa61422f565b5b828201905092915050565b60006140c1826141b3565b91506140cc836141b3565b9250826140dc576140db61425e565b5b828204905092915050565b60006140f2826141b3565b91506140fd836141b3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141365761413561422f565b5b828202905092915050565b600061414c826141b3565b9150614157836141b3565b92508282101561416a5761416961422f565b5b828203905092915050565b600061418082614193565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156141e85780820151818401526020810190506141cd565b838111156141f7576000848401525b50505050565b6000600282049050600182168061421557607f821691505b602082108114156142295761422861428d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6142d681614175565b81146142e157600080fd5b50565b6142ed816141b3565b81146142f857600080fd5b5056fea264697066735822122017377a376aabc6f5d7c7d682331637e6dad1626d80fb6366748fa7b3beb5d01b64736f6c634300080000330000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000120000000000000000000000009b0330006bf03c12ad991903cabb17f4a62e71bc0000000000000000000000005a18637da07696b1e1d751fa36a4010fe759a3650000000000000000000000005e7790b25c2b4b048000e3759d4f98da0f614951000000000000000000000000b2d0f19cf2b9d3632619c2029f2cfb04bcd2c86400000000000000000000000016acecfed1dd8461de48aa09522a0e9528b07d350000000000000000000000000000000000000000000000000000000000000016486f757365206f66204d616e64656c6120546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000003484f4d0000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063481c6a751161011a578063a457c2d7116100ad578063bca7a9e21161007c578063bca7a9e2146105c6578063c576e4a4146105d0578063d0ebdbe7146105ec578063dd62ed3e14610608578063e52e9f1514610638576101fb565b8063a457c2d71461052c578063a4e2d6341461055c578063a9059cbb1461057a578063b7eb5e0a146105aa576101fb565b806386d1a69f116100e957806386d1a69f146104c8578063893d20e8146104d25780638da5cb5b146104f057806395d89b411461050e576101fb565b8063481c6a751461044057806370a082311461045e578063771282f61461048e57806379cc6790146104ac576101fb565b806323b872dd116101925780633336dbf3116101615780633336dbf3146103a857806334a90d02146103d857806339509351146103f457806342966c6814610424576101fb565b806323b872dd1461032257806325541297146103525780632d787b951461036e578063313ce5671461038a576101fb565b80631641aa96116101ce5780631641aa961461029a57806318160ddd146102ca57806318a24b5b146102e85780631e50cfbd146102f2576101fb565b806306fdde0314610200578063095ea7b31461021e57806313af40351461024e5780631525ee4e1461026a575b600080fd5b610208610668565b6040516102159190613c63565b60405180910390f35b61023860048036038101906102339190613103565b6106fa565b6040516102459190613c48565b60405180910390f35b6102686004803603810190610263919061304f565b610718565b005b610284600480360381019061027f9190613078565b610829565b6040516102919190613fe5565b60405180910390f35b6102b460048036038101906102af9190613103565b6108b0565b6040516102c19190613c48565b60405180910390f35b6102d26108ce565b6040516102df9190613fe5565b60405180910390f35b6102f06108d8565b005b61030c60048036038101906103079190613103565b6109c2565b6040516103199190613c48565b60405180910390f35b61033c600480360381019061033791906130b4565b610a6e565b6040516103499190613c48565b60405180910390f35b61036c6004803603810190610367919061304f565b610b66565b005b6103886004803603810190610383919061304f565b610f06565b005b6103926112a6565b60405161039f9190614029565b60405180910390f35b6103c260048036038101906103bd9190613103565b6112ce565b6040516103cf9190613c48565b60405180910390f35b6103f260048036038101906103ed919061304f565b6113b9565b005b61040e60048036038101906104099190613103565b6114f8565b60405161041b9190613c48565b60405180910390f35b61043e6004803603810190610439919061313f565b6115a4565b005b6104486115b8565b6040516104559190613c2d565b60405180910390f35b6104786004803603810190610473919061304f565b6115e2565b6040516104859190613fe5565b60405180910390f35b61049661162b565b6040516104a39190613fe5565b60405180910390f35b6104c660048036038101906104c19190613103565b61167f565b005b6104d06116fa565b005b6104da611a5c565b6040516104e79190613c2d565b60405180910390f35b6104f8611a6b565b6040516105059190613c2d565b60405180910390f35b610516611a94565b6040516105239190613c63565b60405180910390f35b61054660048036038101906105419190613103565b611b26565b6040516105539190613c48565b60405180910390f35b610564611c11565b6040516105719190613c48565b60405180910390f35b610594600480360381019061058f9190613103565b611c28565b6040516105a19190613c48565b60405180910390f35b6105c460048036038101906105bf919061304f565b611c46565b005b6105ce611d85565b005b6105ea60048036038101906105e5919061304f565b611e6f565b005b6106066004803603810190610601919061304f565b61220f565b005b610622600480360381019061061d9190613078565b612320565b60405161062f9190613fe5565b60405180910390f35b610652600480360381019061064d919061304f565b6123a7565b60405161065f9190613c48565b60405180910390f35b606060088054610677906141fd565b80601f01602080910402602001604051908101604052809291908181526020018280546106a3906141fd565b80156106f05780601f106106c5576101008083540402835291602001916106f0565b820191906000526020600020905b8154815290600101906020018083116106d357829003601f168201915b5050505050905090565b600061070e6107076123fd565b8484612405565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107576123fd565b73ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a490613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561081d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081490613e65565b60405180910390fd5b610826816125d0565b50565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006108c46108bd6123fd565b8484612694565b6001905092915050565b6000600754905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109176123fd565b73ffffffffffffffffffffffffffffffffffffffff161461096d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096490613e05565b60405180910390fd5b6000600360006101000a81548160ff0219169083151502179055507f74e75687cb4b4a63d93a397950b5ded4054b5b45e48b215162a5efb3162465cd60006040516109b89190613c48565b60405180910390a1565b6000610a646109cf6123fd565b8484600660006109dd6123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a5f9190614060565b612694565b6001905092915050565b6000610a7b84848461285f565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ac66123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d90613de5565b60405180910390fd5b610b5a85610b526123fd565b858403612405565b60019150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ba56123fd565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290613ec5565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390613cc5565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8490613d85565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590613f25565b60405180910390fd5b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0822d2eff5e397b947a8e3922f27065290b50e08d40f83fa8f3b72c41aa7e6f560405160405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f456123fd565b73ffffffffffffffffffffffffffffffffffffffff1614610f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9290613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290613ec5565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390613cc5565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490613d85565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b590613f25565b60405180910390fd5b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0822d2eff5e397b947a8e3922f27065290b50e08d40f83fa8f3b72c41aa7e6f560405160405180910390a35050565b60007f0000000000000000000000000000000000000000000000000000000000000012905090565b600080600660006112dd6123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190613da5565b60405180910390fd5b6113ae6113a56123fd565b85858403612694565b600191505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113f86123fd565b73ffffffffffffffffffffffffffffffffffffffff161461144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590613e05565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f18e3f5e6e436b491427e1abe846e624b5846cd3bad2f3b48ad174ec2eb1431d960016040516114ed9190613c48565b60405180910390a250565b600061159a6115056123fd565b8484600560006115136123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115959190614060565b612405565b6001905092915050565b6115b56115af6123fd565b82612bb9565b50565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460075461167a9190614141565b905090565b60006116928361168d6123fd565b610829565b9050818110156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90613e45565b60405180910390fd5b6116eb836116e36123fd565b848403612694565b6116f58383612bb9565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117396123fd565b73ffffffffffffffffffffffffffffffffffffffff1614806117af5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117976123fd565b73ffffffffffffffffffffffffffffffffffffffff16145b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e590613f85565b60405180910390fd5b600b544211611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990613e25565b60405180910390fd5b600061183d306115e2565b1161187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490613c85565b60405180910390fd5b6000805b600061188b612e6b565b91508111156118a75780826118a09190614060565b9150611881565b6118ec30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646048866118dd91906140e7565b6118e791906140b6565b61285f565b61193130600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460088661192291906140e7565b61192c91906140b6565b61285f565b61197630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460148661196791906140e7565b61197191906140b6565b61285f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f38591994c3ae49552708bc1833f4ccb313aa9d4e43514dea62839b3e4a91d4c585604051611a509190613fe5565b60405180910390a45050565b6000611a66611a6b565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054611aa3906141fd565b80601f0160208091040260200160405190810160405280929190818152602001828054611acf906141fd565b8015611b1c5780601f10611af157610100808354040283529160200191611b1c565b820191906000526020600020905b815481529060010190602001808311611aff57829003601f168201915b5050505050905090565b60008060056000611b356123fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990613fc5565b60405180910390fd5b611c06611bfd6123fd565b85858403612405565b600191505092915050565b6000600360009054906101000a900460ff16905090565b6000611c3c611c356123fd565b848461285f565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c856123fd565b73ffffffffffffffffffffffffffffffffffffffff1614611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd290613e05565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f18e3f5e6e436b491427e1abe846e624b5846cd3bad2f3b48ad174ec2eb1431d96000604051611d7a9190613c48565b60405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dc46123fd565b73ffffffffffffffffffffffffffffffffffffffff1614611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190613e05565b60405180910390fd5b6001600360006101000a81548160ff0219169083151502179055507f74e75687cb4b4a63d93a397950b5ded4054b5b45e48b215162a5efb3162465cd6001604051611e659190613c48565b60405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611eae6123fd565b73ffffffffffffffffffffffffffffffffffffffff1614611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b90613ec5565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffc90613cc5565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d90613d85565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90613f25565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0822d2eff5e397b947a8e3922f27065290b50e08d40f83fa8f3b72c41aa7e6f560405160405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661224e6123fd565b73ffffffffffffffffffffffffffffffffffffffff16146122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b90613e05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b90613d05565b60405180910390fd5b61231d81612f5f565b50565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90613f45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dc90613ce5565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125c39190613fe5565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fb90613d25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276b90613ea5565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f7cf97656de28b2f9c34f8f8f50ddae38f357b7ed1962a845f2246640f1a9d811836040516128529190613fe5565b60405180910390a3505050565b600360009054906101000a900460ff16156128af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a690613ca5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561291f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291690613d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690613f05565b60405180910390fd5b612998836123a7565b156129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf90613e85565b60405180910390fd5b6129e1826123a7565b15612a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1890613dc5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9a90613d65565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612af29190614141565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b489190614060565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bac9190613fe5565b60405180910390a3505050565b600360009054906101000a900460ff1615612c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0090613ca5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7090613ee5565b60405180910390fd5b612c82826123a7565b15612cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb990613fa5565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3b90613f65565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d939190614141565b925050819055508060076000828254612dac9190614141565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e119190613fe5565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051612e5f9190613fe5565b60405180910390a25050565b6000600b54421080612e8557506000612e83306115e2565b145b15612e935760009050612f5c565b6000612e9e306115e2565b600a5411612eae57600a54612eb8565b612eb7306115e2565b5b9050620927c0600b6000828254612ecf9190614060565b92505081905550600c54600b5410612f57576307829b80600c6000828254612ef79190614060565b925050819055506000600a5490506002600a54612f1491906140b6565b600a819055507f394823b0bcaf78cd8f5876a52c05dbab91512a05f5da2a31e239a11ab66d605f81600a54604051612f4d929190614000565b60405180910390a1505b809150505b90565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8560405160405180910390a35050565b600081359050613034816142cd565b92915050565b600081359050613049816142e4565b92915050565b60006020828403121561306157600080fd5b600061306f84828501613025565b91505092915050565b6000806040838503121561308b57600080fd5b600061309985828601613025565b92505060206130aa85828601613025565b9150509250929050565b6000806000606084860312156130c957600080fd5b60006130d786828701613025565b93505060206130e886828701613025565b92505060406130f98682870161303a565b9150509250925092565b6000806040838503121561311657600080fd5b600061312485828601613025565b92505060206131358582860161303a565b9150509250929050565b60006020828403121561315157600080fd5b600061315f8482850161303a565b91505092915050565b61317181614175565b82525050565b61318081614187565b82525050565b600061319182614044565b61319b818561404f565b93506131ab8185602086016141ca565b6131b4816142bc565b840191505092915050565b60006131cc60228361404f565b91507f546865726520617265206e6f206d6f726520636f696e7320746f2072656c656160008301527f73650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061323260288361404f565b91507f416c6c20746f6b656e207472616e7366657273206172652063757272656e746c60008301527f79206c6f636b65640000000000000000000000000000000000000000000000006020830152604082019050919050565b600061329860358361404f565b91507f4e65772072656c6561736520616464726573732063616e27742062652073616d60008301527f65206173205f72656c65617365416464726573733100000000000000000000006020830152604082019050919050565b60006132fe60228361404f565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613364602a8361404f565b91507f4d616e616765643a206e6577206d616e616765722063616e2774206265207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b60006133ca60218361404f565b91507f6275726e417070726f76652066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613430601f8361404f565b91507f45524332303a207472616e7366657220746f207a65726f2061646472657373006000830152602082019050919050565b600061347060308361404f565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f7661696c61626c652062616c616e6365000000000000000000000000000000006020830152604082019050919050565b60006134d660358361404f565b91507f4e65772072656c6561736520616464726573732063616e27742062652073616d60008301527f65206173205f72656c65617365416464726573733200000000000000000000006020830152604082019050919050565b600061353c60298361404f565b91507f45524332303a20646563726561736564206275726e416c6c6f77616e6365206260008301527f656c6f77207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b60006135a2603d8361404f565b91507f526563697069656e7420616464726573732069732063757272656e746c79206c60008301527f6f636b656420616e642063616e277420726563656976652066756e64730000006020830152604082019050919050565b600061360860288361404f565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b600061366e60208361404f565b91507f4d616e616765643a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006136ae60268361404f565b91507f4e65787420636f696e2072656c65617365206973206e6f74207965742073636860008301527f6564756c656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061371460248361404f565b91507f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008301527f616e6365000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061377a60288361404f565b91507f4d616e616765643a206e6577206f776e65722063616e2774206265207a65726f60008301527f20616464726573730000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137e060378361404f565b91507f53656e64657220616464726573732069732063757272656e746c79206c6f636b60008301527f656420616e642063616e27742073656e642066756e64730000000000000000006020830152604082019050919050565b6000613846601f8361404f565b91507f6275726e417070726f766520746f20746865207a65726f2061646472657373006000830152602082019050919050565b6000613886602b8361404f565b91507f4e65772072656c6561736520616464726573732063616e27742062652061207a60008301527f65726f20616464726573730000000000000000000000000000000000000000006020830152604082019050919050565b60006138ec60218361404f565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061395260258361404f565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139b860358361404f565b91507f4e65772072656c6561736520616464726573732063616e27742062652073616d60008301527f65206173205f72656c65617365416464726573733300000000000000000000006020830152604082019050919050565b6000613a1e60248361404f565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a84602c8361404f565b91507f45524332303a206275726e20616d6f756e74206578636565647320617661696c60008301527f61626c652062616c616e636500000000000000000000000000000000000000006020830152604082019050919050565b6000613aea602b8361404f565b91507f4d616e616765643a2063616c6c6572206973206e6f7420746865206f776e657260008301527f206f72206d616e616765720000000000000000000000000000000000000000006020830152604082019050919050565b6000613b5060378361404f565b91507f53656e64657220616464726573732069732063757272656e746c79206c6f636b60008301527f656420616e642063616e2774206275726e2066756e64730000000000000000006020830152604082019050919050565b6000613bb660258361404f565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b613c18816141b3565b82525050565b613c27816141bd565b82525050565b6000602082019050613c426000830184613168565b92915050565b6000602082019050613c5d6000830184613177565b92915050565b60006020820190508181036000830152613c7d8184613186565b905092915050565b60006020820190508181036000830152613c9e816131bf565b9050919050565b60006020820190508181036000830152613cbe81613225565b9050919050565b60006020820190508181036000830152613cde8161328b565b9050919050565b60006020820190508181036000830152613cfe816132f1565b9050919050565b60006020820190508181036000830152613d1e81613357565b9050919050565b60006020820190508181036000830152613d3e816133bd565b9050919050565b60006020820190508181036000830152613d5e81613423565b9050919050565b60006020820190508181036000830152613d7e81613463565b9050919050565b60006020820190508181036000830152613d9e816134c9565b9050919050565b60006020820190508181036000830152613dbe8161352f565b9050919050565b60006020820190508181036000830152613dde81613595565b9050919050565b60006020820190508181036000830152613dfe816135fb565b9050919050565b60006020820190508181036000830152613e1e81613661565b9050919050565b60006020820190508181036000830152613e3e816136a1565b9050919050565b60006020820190508181036000830152613e5e81613707565b9050919050565b60006020820190508181036000830152613e7e8161376d565b9050919050565b60006020820190508181036000830152613e9e816137d3565b9050919050565b60006020820190508181036000830152613ebe81613839565b9050919050565b60006020820190508181036000830152613ede81613879565b9050919050565b60006020820190508181036000830152613efe816138df565b9050919050565b60006020820190508181036000830152613f1e81613945565b9050919050565b60006020820190508181036000830152613f3e816139ab565b9050919050565b60006020820190508181036000830152613f5e81613a11565b9050919050565b60006020820190508181036000830152613f7e81613a77565b9050919050565b60006020820190508181036000830152613f9e81613add565b9050919050565b60006020820190508181036000830152613fbe81613b43565b9050919050565b60006020820190508181036000830152613fde81613ba9565b9050919050565b6000602082019050613ffa6000830184613c0f565b92915050565b60006040820190506140156000830185613c0f565b6140226020830184613c0f565b9392505050565b600060208201905061403e6000830184613c1e565b92915050565b600081519050919050565b600082825260208201905092915050565b600061406b826141b3565b9150614076836141b3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140ab576140aa61422f565b5b828201905092915050565b60006140c1826141b3565b91506140cc836141b3565b9250826140dc576140db61425e565b5b828204905092915050565b60006140f2826141b3565b91506140fd836141b3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141365761413561422f565b5b828202905092915050565b600061414c826141b3565b9150614157836141b3565b92508282101561416a5761416961422f565b5b828203905092915050565b600061418082614193565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156141e85780820151818401526020810190506141cd565b838111156141f7576000848401525b50505050565b6000600282049050600182168061421557607f821691505b602082108114156142295761422861428d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6142d681614175565b81146142e157600080fd5b50565b6142ed816141b3565b81146142f857600080fd5b5056fea264697066735822122017377a376aabc6f5d7c7d682331637e6dad1626d80fb6366748fa7b3beb5d01b64736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000120000000000000000000000009b0330006bf03c12ad991903cabb17f4a62e71bc0000000000000000000000005a18637da07696b1e1d751fa36a4010fe759a3650000000000000000000000005e7790b25c2b4b048000e3759d4f98da0f614951000000000000000000000000b2d0f19cf2b9d3632619c2029f2cfb04bcd2c86400000000000000000000000016acecfed1dd8461de48aa09522a0e9528b07d350000000000000000000000000000000000000000000000000000000000000016486f757365206f66204d616e64656c6120546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000003484f4d0000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): House of Mandela Token
Arg [1] : symbol_ (string): HOM
Arg [2] : decimals_ (uint8): 18
Arg [3] : owner_ (address): 0x9b0330006BF03C12ad991903caBb17F4A62e71bc
Arg [4] : manager_ (address): 0x5a18637da07696B1E1D751fA36A4010fE759a365
Arg [5] : initialDepositAddress1 (address): 0x5e7790B25c2B4B048000E3759D4f98da0F614951
Arg [6] : initialDepositAddress2 (address): 0xB2D0F19CF2B9D3632619C2029f2cFB04BcD2C864
Arg [7] : initialDepositAddress3 (address): 0x16ACEcFEd1dD8461dE48aA09522A0e9528B07d35
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000009b0330006bf03c12ad991903cabb17f4a62e71bc
Arg [4] : 0000000000000000000000005a18637da07696b1e1d751fa36a4010fe759a365
Arg [5] : 0000000000000000000000005e7790b25c2b4b048000e3759d4f98da0f614951
Arg [6] : 000000000000000000000000b2d0f19cf2b9d3632619c2029f2cfb04bcd2c864
Arg [7] : 00000000000000000000000016acecfed1dd8461de48aa09522a0e9528b07d35
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000016
Arg [9] : 486f757365206f66204d616e64656c6120546f6b656e00000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [11] : 484f4d0000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
10576:19895:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14446:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17063:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5540:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16780:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17334:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15707:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8094:120;;;:::i;:::-;;20137:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17966:460;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22256:691;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23994;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15393:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21641:443;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8737:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19726:217;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18538:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5334:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16088:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15906:119;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18933:395;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25096:720;;;:::i;:::-;;15553:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5183:70;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14662:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20856:415;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8297:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16383:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9044:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7858:116;;;:::i;:::-;;23126:691;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5860:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16621:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9293:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14446:100;14500:13;14533:5;14526:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14446:100;:::o;17063:171::-;17148:4;17165:39;17174:12;:10;:12::i;:::-;17188:7;17197:6;17165:8;:39::i;:::-;17222:4;17215:11;;17063:171;;;;:::o;5540:184::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5639:1:::1;5619:22;;:8;:22;;;;5611:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;5697:19;5707:8;5697:9;:19::i;:::-;5540:184:::0;:::o;16780:142::-;16856:7;16883:15;:22;16899:5;16883:22;;;;;;;;;;;;;;;:31;16906:7;16883:31;;;;;;;;;;;;;;;;16876:38;;16780:142;;;;:::o;17334:162::-;17406:4;17423:43;17436:12;:10;:12::i;:::-;17450:7;17459:6;17423:12;:43::i;:::-;17484:4;17477:11;;17334:162;;;;:::o;15707:108::-;15768:7;15795:12;;15788:19;;15707:108;:::o;8094:120::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8162:5:::1;8152:7;;:15;;;;;;;;;;;;;;;;;;8183:23;8200:5;8183:23;;;;;;:::i;:::-;;;;;;;;8094:120::o:0;20137:229::-;20231:4;20248:88;20261:12;:10;:12::i;:::-;20275:7;20325:10;20284:15;:29;20300:12;:10;:12::i;:::-;20284:29;;;;;;;;;;;;;;;:38;20314:7;20284:38;;;;;;;;;;;;;;;;:51;;;;:::i;:::-;20248:12;:88::i;:::-;20354:4;20347:11;;20137:229;;;;:::o;17966:460::-;18074:4;18091:36;18101:6;18109:9;18120:6;18091:9;:36::i;:::-;18140:24;18167:11;:19;18179:6;18167:19;;;;;;;;;;;;;;;:33;18187:12;:10;:12::i;:::-;18167:33;;;;;;;;;;;;;;;;18140:60;;18239:6;18219:16;:26;;18211:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18326:57;18335:6;18343:12;:10;:12::i;:::-;18376:6;18357:16;:25;18326:8;:57::i;:::-;18414:4;18407:11;;;17966:460;;;;;:::o;22256:691::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22383:1:::1;22354:31;;:17;:31;;;;22346:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;22473:16;;;;;;;;;;;22452:37;;:17;:37;;;;22444:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;22587:16;;;;;;;;;;;22566:37;;:17;:37;;;;22558:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;22701:16;;;;;;;;;;;22680:37;;:17;:37;;;;22672:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;22788:18;22809:16;;;;;;;;;;;22788:37;;22855:17;22836:16;;:36;;;;;;;;;;;;;;;;;;22922:16;;;;;;;;;;;22888:51;;22910:10;22888:51;;;;;;;;;;;;6262:1;22256:691:::0;:::o;23994:::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24121:1:::1;24092:31;;:17;:31;;;;24084:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;24211:16;;;;;;;;;;;24190:37;;:17;:37;;;;24182:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;24325:16;;;;;;;;;;;24304:37;;:17;:37;;;;24296:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;24439:16;;;;;;;;;;;24418:37;;:17;:37;;;;24410:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;24526:18;24547:16;;;;;;;;;;;24526:37;;24593:17;24574:16;;:36;;;;;;;;;;;;;;;;;;24660:16;;;;;;;;;;;24626:51;;24648:10;24626:51;;;;;;;;;;;;6262:1;23994:691:::0;:::o;15393:100::-;15451:5;15476:9;15469:16;;15393:100;:::o;21641:443::-;21740:4;21757:28;21788:15;:29;21804:12;:10;:12::i;:::-;21788:29;;;;;;;;;;;;;;;:38;21818:7;21788:38;;;;;;;;;;;;;;;;21757:69;;21869:15;21845:20;:39;;21837:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;21966:75;21979:12;:10;:12::i;:::-;21993:7;22025:15;22002:20;:38;21966:12;:75::i;:::-;22072:4;22065:11;;;21641:443;;;;:::o;8737:150::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8829:4:::1;8807:13;:19;8821:4;8807:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;8868:4;8849:30;;;8874:4;8849:30;;;;;;:::i;:::-;;;;;;;;8737:150:::0;:::o;19726:217::-;19816:4;19833:80;19842:12;:10;:12::i;:::-;19856:7;19902:10;19865:11;:25;19877:12;:10;:12::i;:::-;19865:25;;;;;;;;;;;;;;;:34;19891:7;19865:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;19833:8;:80::i;:::-;19931:4;19924:11;;19726:217;;;;:::o;18538:84::-;18592:27;18598:12;:10;:12::i;:::-;18612:6;18592:5;:27::i;:::-;18538:84;:::o;5334:74::-;5374:7;5397:8;;;;;;;;;;;5390:15;;5334:74;:::o;16088:127::-;16162:7;16189:9;:18;16199:7;16189:18;;;;;;;;;;;;;;;;16182:25;;16088:127;;;:::o;15906:119::-;15951:7;15993:9;:24;16011:4;15993:24;;;;;;;;;;;;;;;;15978:12;;:39;;;;:::i;:::-;15971:46;;15906:119;:::o;18933:395::-;19017:28;19048:36;19062:7;19071:12;:10;:12::i;:::-;19048:13;:36::i;:::-;19017:67;;19127:6;19103:20;:30;;19095:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19210:66;19223:7;19232:12;:10;:12::i;:::-;19269:6;19246:20;:29;19210:12;:66::i;:::-;19298:22;19304:7;19313:6;19298:5;:22::i;:::-;18933:395;;;:::o;25096:720::-;6435:6;;;;;;;;;;6419:22;;:12;:10;:12::i;:::-;:22;;;:50;;;;6461:8;;;;;;;;;;;6445:24;;:12;:10;:12::i;:::-;:24;;;6419:50;6411:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;25181:16:::1;;25163:15;:34;25155:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;25286:1;25259:24;25277:4;25259:9;:24::i;:::-;:28;25251:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;25339:17;25371:22:::0;25410:97:::1;25463:1;25434:25;:23;:25::i;:::-;25417:42;;;25416:48;25410:97;;;25490:14;25477:27;;;;;:::i;:::-;;;25410:97;;;25519:60;25537:4;25544:16;;;;;;;;;;;25575:3;25572:2;25562:9;:12;;;;:::i;:::-;:16;;;;:::i;:::-;25519:9;:60::i;:::-;25590:59;25608:4;25615:16;;;;;;;;;;;25645:3;25643:1;25633:9;:11;;;;:::i;:::-;:15;;;;:::i;:::-;25590:9;:59::i;:::-;25660:60;25678:4;25685:16;;;;;;;;;;;25716:3;25713:2;25703:9;:12;;;;:::i;:::-;:16;;;;:::i;:::-;25660:9;:60::i;:::-;25780:16;;;;;;;;;;;25736:72;;25762:16;;;;;;;;;;;25736:72;;25744:16;;;;;;;;;;;25736:72;;;25798:9;25736:72;;;;;;:::i;:::-;;;;;;;;6528:1;;25096:720::o:0;15553:91::-;15611:7;15634;:5;:7::i;:::-;15627:14;;15553:91;:::o;5183:70::-;5221:7;5244:6;;;;;;;;;;;5237:13;;5183:70;:::o;14662:104::-;14718:13;14751:7;14744:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14662:104;:::o;20856:415::-;20951:4;20968:24;20995:11;:25;21007:12;:10;:12::i;:::-;20995:25;;;;;;;;;;;;;;;:34;21021:7;20995:34;;;;;;;;;;;;;;;;20968:61;;21068:15;21048:16;:35;;21040:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;21161:67;21170:12;:10;:12::i;:::-;21184:7;21212:15;21193:16;:34;21161:8;:67::i;:::-;21259:4;21252:11;;;20856:415;;;;:::o;8297:71::-;8338:4;8358:7;;;;;;;;;;;8351:14;;8297:71;:::o;16383:177::-;16471:4;16488:42;16498:12;:10;:12::i;:::-;16512:9;16523:6;16488:9;:42::i;:::-;16548:4;16541:11;;16383:177;;;;:::o;9044:154::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9138:5:::1;9116:13;:19;9130:4;9116:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;9178:4;9159:31;;;9184:5;9159:31;;;;;;:::i;:::-;;;;;;;;9044:154:::0;:::o;7858:116::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7924:4:::1;7914:7;;:14;;;;;;;;;;;;;;;;;;7944:22;7961:4;7944:22;;;;;;:::i;:::-;;;;;;;;7858:116::o:0;23126:691::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23253:1:::1;23224:31;;:17;:31;;;;23216:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;23343:16;;;;;;;;;;;23322:37;;:17;:37;;;;23314:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;23457:16;;;;;;;;;;;23436:37;;:17;:37;;;;23428:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;23571:16;;;;;;;;;;;23550:37;;:17;:37;;;;23542:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;23658:18;23679:16;;;;;;;;;;;23658:37;;23725:17;23706:16;;:36;;;;;;;;;;;;;;;;;;23792:16;;;;;;;;;;;23758:51;;23780:10;23758:51;;;;;;;;;;;;6262:1;23126:691:::0;:::o;5860:196::-;6208:6;;;;;;;;;;6192:22;;:12;:10;:12::i;:::-;:22;;;6184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5965:1:::1;5943:24;;:10;:24;;;;5935:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:23;6037:10;6025:11;:23::i;:::-;5860:196:::0;:::o;16621:151::-;16710:7;16737:11;:18;16749:5;16737:18;;;;;;;;;;;;;;;:27;16756:7;16737:27;;;;;;;;;;;;;;;;16730:34;;16621:151;;;;:::o;9293:102::-;9353:4;9373:13;:19;9387:4;9373:19;;;;;;;;;;;;;;;;;;;;;;;;;9366:26;;9293:102;;;:::o;3718:98::-;3771:7;3798:10;3791:17;;3718:98;:::o;28542:346::-;28661:1;28644:19;;:5;:19;;;;28636:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28742:1;28723:21;;:7;:21;;;;28715:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28826:6;28796:11;:18;28808:5;28796:18;;;;;;;;;;;;;;;:27;28815:7;28796:27;;;;;;;;;;;;;;;:36;;;;28864:7;28848:32;;28857:5;28848:32;;;28873:6;28848:32;;;;;;:::i;:::-;;;;;;;;28542:346;;;:::o;6686:179::-;6748:16;6767:6;;;;;;;;;;;6748:25;;6793:8;6784:6;;:17;;;;;;;;;;;;;;;;;;6848:8;6817:40;;6838:8;6817:40;;;;;;;;;;;;6686:179;;:::o;29170:352::-;29293:1;29276:19;;:5;:19;;;;29268:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;29371:1;29352:21;;:7;:21;;;;29344:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;29456:6;29422:15;:22;29438:5;29422:22;;;;;;;;;;;;;;;:31;29445:7;29422:31;;;;;;;;;;;;;;;:40;;;;29498:7;29478:36;;29491:5;29478:36;;;29507:6;29478:36;;;;;;:::i;:::-;;;;;;;;29170:352;;;:::o;27394:722::-;8510:7;;;;;;;;;;;8509:8;8501:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;27537:1:::1;27516:23;;:9;:23;;;;27508:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27612:1;27594:20;;:6;:20;;;;27586:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;27678:23;27694:6;27678:15;:23::i;:::-;27677:24;27669:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;27781:26;27797:9;27781:15;:26::i;:::-;27780:27;27772:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;27915:6;27894:9;:17;27904:6;27894:17;;;;;;;;;;;;;;;;:27;;27886:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;28008:6;27987:9;:17;27997:6;27987:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;28049:6;28025:9;:20;28035:9;28025:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;28090:9;28073:35;;28082:6;28073:35;;;28101:6;28073:35;;;;;;:::i;:::-;;;;;;;;27394:722:::0;;;:::o;29931:537::-;8510:7;;;;;;;;;;;8509:8;8501:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;30050:1:::1;30031:21;;:7;:21;;;;30023:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;30112:24;30128:7;30112:15;:24::i;:::-;30111:25;30103:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;30239:6;30217:9;:18;30227:7;30217:18;;;;;;;;;;;;;;;;:28;;30209:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;30329:6;30307:9;:18;30317:7;30307:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;30362:6;30346:12;;:22;;;;;;;:::i;:::-;;;;;;;;30412:1;30386:37;;30395:7;30386:37;;;30416:6;30386:37;;;;;;:::i;:::-;;;;;;;;30444:7;30439:21;;;30453:6;30439:21;;;;;;:::i;:::-;;;;;;;;29931:537:::0;;:::o;26225:649::-;26278:7;26324:16;;26306:15;:34;:67;;;;26372:1;26344:24;26362:4;26344:9;:24::i;:::-;:29;26306:67;26303:93;;;26395:1;26388:8;;;;26303:93;26409:14;26443:24;26461:4;26443:9;:24::i;:::-;26426:14;;:41;:85;;26497:14;;26426:85;;;26470:24;26488:4;26470:9;:24::i;:::-;26426:85;26409:102;;11654:6;26524:16;;:25;;;;;;;:::i;:::-;;;;;;;;26583:19;;26563:16;;:39;26560:281;;11720:9;26628:19;;:30;;;;;;;:::i;:::-;;;;;;;;26675:24;26702:14;;26675:41;;26765:1;26748:14;;:18;;;;:::i;:::-;26731:14;:35;;;;26788:41;26796:16;26814:14;;26788:41;;;;;;;:::i;:::-;;;;;;;;26560:281;;26860:6;26853:13;;;26225:649;;:::o;7018:196::-;7084:18;7105:8;;;;;;;;;;;7084:29;;7135:10;7124:8;;:21;;;;;;;;;;;;;;;;;;7195:10;7161:45;;7183:10;7161:45;;;;;;;;;;;;7018:196;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2282:53;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2400:50;;:::o;2456:364::-;;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;;;;;:::o;2826:366::-;;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3086:34;3082:1;3077:3;3073:11;3066:55;3152:4;3147:2;3142:3;3138:12;3131:26;3183:2;3178:3;3174:12;3167:19;;2972:220;;;:::o;3198:372::-;;3361:67;3425:2;3420:3;3361:67;:::i;:::-;3354:74;;3458:34;3454:1;3449:3;3445:11;3438:55;3524:10;3519:2;3514:3;3510:12;3503:32;3561:2;3556:3;3552:12;3545:19;;3344:226;;;:::o;3576:385::-;;3739:67;3803:2;3798:3;3739:67;:::i;:::-;3732:74;;3836:34;3832:1;3827:3;3823:11;3816:55;3902:23;3897:2;3892:3;3888:12;3881:45;3952:2;3947:3;3943:12;3936:19;;3722:239;;;:::o;3967:366::-;;4130:67;4194:2;4189:3;4130:67;:::i;:::-;4123:74;;4227:34;4223:1;4218:3;4214:11;4207:55;4293:4;4288:2;4283:3;4279:12;4272:26;4324:2;4319:3;4315:12;4308:19;;4113:220;;;:::o;4339:374::-;;4502:67;4566:2;4561:3;4502:67;:::i;:::-;4495:74;;4599:34;4595:1;4590:3;4586:11;4579:55;4665:12;4660:2;4655:3;4651:12;4644:34;4704:2;4699:3;4695:12;4688:19;;4485:228;;;:::o;4719:365::-;;4882:67;4946:2;4941:3;4882:67;:::i;:::-;4875:74;;4979:34;4975:1;4970:3;4966:11;4959:55;5045:3;5040:2;5035:3;5031:12;5024:25;5075:2;5070:3;5066:12;5059:19;;4865:219;;;:::o;5090:329::-;;5253:67;5317:2;5312:3;5253:67;:::i;:::-;5246:74;;5350:33;5346:1;5341:3;5337:11;5330:54;5410:2;5405:3;5401:12;5394:19;;5236:183;;;:::o;5425:380::-;;5588:67;5652:2;5647:3;5588:67;:::i;:::-;5581:74;;5685:34;5681:1;5676:3;5672:11;5665:55;5751:18;5746:2;5741:3;5737:12;5730:40;5796:2;5791:3;5787:12;5780:19;;5571:234;;;:::o;5811:385::-;;5974:67;6038:2;6033:3;5974:67;:::i;:::-;5967:74;;6071:34;6067:1;6062:3;6058:11;6051:55;6137:23;6132:2;6127:3;6123:12;6116:45;6187:2;6182:3;6178:12;6171:19;;5957:239;;;:::o;6202:373::-;;6365:67;6429:2;6424:3;6365:67;:::i;:::-;6358:74;;6462:34;6458:1;6453:3;6449:11;6442:55;6528:11;6523:2;6518:3;6514:12;6507:33;6566:2;6561:3;6557:12;6550:19;;6348:227;;;:::o;6581:393::-;;6744:67;6808:2;6803:3;6744:67;:::i;:::-;6737:74;;6841:34;6837:1;6832:3;6828:11;6821:55;6907:31;6902:2;6897:3;6893:12;6886:53;6965:2;6960:3;6956:12;6949:19;;6727:247;;;:::o;6980:372::-;;7143:67;7207:2;7202:3;7143:67;:::i;:::-;7136:74;;7240:34;7236:1;7231:3;7227:11;7220:55;7306:10;7301:2;7296:3;7292:12;7285:32;7343:2;7338:3;7334:12;7327:19;;7126:226;;;:::o;7358:330::-;;7521:67;7585:2;7580:3;7521:67;:::i;:::-;7514:74;;7618:34;7614:1;7609:3;7605:11;7598:55;7679:2;7674:3;7670:12;7663:19;;7504:184;;;:::o;7694:370::-;;7857:67;7921:2;7916:3;7857:67;:::i;:::-;7850:74;;7954:34;7950:1;7945:3;7941:11;7934:55;8020:8;8015:2;8010:3;8006:12;7999:30;8055:2;8050:3;8046:12;8039:19;;7840:224;;;:::o;8070:368::-;;8233:67;8297:2;8292:3;8233:67;:::i;:::-;8226:74;;8330:34;8326:1;8321:3;8317:11;8310:55;8396:6;8391:2;8386:3;8382:12;8375:28;8429:2;8424:3;8420:12;8413:19;;8216:222;;;:::o;8444:372::-;;8607:67;8671:2;8666:3;8607:67;:::i;:::-;8600:74;;8704:34;8700:1;8695:3;8691:11;8684:55;8770:10;8765:2;8760:3;8756:12;8749:32;8807:2;8802:3;8798:12;8791:19;;8590:226;;;:::o;8822:387::-;;8985:67;9049:2;9044:3;8985:67;:::i;:::-;8978:74;;9082:34;9078:1;9073:3;9069:11;9062:55;9148:25;9143:2;9138:3;9134:12;9127:47;9200:2;9195:3;9191:12;9184:19;;8968:241;;;:::o;9215:329::-;;9378:67;9442:2;9437:3;9378:67;:::i;:::-;9371:74;;9475:33;9471:1;9466:3;9462:11;9455:54;9535:2;9530:3;9526:12;9519:19;;9361:183;;;:::o;9550:375::-;;9713:67;9777:2;9772:3;9713:67;:::i;:::-;9706:74;;9810:34;9806:1;9801:3;9797:11;9790:55;9876:13;9871:2;9866:3;9862:12;9855:35;9916:2;9911:3;9907:12;9900:19;;9696:229;;;:::o;9931:365::-;;10094:67;10158:2;10153:3;10094:67;:::i;:::-;10087:74;;10191:34;10187:1;10182:3;10178:11;10171:55;10257:3;10252:2;10247:3;10243:12;10236:25;10287:2;10282:3;10278:12;10271:19;;10077:219;;;:::o;10302:369::-;;10465:67;10529:2;10524:3;10465:67;:::i;:::-;10458:74;;10562:34;10558:1;10553:3;10549:11;10542:55;10628:7;10623:2;10618:3;10614:12;10607:29;10662:2;10657:3;10653:12;10646:19;;10448:223;;;:::o;10677:385::-;;10840:67;10904:2;10899:3;10840:67;:::i;:::-;10833:74;;10937:34;10933:1;10928:3;10924:11;10917:55;11003:23;10998:2;10993:3;10989:12;10982:45;11053:2;11048:3;11044:12;11037:19;;10823:239;;;:::o;11068:368::-;;11231:67;11295:2;11290:3;11231:67;:::i;:::-;11224:74;;11328:34;11324:1;11319:3;11315:11;11308:55;11394:6;11389:2;11384:3;11380:12;11373:28;11427:2;11422:3;11418:12;11411:19;;11214:222;;;:::o;11442:376::-;;11605:67;11669:2;11664:3;11605:67;:::i;:::-;11598:74;;11702:34;11698:1;11693:3;11689:11;11682:55;11768:14;11763:2;11758:3;11754:12;11747:36;11809:2;11804:3;11800:12;11793:19;;11588:230;;;:::o;11824:375::-;;11987:67;12051:2;12046:3;11987:67;:::i;:::-;11980:74;;12084:34;12080:1;12075:3;12071:11;12064:55;12150:13;12145:2;12140:3;12136:12;12129:35;12190:2;12185:3;12181:12;12174:19;;11970:229;;;:::o;12205:387::-;;12368:67;12432:2;12427:3;12368:67;:::i;:::-;12361:74;;12465:34;12461:1;12456:3;12452:11;12445:55;12531:25;12526:2;12521:3;12517:12;12510:47;12583:2;12578:3;12574:12;12567:19;;12351:241;;;:::o;12598:369::-;;12761:67;12825:2;12820:3;12761:67;:::i;:::-;12754:74;;12858:34;12854:1;12849:3;12845:11;12838:55;12924:7;12919:2;12914:3;12910:12;12903:29;12958:2;12953:3;12949:12;12942:19;;12744:223;;;:::o;12973:118::-;13060:24;13078:5;13060:24;:::i;:::-;13055:3;13048:37;13038:53;;:::o;13097:112::-;13180:22;13196:5;13180:22;:::i;:::-;13175:3;13168:35;13158:51;;:::o;13215:222::-;;13346:2;13335:9;13331:18;13323:26;;13359:71;13427:1;13416:9;13412:17;13403:6;13359:71;:::i;:::-;13313:124;;;;:::o;13443:210::-;;13568:2;13557:9;13553:18;13545:26;;13581:65;13643:1;13632:9;13628:17;13619:6;13581:65;:::i;:::-;13535:118;;;;:::o;13659:313::-;;13810:2;13799:9;13795:18;13787:26;;13859:9;13853:4;13849:20;13845:1;13834:9;13830:17;13823:47;13887:78;13960:4;13951:6;13887:78;:::i;:::-;13879:86;;13777:195;;;;:::o;13978:419::-;;14182:2;14171:9;14167:18;14159:26;;14231:9;14225:4;14221:20;14217:1;14206:9;14202:17;14195:47;14259:131;14385:4;14259:131;:::i;:::-;14251:139;;14149:248;;;:::o;14403:419::-;;14607:2;14596:9;14592:18;14584:26;;14656:9;14650:4;14646:20;14642:1;14631:9;14627:17;14620:47;14684:131;14810:4;14684:131;:::i;:::-;14676:139;;14574:248;;;:::o;14828:419::-;;15032:2;15021:9;15017:18;15009:26;;15081:9;15075:4;15071:20;15067:1;15056:9;15052:17;15045:47;15109:131;15235:4;15109:131;:::i;:::-;15101:139;;14999:248;;;:::o;15253:419::-;;15457:2;15446:9;15442:18;15434:26;;15506:9;15500:4;15496:20;15492:1;15481:9;15477:17;15470:47;15534:131;15660:4;15534:131;:::i;:::-;15526:139;;15424:248;;;:::o;15678:419::-;;15882:2;15871:9;15867:18;15859:26;;15931:9;15925:4;15921:20;15917:1;15906:9;15902:17;15895:47;15959:131;16085:4;15959:131;:::i;:::-;15951:139;;15849:248;;;:::o;16103:419::-;;16307:2;16296:9;16292:18;16284:26;;16356:9;16350:4;16346:20;16342:1;16331:9;16327:17;16320:47;16384:131;16510:4;16384:131;:::i;:::-;16376:139;;16274:248;;;:::o;16528:419::-;;16732:2;16721:9;16717:18;16709:26;;16781:9;16775:4;16771:20;16767:1;16756:9;16752:17;16745:47;16809:131;16935:4;16809:131;:::i;:::-;16801:139;;16699:248;;;:::o;16953:419::-;;17157:2;17146:9;17142:18;17134:26;;17206:9;17200:4;17196:20;17192:1;17181:9;17177:17;17170:47;17234:131;17360:4;17234:131;:::i;:::-;17226:139;;17124:248;;;:::o;17378:419::-;;17582:2;17571:9;17567:18;17559:26;;17631:9;17625:4;17621:20;17617:1;17606:9;17602:17;17595:47;17659:131;17785:4;17659:131;:::i;:::-;17651:139;;17549:248;;;:::o;17803:419::-;;18007:2;17996:9;17992:18;17984:26;;18056:9;18050:4;18046:20;18042:1;18031:9;18027:17;18020:47;18084:131;18210:4;18084:131;:::i;:::-;18076:139;;17974:248;;;:::o;18228:419::-;;18432:2;18421:9;18417:18;18409:26;;18481:9;18475:4;18471:20;18467:1;18456:9;18452:17;18445:47;18509:131;18635:4;18509:131;:::i;:::-;18501:139;;18399:248;;;:::o;18653:419::-;;18857:2;18846:9;18842:18;18834:26;;18906:9;18900:4;18896:20;18892:1;18881:9;18877:17;18870:47;18934:131;19060:4;18934:131;:::i;:::-;18926:139;;18824:248;;;:::o;19078:419::-;;19282:2;19271:9;19267:18;19259:26;;19331:9;19325:4;19321:20;19317:1;19306:9;19302:17;19295:47;19359:131;19485:4;19359:131;:::i;:::-;19351:139;;19249:248;;;:::o;19503:419::-;;19707:2;19696:9;19692:18;19684:26;;19756:9;19750:4;19746:20;19742:1;19731:9;19727:17;19720:47;19784:131;19910:4;19784:131;:::i;:::-;19776:139;;19674:248;;;:::o;19928:419::-;;20132:2;20121:9;20117:18;20109:26;;20181:9;20175:4;20171:20;20167:1;20156:9;20152:17;20145:47;20209:131;20335:4;20209:131;:::i;:::-;20201:139;;20099:248;;;:::o;20353:419::-;;20557:2;20546:9;20542:18;20534:26;;20606:9;20600:4;20596:20;20592:1;20581:9;20577:17;20570:47;20634:131;20760:4;20634:131;:::i;:::-;20626:139;;20524:248;;;:::o;20778:419::-;;20982:2;20971:9;20967:18;20959:26;;21031:9;21025:4;21021:20;21017:1;21006:9;21002:17;20995:47;21059:131;21185:4;21059:131;:::i;:::-;21051:139;;20949:248;;;:::o;21203:419::-;;21407:2;21396:9;21392:18;21384:26;;21456:9;21450:4;21446:20;21442:1;21431:9;21427:17;21420:47;21484:131;21610:4;21484:131;:::i;:::-;21476:139;;21374:248;;;:::o;21628:419::-;;21832:2;21821:9;21817:18;21809:26;;21881:9;21875:4;21871:20;21867:1;21856:9;21852:17;21845:47;21909:131;22035:4;21909:131;:::i;:::-;21901:139;;21799:248;;;:::o;22053:419::-;;22257:2;22246:9;22242:18;22234:26;;22306:9;22300:4;22296:20;22292:1;22281:9;22277:17;22270:47;22334:131;22460:4;22334:131;:::i;:::-;22326:139;;22224:248;;;:::o;22478:419::-;;22682:2;22671:9;22667:18;22659:26;;22731:9;22725:4;22721:20;22717:1;22706:9;22702:17;22695:47;22759:131;22885:4;22759:131;:::i;:::-;22751:139;;22649:248;;;:::o;22903:419::-;;23107:2;23096:9;23092:18;23084:26;;23156:9;23150:4;23146:20;23142:1;23131:9;23127:17;23120:47;23184:131;23310:4;23184:131;:::i;:::-;23176:139;;23074:248;;;:::o;23328:419::-;;23532:2;23521:9;23517:18;23509:26;;23581:9;23575:4;23571:20;23567:1;23556:9;23552:17;23545:47;23609:131;23735:4;23609:131;:::i;:::-;23601:139;;23499:248;;;:::o;23753:419::-;;23957:2;23946:9;23942:18;23934:26;;24006:9;24000:4;23996:20;23992:1;23981:9;23977:17;23970:47;24034:131;24160:4;24034:131;:::i;:::-;24026:139;;23924:248;;;:::o;24178:419::-;;24382:2;24371:9;24367:18;24359:26;;24431:9;24425:4;24421:20;24417:1;24406:9;24402:17;24395:47;24459:131;24585:4;24459:131;:::i;:::-;24451:139;;24349:248;;;:::o;24603:419::-;;24807:2;24796:9;24792:18;24784:26;;24856:9;24850:4;24846:20;24842:1;24831:9;24827:17;24820:47;24884:131;25010:4;24884:131;:::i;:::-;24876:139;;24774:248;;;:::o;25028:419::-;;25232:2;25221:9;25217:18;25209:26;;25281:9;25275:4;25271:20;25267:1;25256:9;25252:17;25245:47;25309:131;25435:4;25309:131;:::i;:::-;25301:139;;25199:248;;;:::o;25453:222::-;;25584:2;25573:9;25569:18;25561:26;;25597:71;25665:1;25654:9;25650:17;25641:6;25597:71;:::i;:::-;25551:124;;;;:::o;25681:332::-;;25840:2;25829:9;25825:18;25817:26;;25853:71;25921:1;25910:9;25906:17;25897:6;25853:71;:::i;:::-;25934:72;26002:2;25991:9;25987:18;25978:6;25934:72;:::i;:::-;25807:206;;;;;:::o;26019:214::-;;26146:2;26135:9;26131:18;26123:26;;26159:67;26223:1;26212:9;26208:17;26199:6;26159:67;:::i;:::-;26113:120;;;;:::o;26239:99::-;;26325:5;26319:12;26309:22;;26298:40;;;:::o;26344:169::-;;26462:6;26457:3;26450:19;26502:4;26497:3;26493:14;26478:29;;26440:73;;;;:::o;26519:305::-;;26578:20;26596:1;26578:20;:::i;:::-;26573:25;;26612:20;26630:1;26612:20;:::i;:::-;26607:25;;26766:1;26698:66;26694:74;26691:1;26688:81;26685:2;;;26772:18;;:::i;:::-;26685:2;26816:1;26813;26809:9;26802:16;;26563:261;;;;:::o;26830:185::-;;26887:20;26905:1;26887:20;:::i;:::-;26882:25;;26921:20;26939:1;26921:20;:::i;:::-;26916:25;;26960:1;26950:2;;26965:18;;:::i;:::-;26950:2;27007:1;27004;27000:9;26995:14;;26872:143;;;;:::o;27021:348::-;;27084:20;27102:1;27084:20;:::i;:::-;27079:25;;27118:20;27136:1;27118:20;:::i;:::-;27113:25;;27306:1;27238:66;27234:74;27231:1;27228:81;27223:1;27216:9;27209:17;27205:105;27202:2;;;27313:18;;:::i;:::-;27202:2;27361:1;27358;27354:9;27343:20;;27069:300;;;;:::o;27375:191::-;;27435:20;27453:1;27435:20;:::i;:::-;27430:25;;27469:20;27487:1;27469:20;:::i;:::-;27464:25;;27508:1;27505;27502:8;27499:2;;;27513:18;;:::i;:::-;27499:2;27558:1;27555;27551:9;27543:17;;27420:146;;;;:::o;27572:96::-;;27638:24;27656:5;27638:24;:::i;:::-;27627:35;;27617:51;;;:::o;27674:90::-;;27751:5;27744:13;27737:21;27726:32;;27716:48;;;:::o;27770:126::-;;27847:42;27840:5;27836:54;27825:65;;27815:81;;;:::o;27902:77::-;;27968:5;27957:16;;27947:32;;;:::o;27985:86::-;;28060:4;28053:5;28049:16;28038:27;;28028:43;;;:::o;28077:307::-;28145:1;28155:113;28169:6;28166:1;28163:13;28155:113;;;28254:1;28249:3;28245:11;28239:18;28235:1;28230:3;28226:11;28219:39;28191:2;28188:1;28184:10;28179:15;;28155:113;;;28286:6;28283:1;28280:13;28277:2;;;28366:1;28357:6;28352:3;28348:16;28341:27;28277:2;28126:258;;;;:::o;28390:320::-;;28471:1;28465:4;28461:12;28451:22;;28518:1;28512:4;28508:12;28539:18;28529:2;;28595:4;28587:6;28583:17;28573:27;;28529:2;28657;28649:6;28646:14;28626:18;28623:38;28620:2;;;28676:18;;:::i;:::-;28620:2;28441:269;;;;:::o;28716:180::-;28764:77;28761:1;28754:88;28861:4;28858:1;28851:15;28885:4;28882:1;28875:15;28902:180;28950:77;28947:1;28940:88;29047:4;29044:1;29037:15;29071:4;29068:1;29061:15;29088:180;29136:77;29133:1;29126:88;29233:4;29230:1;29223:15;29257:4;29254:1;29247:15;29274:102;;29366:2;29362:7;29357:2;29350:5;29346:14;29342:28;29332:38;;29322:54;;;:::o;29382:122::-;29455:24;29473:5;29455:24;:::i;:::-;29448:5;29445:35;29435:2;;29494:1;29491;29484:12;29435:2;29425:79;:::o;29510:122::-;29583:24;29601:5;29583:24;:::i;:::-;29576:5;29573:35;29563:2;;29622:1;29619;29612:12;29563:2;29553:79;:::o
Swarm Source
ipfs://17377a376aabc6f5d7c7d682331637e6dad1626d80fb6366748fa7b3beb5d01b
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.