Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Initialize | 9739773 | 1804 days ago | IN | 0 ETH | 0.00099212 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
FiatTokenV1
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-03-25 */ // File: openzeppelin-solidity/contracts/math/SafeMath.sol pragma solidity ^0.4.24; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } // File: contracts/Ownable.sol /** * Copyright CENTRE SECZ 2018 * Copyright (c) 2020 Xfers Pte. Ltd. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is furnished to * do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ pragma solidity ^0.4.24; contract Ownable { address private _owner; /** * @dev Event to show ownership has been transferred * @param previousOwner representing the address of the previous owner * @param newOwner representing the address of the new owner */ event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The constructor sets the original owner of the contract to the sender account. */ constructor() internal { setOwner(msg.sender); emit OwnershipTransferred(address(0), _owner); } /** * @dev Sets a new owner address */ function setOwner(address newOwner) internal { _owner = newOwner; } /** * @dev Tells the address of the owner * @return the address of the owner */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner(), "onlyOwner: not owner"); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "transferOwnership: 0x0 invalid"); require(newOwner != owner(), "transferOwnership: same address"); emit OwnershipTransferred(owner(), newOwner); setOwner(newOwner); } } // File: contracts/Blacklistable.sol /** * Copyright CENTRE SECZ 2018 * Copyright (c) 2020 Xfers Pte. Ltd. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is furnished to * do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ pragma solidity ^0.4.24; /** * @title Blacklistable Token * @dev Allows accounts to be blacklisted by a "blacklister" role */ contract Blacklistable is Ownable { address public blacklister; mapping(address => bool) internal blacklisted; event Blacklisted(address indexed _account); event UnBlacklisted(address indexed _account); event BlacklisterChanged(address indexed newBlacklister); /** * @dev Throws if called by any account other than the blacklister */ modifier onlyBlacklister() { require(msg.sender == blacklister, "not blacklister"); _; } /** * @dev Throws if argument account is blacklisted * @param _account The address to check */ modifier notBlacklisted(address _account) { require(blacklisted[_account] == false, "notBlacklisted: is blacklisted"); _; } /** * @dev Checks if account is blacklisted * @param _account The address to check */ function isBlacklisted(address _account) public view returns (bool) { return blacklisted[_account]; } /** * @dev Adds account to blacklist * @param _account The address to blacklist */ function blacklist(address _account) public onlyBlacklister { require(_account != address(0), "blacklist: 0x0 invalid"); require(!isBlacklisted(_account), "blacklist: already blacklisted"); blacklisted[_account] = true; emit Blacklisted(_account); } /** * @dev Removes account from blacklist * @param _account The address to remove from the blacklist */ function unBlacklist(address _account) public onlyBlacklister { require(_account != address(0), "unBlacklist: 0x0 invalid"); require(isBlacklisted(_account), "unBlacklist: not blacklisted"); blacklisted[_account] = false; emit UnBlacklisted(_account); } function updateBlacklister(address _newBlacklister) public onlyOwner { require(_newBlacklister != address(0), "updateBlacklister: 0x0 invalid"); require(_newBlacklister != blacklister, "updateBlacklister: same address"); blacklister = _newBlacklister; emit BlacklisterChanged(blacklister); } } // File: contracts/Pausable.sol /** * Copyright CENTRE SECZ 2018 * Copyright (c) 2020 Xfers Pte. Ltd. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is furnished to * do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ pragma solidity ^0.4.24; /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. * Based on openzeppelin tag v1.10.0 commit: feb665136c0dae9912e08397c1a21c4af3651ef3 * Modifications: * 1) Added pauser role, switched pause/unpause to be onlyPauser (6/14/2018) * 2) Removed whenNotPause/whenPaused from pause/unpause (6/14/2018) * 3) Removed whenPaused (6/14/2018) * 4) Switches ownable library to use zeppelinos (7/12/18) * 5) Remove constructor (7/13/18) */ contract Pausable is Ownable { event Pause(); event Unpause(); event PauserChanged(address indexed newAddress); address public pauser; bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused, "whenNotPaused: contract paused"); _; } /** * @dev throws if called by any account other than the pauser */ modifier onlyPauser() { require(msg.sender == pauser, "pauser only"); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyPauser { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyPauser { paused = false; emit Unpause(); } /** * @dev update the pauser role */ function updatePauser(address _newPauser) public onlyOwner { require(_newPauser != address(0), "updatePauser: 0x0 invalid"); require(_newPauser != pauser, "updatePauser: same address"); pauser = _newPauser; emit PauserChanged(pauser); } } // File: contracts/ERC20Recovery.sol /** * Copyright (c) 2020 Xfers Pte. Ltd. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is furnished to * do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ pragma solidity ^0.4.24; /** * @title ERC20Recovery * @dev Minimal version of ERC20 interface required to allow ERC20 locked tokens recovery */ contract ERC20Recovery { function balanceOf(address account) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); } // File: contracts/FiatTokenV1.sol /** * Copyright CENTRE SECZ 2018 * Copyright (c) 2020 Xfers Pte. Ltd. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is furnished to * do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ pragma solidity ^0.4.24; /** * @title FiatToken * @dev Token backed by fiat reserves */ contract FiatTokenV1 is Ownable, Pausable, Blacklistable { using SafeMath for uint256; string public name; string public symbol; uint8 public decimals; address public masterMinter; bool internal initialized; mapping(address => uint256) internal balances; mapping(address => mapping(address => uint256)) internal allowed; uint256 internal totalSupply_ = 0; mapping(address => bool) internal minters; mapping(address => uint256) internal minterAllowed; event Mint(address indexed minter, address indexed to, uint256 amount); event Transfer(address indexed from, address indexed to, uint256 amount); event Burn(address indexed burner, uint256 amount); event Approval( address indexed owner, address indexed spender, uint256 amount ); event MinterConfigured(address indexed minter, uint256 minterAllowedAmount); event MinterRemoved(address indexed oldMinter); event MasterMinterChanged(address indexed newMasterMinter); /** * @dev Throws if called by any account other than a minter */ modifier onlyMinters() { require(minters[msg.sender] == true, "minters only"); _; } /** * @dev Throws if called by any account other than the masterMinter */ modifier onlyMasterMinter() { require(msg.sender == masterMinter, "master minter only"); _; } /** * @dev Function to initialise contract * @param _name string Token name * @param _symbol string Token symbol * @param _decimals uint8 Token decimals * @param _masterMinter address Address of the master minter * @param _pauser address Address of the pauser * @param _blacklister address Address of the blacklister * @param _owner address Address of the owner */ function initialize( string _name, string _symbol, uint8 _decimals, address _masterMinter, address _pauser, address _blacklister, address _owner ) public { require(!initialized, "already initialized!"); require(_masterMinter != address(0), "master minter can't be 0x0"); require(_pauser != address(0), "pauser can't be 0x0"); require(_blacklister != address(0), "blacklister can't be 0x0"); require(_owner != address(0), "owner can't be 0x0"); name = _name; symbol = _symbol; decimals = _decimals; masterMinter = _masterMinter; pauser = _pauser; blacklister = _blacklister; setOwner(_owner); initialized = true; } /** * @dev Function to mint tokens * Validates that the contract is not paused * only minters can call this function * minter and the address that will received the minted tokens are not blacklisted * @param _to address The address that will receive the minted tokens. * @param _amount uint256 The amount of tokens to mint. Must be less than or equal to the minterAllowance of the caller. * @return True if the operation was successful. */ function mint(address _to, uint256 _amount) public whenNotPaused onlyMinters notBlacklisted(msg.sender) notBlacklisted(_to) returns (bool) { require(_to != address(0), "can't mint to 0x0"); require(_amount > 0, "amount to mint has to be > 0"); uint256 mintingAllowedAmount = minterAllowance(msg.sender); require(_amount <= mintingAllowedAmount, "minter allowance too low"); totalSupply_ = totalSupply_.add(_amount); balances[_to] = balances[_to].add(_amount); minterAllowed[msg.sender] = mintingAllowedAmount.sub(_amount); if (minterAllowance(msg.sender) == 0) { minters[msg.sender] = false; emit MinterRemoved(msg.sender); } emit Mint(msg.sender, _to, _amount); emit Transfer(0x0, _to, _amount); return true; } /** * @dev Function to get minter allowance of an address * @param _minter address The address of check minter allowance of * @return The minter allowance of the address */ function minterAllowance(address _minter) public view returns (uint256) { return minterAllowed[_minter]; } /** * @dev Function to check if an address is a minter * @param _address The address to check * @return A boolean value to indicates if an address is a minter */ function isMinter(address _address) public view returns (bool) { return minters[_address]; } /** * @dev Function to get total supply of token * @return The total supply of the token */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev Function to get token balance of an address * @param _address address The account * @return The token balance of an address */ function balanceOf(address _address) public view returns (uint256) { return balances[_address]; } /** * @dev Function to approves a spender to spend up to a certain amount of tokens * Validates that the contract is not paused * the owner and spender are not blacklisted * Avoid calling this function if possible (https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729) * @param _spender address The Address of the spender * @param _amount uint256 The amount of tokens that the spender is approved to spend * @return True if the operation was successful. */ function approve(address _spender, uint256 _amount) public whenNotPaused notBlacklisted(msg.sender) notBlacklisted(_spender) returns (bool) { return _approve(_spender, _amount); } /** * @dev Alternative function to the approve function * Increases the allowance of the spender * Validates that the contract is not paused * the owner and spender are not blacklisted * @param _spender address The Address of the spender * @param _addedValue uint256 The amount of tokens to be added to a spender's allowance * @return True if the operation was successful. */ function increaseAllowance(address _spender, uint256 _addedValue) public whenNotPaused notBlacklisted(msg.sender) notBlacklisted(_spender) returns (bool) { uint256 updatedAllowance = allowed[msg.sender][_spender].add( _addedValue ); return _approve(_spender, updatedAllowance); } /** * @dev Alternative function to the approve function * Decreases the allowance of the spender * Validates that the contract is not paused * the owner and spender are not blacklisted * @param _spender address The Address of the spender * @param _subtractedValue uint256 The amount of tokens to be subtracted from a spender's allowance * @return True if the operation was successful. */ function decreaseAllowance(address _spender, uint256 _subtractedValue) public whenNotPaused notBlacklisted(msg.sender) notBlacklisted(_spender) returns (bool) { uint256 updatedAllowance = allowed[msg.sender][_spender].sub( _subtractedValue ); return _approve(_spender, updatedAllowance); } /** * @dev Function to approves a spender to spend up to a certain amount of tokens * @param _spender address The Address of the spender * @param _amount uint256 The amount of tokens that the spender is approved to spend */ function _approve(address _spender, uint256 _amount) internal returns (bool) { allowed[msg.sender][_spender] = _amount; emit Approval(msg.sender, _spender, _amount); return true; } /** * @dev Function to get token allowance given to a spender by the owner * @param _owner address The address of the owner * @param _spender address The address of the spender * @return The number of tokens that a spender can spend on behalf of the owner */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Function to transfer tokens from one address to another. * Validates that the contract is not paused * the caller, sender and receiver of the tokens are not blacklisted * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _amount uint256 the amount of tokens to be transferred * @return True if the operation was successful. */ function transferFrom(address _from, address _to, uint256 _amount) public whenNotPaused notBlacklisted(_to) notBlacklisted(msg.sender) notBlacklisted(_from) returns (bool) { require(_to != address(0), "can't transfer to 0x0"); require(_amount <= balances[_from], "insufficient balance"); require( _amount <= allowed[_from][msg.sender], "token allowance is too low" ); balances[_from] = balances[_from].sub(_amount); balances[_to] = balances[_to].add(_amount); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount); emit Transfer(_from, _to, _amount); return true; } /** * @dev Function to transfer token to a specified address * Validates that the contract is not paused * The sender and receiver are not blacklisted * @param _to The address to transfer to. * @param _amount The amount of tokens to be transferred. * @return True if the operation is successful */ function transfer(address _to, uint256 _amount) public whenNotPaused notBlacklisted(msg.sender) notBlacklisted(_to) returns (bool) { require(_to != address(0), "can't transfer to 0x0"); require(_amount <= balances[msg.sender], "insufficient balance"); balances[msg.sender] = balances[msg.sender].sub(_amount); balances[_to] = balances[_to].add(_amount); emit Transfer(msg.sender, _to, _amount); return true; } /** * @dev Function to increase minter allowance of a minter * Validates that only the master minter can call this function * @param _minter address The address of the minter * @param _increasedAmount uint256 The amount of to be added to a minter's allowance */ function increaseMinterAllowance(address _minter, uint256 _increasedAmount) public onlyMasterMinter { require(_minter != address(0), "minter can't be 0x0"); uint256 updatedAllowance = minterAllowance(_minter).add( _increasedAmount ); minterAllowed[_minter] = updatedAllowance; minters[_minter] = true; emit MinterConfigured(_minter, updatedAllowance); } /** * @dev Function to decrease minter allowance of a minter * Validates that only the master minter can call this function * @param _minter address The address of the minter * @param _decreasedAmount uint256 The amount of allowance to be subtracted from a minter's allowance */ function decreaseMinterAllowance(address _minter, uint256 _decreasedAmount) public onlyMasterMinter { require(_minter != address(0), "minter can't be 0x0"); require(minters[_minter], "not a minter"); uint256 updatedAllowance = minterAllowance(_minter).sub( _decreasedAmount ); minterAllowed[_minter] = updatedAllowance; if (minterAllowance(_minter) > 0) { emit MinterConfigured(_minter, updatedAllowance); } else { minters[_minter] = false; emit MinterRemoved(_minter); } } /** * @dev Function to allow a minter to burn some of its own tokens * Validates that the contract is not paused * caller is a minter and is not blacklisted * amount is less than or equal to the minter's mint allowance balance * @param _amount uint256 the amount of tokens to be burned */ function burn(uint256 _amount) public whenNotPaused onlyMinters notBlacklisted(msg.sender) { uint256 balance = balances[msg.sender]; require(_amount > 0, "burn amount has to be > 0"); require(balance >= _amount, "balance in minter is < amount to burn"); totalSupply_ = totalSupply_.sub(_amount); balances[msg.sender] = balance.sub(_amount); emit Burn(msg.sender, _amount); emit Transfer(msg.sender, address(0), _amount); } /** * @dev Function to allow the blacklister to burn entire balance of tokens from a blacklisted address * Validates that contract is not paused * caller is the blacklister * address to burn tokens from is a blacklisted address * @param _from address the address to burn tokens from */ function lawEnforcementWipingBurn(address _from) public whenNotPaused onlyBlacklister { require( isBlacklisted(_from), "Can't wipe balances of a non blacklisted address" ); uint256 balance = balances[_from]; totalSupply_ = totalSupply_.sub(balance); balances[_from] = 0; emit Burn(_from, balance); emit Transfer(_from, address(0), balance); } /** * @dev Function to update the masterMinter role * Validates that the caller is the owner */ function updateMasterMinter(address _newMasterMinter) public onlyOwner { require(_newMasterMinter != address(0), "master minter can't be 0x0"); require(_newMasterMinter != masterMinter, "master minter is the same"); masterMinter = _newMasterMinter; emit MasterMinterChanged(masterMinter); } /** * @dev Function to reject all EIP223 compatible tokens * @param _from address The address that is transferring the tokens * @param _value uint256 the amount of the specified token * @param _data bytes The data passed from the caller */ function tokenFallback(address _from, uint256 _value, bytes _data) external pure { revert("reject EIP223 token transfers"); } /** * @dev Function to reclaim all ERC20Recovery compatible tokens * Validates that the caller is the owner * @param _tokenAddress address The address of the token contract */ function reclaimToken(address _tokenAddress) external onlyOwner { require(_tokenAddress != address(0), "token can't be 0x0"); ERC20Recovery token = ERC20Recovery(_tokenAddress); uint256 balance = token.balanceOf(this); require(token.transfer(owner(), balance), "reclaim token failed"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_masterMinter","type":"address"},{"name":"_pauser","type":"address"},{"name":"_blacklister","type":"address"},{"name":"_owner","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"unBlacklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"masterMinter","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newPauser","type":"address"}],"name":"updatePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"}],"name":"lawEnforcementWipingBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_minter","type":"address"}],"name":"minterAllowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pauser","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minter","type":"address"},{"name":"_decreasedAmount","type":"uint256"}],"name":"decreaseMinterAllowance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newMasterMinter","type":"address"}],"name":"updateMasterMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newBlacklister","type":"address"}],"name":"updateBlacklister","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"blacklister","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minter","type":"address"},{"name":"_increasedAmount","type":"uint256"}],"name":"increaseMinterAllowance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"blacklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"isBlacklisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"minter","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"minter","type":"address"},{"indexed":false,"name":"minterAllowedAmount","type":"uint256"}],"name":"MinterConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldMinter","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newMasterMinter","type":"address"}],"name":"MasterMinterChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_account","type":"address"}],"name":"Blacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_account","type":"address"}],"name":"UnBlacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newBlacklister","type":"address"}],"name":"BlacklisterChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAddress","type":"address"}],"name":"PauserChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60806040526001805460a060020a60ff0219169055600060095561002b33640100000000610069810204565b60008054604051600160a060020a0390911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a361008b565b60008054600160a060020a031916600160a060020a0392909216919091179055565b61305e8061009a6000396000f3006080604052600436106101b65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101bb578063095ea7b314610245578063147936ba1461027d57806317ffc3201461034057806318160ddd146103615780631a8952661461038857806323b872dd146103a9578063313ce567146103d357806335d99f35146103fe578063395093511461042f5780633f4ba83a1461045357806340c10f191461046857806342966c681461048c578063554bab3c146104a45780635c975abb146104c557806370a08231146104da57806380e56f42146104fb5780638456cb591461051c5780638a6db9c3146105315780638da5cb5b1461055257806395d89b41146105675780639fd0506d1461057c578063a2ded11514610591578063a457c2d7146105b5578063a9059cbb146105d9578063aa20e1e4146105fd578063aa271e1a1461061e578063ad38bf221461063f578063bd10243014610660578063be76ebe514610675578063c0ee0b8a14610699578063dd62ed3e146106ca578063f2fde38b146106f1578063f9f92be414610712578063fe575a8714610733575b600080fd5b3480156101c757600080fd5b506101d0610754565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020a5781810151838201526020016101f2565b50505050905090810190601f1680156102375780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025157600080fd5b50610269600160a060020a03600435166024356107e2565b604080519115158252519081900360200190f35b34801561028957600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261033e94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505060ff853516955050600160a060020a036020850135811694604081013582169450606081013582169350608001351690506108ff565b005b34801561034c57600080fd5b5061033e600160a060020a0360043516610bd6565b34801561036d57600080fd5b50610376610e2a565b60408051918252519081900360200190f35b34801561039457600080fd5b5061033e600160a060020a0360043516610e31565b3480156103b557600080fd5b50610269600160a060020a0360043581169060243516604435610f9b565b3480156103df57600080fd5b506103e861134f565b6040805160ff9092168252519081900360200190f35b34801561040a57600080fd5b50610413611358565b60408051600160a060020a039092168252519081900360200190f35b34801561043b57600080fd5b50610269600160a060020a036004351660243561136c565b34801561045f57600080fd5b5061033e6114c2565b34801561047457600080fd5b50610269600160a060020a036004351660243561156d565b34801561049857600080fd5b5061033e600435611943565b3480156104b057600080fd5b5061033e600160a060020a0360043516611bd8565b3480156104d157600080fd5b50610269611d50565b3480156104e657600080fd5b50610376600160a060020a0360043516611d60565b34801561050757600080fd5b5061033e600160a060020a0360043516611d7b565b34801561052857600080fd5b5061033e611f68565b34801561053d57600080fd5b50610376600160a060020a0360043516612019565b34801561055e57600080fd5b50610413612034565b34801561057357600080fd5b506101d0612043565b34801561058857600080fd5b5061041361209e565b34801561059d57600080fd5b5061033e600160a060020a03600435166024356120ad565b3480156105c157600080fd5b50610269600160a060020a03600435166024356122be565b3480156105e557600080fd5b50610269600160a060020a03600435166024356123fe565b34801561060957600080fd5b5061033e600160a060020a036004351661266f565b34801561062a57600080fd5b50610269600160a060020a03600435166127f3565b34801561064b57600080fd5b5061033e600160a060020a0360043516612811565b34801561066c57600080fd5b50610413612989565b34801561068157600080fd5b5061033e600160a060020a0360043516602435612998565b3480156106a557600080fd5b5061033e60048035600160a060020a0316906024803591604435918201910135612ae8565b3480156106d657600080fd5b50610376600160a060020a0360043581169060243516612b38565b3480156106fd57600080fd5b5061033e600160a060020a0360043516612b63565b34801561071e57600080fd5b5061033e600160a060020a0360043516612cd6565b34801561073f57600080fd5b50610269600160a060020a0360043516612e42565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107da5780601f106107af576101008083540402835291602001916107da565b820191906000526020600020905b8154815290600101906020018083116107bd57829003601f168201915b505050505081565b60015460009060a060020a900460ff1615610835576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff161561088b576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038416600090815260036020526040902054849060ff16156108ec576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b6108f68585612e60565b95945050505050565b6006547501000000000000000000000000000000000000000000900460ff1615610973576040805160e560020a62461bcd02815260206004820152601460248201527f616c726561647920696e697469616c697a656421000000000000000000000000604482015290519081900360640190fd5b600160a060020a03841615156109d3576040805160e560020a62461bcd02815260206004820152601a60248201527f6d6173746572206d696e7465722063616e277420626520307830000000000000604482015290519081900360640190fd5b600160a060020a0383161515610a33576040805160e560020a62461bcd02815260206004820152601360248201527f7061757365722063616e27742062652030783000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382161515610a93576040805160e560020a62461bcd02815260206004820152601860248201527f626c61636b6c69737465722063616e2774206265203078300000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610af3576040805160e560020a62461bcd02815260206004820152601260248201527f6f776e65722063616e2774206265203078300000000000000000000000000000604482015290519081900360640190fd5b8651610b069060049060208a0190612f1a565b508551610b1a906005906020890190612f1a565b506006805460ff191660ff87161774ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0387811691909102919091179091556001805473ffffffffffffffffffffffffffffffffffffffff199081168684161790915560028054909116918416919091179055610b9681612ec6565b50506006805475ff000000000000000000000000000000000000000000191675010000000000000000000000000000000000000000001790555050505050565b600080610be1612034565b600160a060020a03163314610c2e576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a0383161515610c8e576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e2063616e2774206265203078300000000000000000000000000000604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b505050506040513d6020811015610d1c57600080fd5b50519050600160a060020a03821663a9059cbb610d37612034565b836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b50511515610e25576040805160e560020a62461bcd02815260206004820152601460248201527f7265636c61696d20746f6b656e206661696c6564000000000000000000000000604482015290519081900360640190fd5b505050565b6009545b90565b600254600160a060020a03163314610e93576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f7420626c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610ef3576040805160e560020a62461bcd02815260206004820152601860248201527f756e426c61636b6c6973743a2030783020696e76616c69640000000000000000604482015290519081900360640190fd5b610efc81612e42565b1515610f52576040805160e560020a62461bcd02815260206004820152601c60248201527f756e426c61636b6c6973743a206e6f7420626c61636b6c697374656400000000604482015290519081900360640190fd5b600160a060020a038116600081815260036020526040808220805460ff19169055517f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e9190a250565b60015460009060a060020a900460ff1615610fee576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260036020526040902054839060ff161561104f576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff16156110a5576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038616600090815260036020526040902054869060ff1615611106576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a0386161515611166576040805160e560020a62461bcd02815260206004820152601560248201527f63616e2774207472616e7366657220746f203078300000000000000000000000604482015290519081900360640190fd5b600160a060020a0387166000908152600760205260409020548511156111d6576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b600160a060020a0387166000908152600860209081526040808320338452909152902054851115611251576040805160e560020a62461bcd02815260206004820152601a60248201527f746f6b656e20616c6c6f77616e636520697320746f6f206c6f77000000000000604482015290519081900360640190fd5b600160a060020a03871660009081526007602052604090205461127a908663ffffffff612ef516565b600160a060020a0380891660009081526007602052604080822093909355908816815220546112af908663ffffffff612f0716565b600160a060020a03808816600090815260076020908152604080832094909455918a1681526008825282812033825290915220546112f3908663ffffffff612ef516565b600160a060020a0380891660008181526008602090815260408083203384528252918290209490945580518981529051928a16939192600080516020612ff3833981519152929181900390910190a35060019695505050505050565b60065460ff1681565b6006546101009004600160a060020a031681565b600154600090819060a060020a900460ff16156113c1576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611417576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038516600090815260036020526040902054859060ff1615611478576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b336000908152600860209081526040808320600160a060020a038a1684529091529020546114ac908663ffffffff612f0716565b92506114b88684612e60565b9695505050505050565b600154600160a060020a03163314611524576040805160e560020a62461bcd02815260206004820152600b60248201527f706175736572206f6e6c79000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600154600090819060a060020a900460ff16156115c2576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff16151560011461162e576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e74657273206f6e6c790000000000000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611684576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038516600090815260036020526040902054859060ff16156116e5576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a0386161515611745576040805160e560020a62461bcd02815260206004820152601160248201527f63616e2774206d696e7420746f20307830000000000000000000000000000000604482015290519081900360640190fd5b6000851161179d576040805160e560020a62461bcd02815260206004820152601c60248201527f616d6f756e7420746f206d696e742068617320746f206265203e203000000000604482015290519081900360640190fd5b6117a633612019565b925082851115611800576040805160e560020a62461bcd02815260206004820152601860248201527f6d696e74657220616c6c6f77616e636520746f6f206c6f770000000000000000604482015290519081900360640190fd5b600954611813908663ffffffff612f0716565b600955600160a060020a03861660009081526007602052604090205461183f908663ffffffff612f0716565b600160a060020a038716600090815260076020526040902055611868838663ffffffff612ef516565b336000818152600b602052604090209190915561188490612019565b15156118c857336000818152600a6020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a25b604080518681529051600160a060020a0388169133917fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f89181900360200190a3604080518681529051600160a060020a03881691600091600080516020612ff38339815191529181900360200190a350600195945050505050565b60015460009060a060020a900460ff1615611996576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff161515600114611a02576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e74657273206f6e6c790000000000000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611a58576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b3360009081526007602052604081205492508311611ac0576040805160e560020a62461bcd02815260206004820152601960248201527f6275726e20616d6f756e742068617320746f206265203e203000000000000000604482015290519081900360640190fd5b82821015611b3e576040805160e560020a62461bcd02815260206004820152602560248201527f62616c616e636520696e206d696e746572206973203c20616d6f756e7420746f60448201527f206275726e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600954611b51908463ffffffff612ef516565b600955611b64828463ffffffff612ef516565b33600081815260076020908152604091829020939093558051868152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a26040805184815290516000913391600080516020612ff38339815191529181900360200190a3505050565b611be0612034565b600160a060020a03163314611c2d576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a0381161515611c8d576040805160e560020a62461bcd02815260206004820152601960248201527f7570646174655061757365723a2030783020696e76616c696400000000000000604482015290519081900360640190fd5b600154600160a060020a0382811691161415611cf3576040805160e560020a62461bcd02815260206004820152601a60248201527f7570646174655061757365723a2073616d652061646472657373000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015460a060020a900460ff1681565b600160a060020a031660009081526007602052604090205490565b60015460009060a060020a900460ff1615611dce576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b600254600160a060020a03163314611e30576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f7420626c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b611e3982612e42565b1515611eb5576040805160e560020a62461bcd02815260206004820152603060248201527f43616e277420776970652062616c616e636573206f662061206e6f6e20626c6160448201527f636b6c6973746564206164647265737300000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a038116600090815260076020526040902054600954611ee2908263ffffffff612ef516565b600955600160a060020a038216600081815260076020908152604080832092909255815184815291517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59281900390910190a2604080518281529051600091600160a060020a03851691600080516020612ff38339815191529181900360200190a35050565b600154600160a060020a03163314611fca576040805160e560020a62461bcd02815260206004820152600b60248201527f706175736572206f6e6c79000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600160a060020a03166000908152600b602052604090205490565b600054600160a060020a031690565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107da5780601f106107af576101008083540402835291602001916107da565b600154600160a060020a031681565b6006546000906101009004600160a060020a03163314612117576040805160e560020a62461bcd02815260206004820152601260248201527f6d6173746572206d696e746572206f6e6c790000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515612177576040805160e560020a62461bcd02815260206004820152601360248201527f6d696e7465722063616e27742062652030783000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff1615156121e9576040805160e560020a62461bcd02815260206004820152600c60248201527f6e6f742061206d696e7465720000000000000000000000000000000000000000604482015290519081900360640190fd5b612202826121f685612019565b9063ffffffff612ef516565b600160a060020a0384166000908152600b6020526040812082905590915061222984612019565b111561227357604080518281529051600160a060020a038516917f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d20919081900360200190a2610e25565b600160a060020a0383166000818152600a6020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2505050565b600154600090819060a060020a900460ff1615612313576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615612369576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038516600090815260036020526040902054859060ff16156123ca576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b336000908152600860209081526040808320600160a060020a038a1684529091529020546114ac908663ffffffff612ef516565b60015460009060a060020a900460ff1615612451576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff16156124a7576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038416600090815260036020526040902054849060ff1615612508576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a0385161515612568576040805160e560020a62461bcd02815260206004820152601560248201527f63616e2774207472616e7366657220746f203078300000000000000000000000604482015290519081900360640190fd5b336000908152600760205260409020548411156125cf576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b336000908152600760205260409020546125ef908563ffffffff612ef516565b3360009081526007602052604080822092909255600160a060020a03871681522054612621908563ffffffff612f0716565b600160a060020a038616600081815260076020908152604091829020939093558051878152905191923392600080516020612ff38339815191529281900390910190a3506001949350505050565b612677612034565b600160a060020a031633146126c4576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a0381161515612724576040805160e560020a62461bcd02815260206004820152601a60248201527f6d6173746572206d696e7465722063616e277420626520307830000000000000604482015290519081900360640190fd5b600654600160a060020a0382811661010090920416141561278f576040805160e560020a62461bcd02815260206004820152601960248201527f6d6173746572206d696e746572206973207468652073616d6500000000000000604482015290519081900360640190fd5b6006805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0384811682029290921792839055604051920416907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b600160a060020a03166000908152600a602052604090205460ff1690565b612819612034565b600160a060020a03163314612866576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a03811615156128c6576040805160e560020a62461bcd02815260206004820152601e60248201527f757064617465426c61636b6c69737465723a2030783020696e76616c69640000604482015290519081900360640190fd5b600254600160a060020a038281169116141561292c576040805160e560020a62461bcd02815260206004820152601f60248201527f757064617465426c61636b6c69737465723a2073616d65206164647265737300604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600254600160a060020a031681565b6006546000906101009004600160a060020a03163314612a02576040805160e560020a62461bcd02815260206004820152601260248201527f6d6173746572206d696e746572206f6e6c790000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515612a62576040805160e560020a62461bcd02815260206004820152601360248201527f6d696e7465722063616e27742062652030783000000000000000000000000000604482015290519081900360640190fd5b612a7b82612a6f85612019565b9063ffffffff612f0716565b600160a060020a0384166000818152600b60209081526040808320859055600a825291829020805460ff191660011790558151848152915193945091927f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d20929181900390910190a2505050565b6040805160e560020a62461bcd02815260206004820152601d60248201527f72656a6563742045495032323320746f6b656e207472616e7366657273000000604482015290519081900360640190fd5b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b612b6b612034565b600160a060020a03163314612bb8576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a0381161515612c18576040805160e560020a62461bcd02815260206004820152601e60248201527f7472616e736665724f776e6572736869703a2030783020696e76616c69640000604482015290519081900360640190fd5b612c20612034565b600160a060020a0382811691161415612c83576040805160e560020a62461bcd02815260206004820152601f60248201527f7472616e736665724f776e6572736869703a2073616d65206164647265737300604482015290519081900360640190fd5b80600160a060020a0316612c95612034565b600160a060020a03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3612cd381612ec6565b50565b600254600160a060020a03163314612d38576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f7420626c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515612d98576040805160e560020a62461bcd02815260206004820152601660248201527f626c61636b6c6973743a2030783020696e76616c696400000000000000000000604482015290519081900360640190fd5b612da181612e42565b15612df6576040805160e560020a62461bcd02815260206004820152601e60248201527f626c61636b6c6973743a20616c726561647920626c61636b6c69737465640000604482015290519081900360640190fd5b600160a060020a038116600081815260036020526040808220805460ff19166001179055517fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b8559190a250565b600160a060020a031660009081526003602052604090205460ff1690565b336000818152600860209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082821115612f0157fe5b50900390565b81810182811015612f1457fe5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612f5b57805160ff1916838001178555612f88565b82800160010185558215612f88579182015b82811115612f88578251825591602001919060010190612f6d565b50612f94929150612f98565b5090565b610e2e91905b80821115612f945760008155600101612f9e56007768656e4e6f745061757365643a20636f6e74726163742070617573656400006f6e6c794f776e65723a206e6f74206f776e6572000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6e6f74426c61636b6c69737465643a20697320626c61636b6c69737465640000a165627a7a72305820c8a4ed392a9c859e91f93b72414359953d0f72e711ff3c19729e239b11bb3d0f0029
Deployed Bytecode
0x6080604052600436106101b65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101bb578063095ea7b314610245578063147936ba1461027d57806317ffc3201461034057806318160ddd146103615780631a8952661461038857806323b872dd146103a9578063313ce567146103d357806335d99f35146103fe578063395093511461042f5780633f4ba83a1461045357806340c10f191461046857806342966c681461048c578063554bab3c146104a45780635c975abb146104c557806370a08231146104da57806380e56f42146104fb5780638456cb591461051c5780638a6db9c3146105315780638da5cb5b1461055257806395d89b41146105675780639fd0506d1461057c578063a2ded11514610591578063a457c2d7146105b5578063a9059cbb146105d9578063aa20e1e4146105fd578063aa271e1a1461061e578063ad38bf221461063f578063bd10243014610660578063be76ebe514610675578063c0ee0b8a14610699578063dd62ed3e146106ca578063f2fde38b146106f1578063f9f92be414610712578063fe575a8714610733575b600080fd5b3480156101c757600080fd5b506101d0610754565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020a5781810151838201526020016101f2565b50505050905090810190601f1680156102375780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025157600080fd5b50610269600160a060020a03600435166024356107e2565b604080519115158252519081900360200190f35b34801561028957600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261033e94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505060ff853516955050600160a060020a036020850135811694604081013582169450606081013582169350608001351690506108ff565b005b34801561034c57600080fd5b5061033e600160a060020a0360043516610bd6565b34801561036d57600080fd5b50610376610e2a565b60408051918252519081900360200190f35b34801561039457600080fd5b5061033e600160a060020a0360043516610e31565b3480156103b557600080fd5b50610269600160a060020a0360043581169060243516604435610f9b565b3480156103df57600080fd5b506103e861134f565b6040805160ff9092168252519081900360200190f35b34801561040a57600080fd5b50610413611358565b60408051600160a060020a039092168252519081900360200190f35b34801561043b57600080fd5b50610269600160a060020a036004351660243561136c565b34801561045f57600080fd5b5061033e6114c2565b34801561047457600080fd5b50610269600160a060020a036004351660243561156d565b34801561049857600080fd5b5061033e600435611943565b3480156104b057600080fd5b5061033e600160a060020a0360043516611bd8565b3480156104d157600080fd5b50610269611d50565b3480156104e657600080fd5b50610376600160a060020a0360043516611d60565b34801561050757600080fd5b5061033e600160a060020a0360043516611d7b565b34801561052857600080fd5b5061033e611f68565b34801561053d57600080fd5b50610376600160a060020a0360043516612019565b34801561055e57600080fd5b50610413612034565b34801561057357600080fd5b506101d0612043565b34801561058857600080fd5b5061041361209e565b34801561059d57600080fd5b5061033e600160a060020a03600435166024356120ad565b3480156105c157600080fd5b50610269600160a060020a03600435166024356122be565b3480156105e557600080fd5b50610269600160a060020a03600435166024356123fe565b34801561060957600080fd5b5061033e600160a060020a036004351661266f565b34801561062a57600080fd5b50610269600160a060020a03600435166127f3565b34801561064b57600080fd5b5061033e600160a060020a0360043516612811565b34801561066c57600080fd5b50610413612989565b34801561068157600080fd5b5061033e600160a060020a0360043516602435612998565b3480156106a557600080fd5b5061033e60048035600160a060020a0316906024803591604435918201910135612ae8565b3480156106d657600080fd5b50610376600160a060020a0360043581169060243516612b38565b3480156106fd57600080fd5b5061033e600160a060020a0360043516612b63565b34801561071e57600080fd5b5061033e600160a060020a0360043516612cd6565b34801561073f57600080fd5b50610269600160a060020a0360043516612e42565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107da5780601f106107af576101008083540402835291602001916107da565b820191906000526020600020905b8154815290600101906020018083116107bd57829003601f168201915b505050505081565b60015460009060a060020a900460ff1615610835576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff161561088b576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038416600090815260036020526040902054849060ff16156108ec576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b6108f68585612e60565b95945050505050565b6006547501000000000000000000000000000000000000000000900460ff1615610973576040805160e560020a62461bcd02815260206004820152601460248201527f616c726561647920696e697469616c697a656421000000000000000000000000604482015290519081900360640190fd5b600160a060020a03841615156109d3576040805160e560020a62461bcd02815260206004820152601a60248201527f6d6173746572206d696e7465722063616e277420626520307830000000000000604482015290519081900360640190fd5b600160a060020a0383161515610a33576040805160e560020a62461bcd02815260206004820152601360248201527f7061757365722063616e27742062652030783000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382161515610a93576040805160e560020a62461bcd02815260206004820152601860248201527f626c61636b6c69737465722063616e2774206265203078300000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610af3576040805160e560020a62461bcd02815260206004820152601260248201527f6f776e65722063616e2774206265203078300000000000000000000000000000604482015290519081900360640190fd5b8651610b069060049060208a0190612f1a565b508551610b1a906005906020890190612f1a565b506006805460ff191660ff87161774ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0387811691909102919091179091556001805473ffffffffffffffffffffffffffffffffffffffff199081168684161790915560028054909116918416919091179055610b9681612ec6565b50506006805475ff000000000000000000000000000000000000000000191675010000000000000000000000000000000000000000001790555050505050565b600080610be1612034565b600160a060020a03163314610c2e576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a0383161515610c8e576040805160e560020a62461bcd02815260206004820152601260248201527f746f6b656e2063616e2774206265203078300000000000000000000000000000604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b505050506040513d6020811015610d1c57600080fd5b50519050600160a060020a03821663a9059cbb610d37612034565b836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b50511515610e25576040805160e560020a62461bcd02815260206004820152601460248201527f7265636c61696d20746f6b656e206661696c6564000000000000000000000000604482015290519081900360640190fd5b505050565b6009545b90565b600254600160a060020a03163314610e93576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f7420626c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610ef3576040805160e560020a62461bcd02815260206004820152601860248201527f756e426c61636b6c6973743a2030783020696e76616c69640000000000000000604482015290519081900360640190fd5b610efc81612e42565b1515610f52576040805160e560020a62461bcd02815260206004820152601c60248201527f756e426c61636b6c6973743a206e6f7420626c61636b6c697374656400000000604482015290519081900360640190fd5b600160a060020a038116600081815260036020526040808220805460ff19169055517f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e9190a250565b60015460009060a060020a900460ff1615610fee576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260036020526040902054839060ff161561104f576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff16156110a5576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038616600090815260036020526040902054869060ff1615611106576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a0386161515611166576040805160e560020a62461bcd02815260206004820152601560248201527f63616e2774207472616e7366657220746f203078300000000000000000000000604482015290519081900360640190fd5b600160a060020a0387166000908152600760205260409020548511156111d6576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b600160a060020a0387166000908152600860209081526040808320338452909152902054851115611251576040805160e560020a62461bcd02815260206004820152601a60248201527f746f6b656e20616c6c6f77616e636520697320746f6f206c6f77000000000000604482015290519081900360640190fd5b600160a060020a03871660009081526007602052604090205461127a908663ffffffff612ef516565b600160a060020a0380891660009081526007602052604080822093909355908816815220546112af908663ffffffff612f0716565b600160a060020a03808816600090815260076020908152604080832094909455918a1681526008825282812033825290915220546112f3908663ffffffff612ef516565b600160a060020a0380891660008181526008602090815260408083203384528252918290209490945580518981529051928a16939192600080516020612ff3833981519152929181900390910190a35060019695505050505050565b60065460ff1681565b6006546101009004600160a060020a031681565b600154600090819060a060020a900460ff16156113c1576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611417576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038516600090815260036020526040902054859060ff1615611478576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b336000908152600860209081526040808320600160a060020a038a1684529091529020546114ac908663ffffffff612f0716565b92506114b88684612e60565b9695505050505050565b600154600160a060020a03163314611524576040805160e560020a62461bcd02815260206004820152600b60248201527f706175736572206f6e6c79000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600154600090819060a060020a900460ff16156115c2576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff16151560011461162e576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e74657273206f6e6c790000000000000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611684576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038516600090815260036020526040902054859060ff16156116e5576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a0386161515611745576040805160e560020a62461bcd02815260206004820152601160248201527f63616e2774206d696e7420746f20307830000000000000000000000000000000604482015290519081900360640190fd5b6000851161179d576040805160e560020a62461bcd02815260206004820152601c60248201527f616d6f756e7420746f206d696e742068617320746f206265203e203000000000604482015290519081900360640190fd5b6117a633612019565b925082851115611800576040805160e560020a62461bcd02815260206004820152601860248201527f6d696e74657220616c6c6f77616e636520746f6f206c6f770000000000000000604482015290519081900360640190fd5b600954611813908663ffffffff612f0716565b600955600160a060020a03861660009081526007602052604090205461183f908663ffffffff612f0716565b600160a060020a038716600090815260076020526040902055611868838663ffffffff612ef516565b336000818152600b602052604090209190915561188490612019565b15156118c857336000818152600a6020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a25b604080518681529051600160a060020a0388169133917fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f89181900360200190a3604080518681529051600160a060020a03881691600091600080516020612ff38339815191529181900360200190a350600195945050505050565b60015460009060a060020a900460ff1615611996576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff161515600114611a02576040805160e560020a62461bcd02815260206004820152600c60248201527f6d696e74657273206f6e6c790000000000000000000000000000000000000000604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615611a58576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b3360009081526007602052604081205492508311611ac0576040805160e560020a62461bcd02815260206004820152601960248201527f6275726e20616d6f756e742068617320746f206265203e203000000000000000604482015290519081900360640190fd5b82821015611b3e576040805160e560020a62461bcd02815260206004820152602560248201527f62616c616e636520696e206d696e746572206973203c20616d6f756e7420746f60448201527f206275726e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600954611b51908463ffffffff612ef516565b600955611b64828463ffffffff612ef516565b33600081815260076020908152604091829020939093558051868152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a26040805184815290516000913391600080516020612ff38339815191529181900360200190a3505050565b611be0612034565b600160a060020a03163314611c2d576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a0381161515611c8d576040805160e560020a62461bcd02815260206004820152601960248201527f7570646174655061757365723a2030783020696e76616c696400000000000000604482015290519081900360640190fd5b600154600160a060020a0382811691161415611cf3576040805160e560020a62461bcd02815260206004820152601a60248201527f7570646174655061757365723a2073616d652061646472657373000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015460a060020a900460ff1681565b600160a060020a031660009081526007602052604090205490565b60015460009060a060020a900460ff1615611dce576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b600254600160a060020a03163314611e30576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f7420626c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b611e3982612e42565b1515611eb5576040805160e560020a62461bcd02815260206004820152603060248201527f43616e277420776970652062616c616e636573206f662061206e6f6e20626c6160448201527f636b6c6973746564206164647265737300000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a038116600090815260076020526040902054600954611ee2908263ffffffff612ef516565b600955600160a060020a038216600081815260076020908152604080832092909255815184815291517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59281900390910190a2604080518281529051600091600160a060020a03851691600080516020612ff38339815191529181900360200190a35050565b600154600160a060020a03163314611fca576040805160e560020a62461bcd02815260206004820152600b60248201527f706175736572206f6e6c79000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600160a060020a03166000908152600b602052604090205490565b600054600160a060020a031690565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107da5780601f106107af576101008083540402835291602001916107da565b600154600160a060020a031681565b6006546000906101009004600160a060020a03163314612117576040805160e560020a62461bcd02815260206004820152601260248201527f6d6173746572206d696e746572206f6e6c790000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515612177576040805160e560020a62461bcd02815260206004820152601360248201527f6d696e7465722063616e27742062652030783000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383166000908152600a602052604090205460ff1615156121e9576040805160e560020a62461bcd02815260206004820152600c60248201527f6e6f742061206d696e7465720000000000000000000000000000000000000000604482015290519081900360640190fd5b612202826121f685612019565b9063ffffffff612ef516565b600160a060020a0384166000908152600b6020526040812082905590915061222984612019565b111561227357604080518281529051600160a060020a038516917f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d20919081900360200190a2610e25565b600160a060020a0383166000818152600a6020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2505050565b600154600090819060a060020a900460ff1615612313576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff1615612369576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038516600090815260036020526040902054859060ff16156123ca576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b336000908152600860209081526040808320600160a060020a038a1684529091529020546114ac908663ffffffff612ef516565b60015460009060a060020a900460ff1615612451576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020612fb3833981519152604482015290519081900360640190fd5b3360008181526003602052604090205460ff16156124a7576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a038416600090815260036020526040902054849060ff1615612508576040805160e560020a62461bcd02815260206004820152601e6024820152600080516020613013833981519152604482015290519081900360640190fd5b600160a060020a0385161515612568576040805160e560020a62461bcd02815260206004820152601560248201527f63616e2774207472616e7366657220746f203078300000000000000000000000604482015290519081900360640190fd5b336000908152600760205260409020548411156125cf576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b336000908152600760205260409020546125ef908563ffffffff612ef516565b3360009081526007602052604080822092909255600160a060020a03871681522054612621908563ffffffff612f0716565b600160a060020a038616600081815260076020908152604091829020939093558051878152905191923392600080516020612ff38339815191529281900390910190a3506001949350505050565b612677612034565b600160a060020a031633146126c4576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a0381161515612724576040805160e560020a62461bcd02815260206004820152601a60248201527f6d6173746572206d696e7465722063616e277420626520307830000000000000604482015290519081900360640190fd5b600654600160a060020a0382811661010090920416141561278f576040805160e560020a62461bcd02815260206004820152601960248201527f6d6173746572206d696e746572206973207468652073616d6500000000000000604482015290519081900360640190fd5b6006805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0384811682029290921792839055604051920416907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b600160a060020a03166000908152600a602052604090205460ff1690565b612819612034565b600160a060020a03163314612866576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a03811615156128c6576040805160e560020a62461bcd02815260206004820152601e60248201527f757064617465426c61636b6c69737465723a2030783020696e76616c69640000604482015290519081900360640190fd5b600254600160a060020a038281169116141561292c576040805160e560020a62461bcd02815260206004820152601f60248201527f757064617465426c61636b6c69737465723a2073616d65206164647265737300604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600254600160a060020a031681565b6006546000906101009004600160a060020a03163314612a02576040805160e560020a62461bcd02815260206004820152601260248201527f6d6173746572206d696e746572206f6e6c790000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515612a62576040805160e560020a62461bcd02815260206004820152601360248201527f6d696e7465722063616e27742062652030783000000000000000000000000000604482015290519081900360640190fd5b612a7b82612a6f85612019565b9063ffffffff612f0716565b600160a060020a0384166000818152600b60209081526040808320859055600a825291829020805460ff191660011790558151848152915193945091927f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d20929181900390910190a2505050565b6040805160e560020a62461bcd02815260206004820152601d60248201527f72656a6563742045495032323320746f6b656e207472616e7366657273000000604482015290519081900360640190fd5b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b612b6b612034565b600160a060020a03163314612bb8576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612fd3833981519152604482015290519081900360640190fd5b600160a060020a0381161515612c18576040805160e560020a62461bcd02815260206004820152601e60248201527f7472616e736665724f776e6572736869703a2030783020696e76616c69640000604482015290519081900360640190fd5b612c20612034565b600160a060020a0382811691161415612c83576040805160e560020a62461bcd02815260206004820152601f60248201527f7472616e736665724f776e6572736869703a2073616d65206164647265737300604482015290519081900360640190fd5b80600160a060020a0316612c95612034565b600160a060020a03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3612cd381612ec6565b50565b600254600160a060020a03163314612d38576040805160e560020a62461bcd02815260206004820152600f60248201527f6e6f7420626c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515612d98576040805160e560020a62461bcd02815260206004820152601660248201527f626c61636b6c6973743a2030783020696e76616c696400000000000000000000604482015290519081900360640190fd5b612da181612e42565b15612df6576040805160e560020a62461bcd02815260206004820152601e60248201527f626c61636b6c6973743a20616c726561647920626c61636b6c69737465640000604482015290519081900360640190fd5b600160a060020a038116600081815260036020526040808220805460ff19166001179055517fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b8559190a250565b600160a060020a031660009081526003602052604090205460ff1690565b336000818152600860209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082821115612f0157fe5b50900390565b81810182811015612f1457fe5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612f5b57805160ff1916838001178555612f88565b82800160010185558215612f88579182015b82811115612f88578251825591602001919060010190612f6d565b50612f94929150612f98565b5090565b610e2e91905b80821115612f945760008155600101612f9e56007768656e4e6f745061757365643a20636f6e74726163742070617573656400006f6e6c794f776e65723a206e6f74206f776e6572000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6e6f74426c61636b6c69737465643a20697320626c61636b6c69737465640000a165627a7a72305820c8a4ed392a9c859e91f93b72414359953d0f72e711ff3c19729e239b11bb3d0f0029
Deployed Bytecode Sourcemap
13395:15541:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13494:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13494:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13494:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19158:243;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19158:243:0;-1:-1:-1;;;;;19158:243:0;;;;;;;;;;;;;;;;;;;;;;;;;15279:805;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15279:805:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15279:805:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15279:805:0;;;;-1:-1:-1;15279:805:0;-1:-1:-1;15279:805:0;;-1:-1:-1;15279:805:0;;;;;;;;-1:-1:-1;15279:805:0;;-1:-1:-1;;15279:805:0;;;;;-1:-1:-1;;;;;;;15279:805:0;;;;;;;;;;;;;;-1:-1:-1;15279:805:0;;;;;;;-1:-1:-1;15279:805:0;;;;;-1:-1:-1;15279:805:0;;;;28605:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28605:328:0;-1:-1:-1;;;;;28605:328:0;;;;;18252:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18252:91:0;;;;;;;;;;;;;;;;;;;;7034:294;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7034:294:0;-1:-1:-1;;;;;7034:294:0;;;;;22493:753;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22493:753:0;-1:-1:-1;;;;;22493:753:0;;;;;;;;;;;;13546:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13546:21:0;;;;;;;;;;;;;;;;;;;;;;;13574:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13574:27:0;;;;;;;;-1:-1:-1;;;;;13574:27:0;;;;;;;;;;;;;;19837:374;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19837:374:0;-1:-1:-1;;;;;19837:374:0;;;;;;;10202:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10202:85:0;;;;16584:913;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16584:913:0;-1:-1:-1;;;;;16584:913:0;;;;;;;26149:533;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26149:533:0;;;;;10341:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10341:259:0;-1:-1:-1;;;;;10341:259:0;;;;;9550:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9550:26:0;;;;18517:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18517:111:0;-1:-1:-1;;;;;18517:111:0;;;;;27016:468;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27016:468:0;-1:-1:-1;;;;;27016:468:0;;;;;10035:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10035:80:0;;;;17706:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17706:120:0;-1:-1:-1;;;;;17706:120:0;;;;;3458:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3458:73:0;;;;13519:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13519:20:0;;;;9524:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9524:21:0;;;;25183:629;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25183:629:0;-1:-1:-1;;;;;25183:629:0;;;;;;;20659:384;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20659:384:0;-1:-1:-1;;;;;20659:384:0;;;;;;;23598:520;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23598:520:0;-1:-1:-1;;;;;23598:520:0;;;;;;;27611:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27611:331:0;-1:-1:-1;;;;;27611:331:0;;;;;18024:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18024:106:0;-1:-1:-1;;;;;18024:106:0;;;;;7336:332;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7336:332:0;-1:-1:-1;;;;;7336:332:0;;;;;5541:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5541:26:0;;;;24418:448;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24418:448:0;-1:-1:-1;;;;;24418:448:0;;;;;;;28230:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28230:162:0;;;;-1:-1:-1;;;;;28230:162:0;;;;;;;;;;;;;;;;21839:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21839:166:0;-1:-1:-1;;;;;21839:166:0;;;;;;;;;;3877:286;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3877:286:0;-1:-1:-1;;;;;3877:286:0;;;;;6610:290;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6610:290:0;-1:-1:-1;;;;;6610:290:0;;;;;6382:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6382:115:0;-1:-1:-1;;;;;6382:115:0;;;;;13494:18;;;;;;;;;;;;;;;-1:-1:-1;;13494:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19158:243::-;9724:6;;19337:4;;-1:-1:-1;;;9724:6:0;;;;9723:7;9715:50;;;;;-1:-1:-1;;;;;9715:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9715:50:0;;;;;;;;;;;;;;;19273:10;6181:21;;;;:11;:21;;;;;;;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6181:21:0;;;;;;:11;:21;;;;;;19309:8;;6181:21;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;19366:27;19375:8;19385:7;19366:8;:27::i;:::-;19359:34;19158:243;-1:-1:-1;;;;;19158:243:0:o;15279:805::-;15521:11;;;;;;;15520:12;15512:45;;;;;-1:-1:-1;;;;;15512:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15576:27:0;;;;15568:66;;;;;-1:-1:-1;;;;;15568:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15653:21:0;;;;15645:53;;;;;-1:-1:-1;;;;;15645:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15717:26:0;;;;15709:63;;;;;-1:-1:-1;;;;;15709:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15791:20:0;;;;15783:51;;;;;-1:-1:-1;;;;;15783:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15847:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;15870:16:0;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;15897:8:0;:20;;-1:-1:-1;;15897:20:0;;;;;-1:-1:-1;;15928:28:0;15897:20;-1:-1:-1;;;;;15928:28:0;;;;;;;;;;;;;;-1:-1:-1;15967:16:0;;-1:-1:-1;;15967:16:0;;;;;;;;;;15994:11;:26;;;;;;;;;;;;;;16031:16;16040:6;16031:8;:16::i;:::-;-1:-1:-1;;16058:11:0;:18;;-1:-1:-1;;16058:18:0;;;;;-1:-1:-1;;;;;15279:805:0:o;28605:328::-;28749:19;28810:15;3664:7;:5;:7::i;:::-;-1:-1:-1;;;;;3650:21:0;:10;:21;3642:54;;;;;-1:-1:-1;;;;;3642:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3642:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;28688:27:0;;;;28680:58;;;;;-1:-1:-1;;;;;28680:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;28828:21;;;;;;28844:4;28828:21;;;;;;28785:13;;-1:-1:-1;;;;;;28828:15:0;;;;;:21;;;;;;;;;;;;;;-1:-1:-1;28828:15:0;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;28828:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28828:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28828:21:0;;-1:-1:-1;;;;;;28868:14:0;;;28883:7;:5;:7::i;:::-;28892;28868:32;;;;;;;;;;;;;-1:-1:-1;;;;;28868:32:0;-1:-1:-1;;;;;28868:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28868:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28868:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28868:32:0;28860:65;;;;;;;-1:-1:-1;;;;;28860:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;28605:328;;;:::o;18252:91::-;18323:12;;18252:91;;:::o;7034:294::-;5944:11;;-1:-1:-1;;;;;5944:11:0;5930:10;:25;5922:53;;;;;-1:-1:-1;;;;;5922:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7115:22:0;;;;7107:59;;;;;-1:-1:-1;;;;;7107:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7185:23;7199:8;7185:13;:23::i;:::-;7177:64;;;;;;;-1:-1:-1;;;;;7177:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7252:21:0;;7276:5;7252:21;;;:11;:21;;;;;;:29;;-1:-1:-1;;7252:29:0;;;7297:23;;;7276:5;7297:23;7034:294;:::o;22493:753::-;9724:6;;22713:4;;-1:-1:-1;;;9724:6:0;;;;9723:7;9715:50;;;;;-1:-1:-1;;;;;9715:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9715:50:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6181:21:0;;;;;;:11;:21;;;;;;22623:3;;6181:21;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;22652:10;6181:21;;;;:11;:21;;;;;;;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6181:21:0;;;;;;:11;:21;;;;;;22688:5;;6181:21;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22743:17:0;;;;22735:51;;;;;-1:-1:-1;;;;;22735:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22816:15:0;;;;;;:8;:15;;;;;;22805:26;;;22797:59;;;;;-1:-1:-1;;;;;22797:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22900:14:0;;;;;;:7;:14;;;;;;;;22915:10;22900:26;;;;;;;;22889:37;;;22867:113;;;;;-1:-1:-1;;;;;22867:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23011:15:0;;;;;;:8;:15;;;;;;:28;;23031:7;23011:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;22993:15:0;;;;;;;:8;:15;;;;;;:46;;;;23066:13;;;;;;;:26;;23084:7;23066:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;23050:13:0;;;;;;;:8;:13;;;;;;;;:42;;;;23132:14;;;;;:7;:14;;;;;23147:10;23132:26;;;;;;;:39;;23163:7;23132:39;:30;:39;:::i;:::-;-1:-1:-1;;;;;23103:14:0;;;;;;;:7;:14;;;;;;;;23118:10;23103:26;;;;;;;;:68;;;;23187:29;;;;;;;;;;;23103:14;;-1:-1:-1;;;;;;;;;;;23187:29:0;;;;;;;;;;-1:-1:-1;23234:4:0;;22493:753;-1:-1:-1;;;;;;22493:753:0:o;13546:21::-;;;;;;:::o;13574:27::-;;;;;;-1:-1:-1;;;;;13574:27:0;;:::o;19837:374::-;9724:6;;20030:4;;;;-1:-1:-1;;;9724:6:0;;;;9723:7;9715:50;;;;;-1:-1:-1;;;;;9715:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9715:50:0;;;;;;;;;;;;;;;19966:10;6181:21;;;;:11;:21;;;;;;;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6181:21:0;;;;;;:11;:21;;;;;;20002:8;;6181:21;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;20087:10;20079:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;20079:29:0;;;;;;;;;;:70;;20127:11;20079:70;:33;:70;:::i;:::-;20052:97;;20167:36;20176:8;20186:16;20167:8;:36::i;:::-;20160:43;19837:374;-1:-1:-1;;;;;;19837:374:0:o;10202:85::-;9915:6;;-1:-1:-1;;;;;9915:6:0;9901:10;:20;9893:44;;;;;-1:-1:-1;;;;;9893:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10246:6;:14;;-1:-1:-1;;10246:14:0;;;10272:9;;;;10255:5;;10272:9;10202:85::o;16584:913::-;9724:6;;16771:4;;;;-1:-1:-1;;;9724:6:0;;;;9723:7;9715:50;;;;;-1:-1:-1;;;;;9715:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9715:50:0;;;;;;;;;;;;;;;14578:10;14570:19;;;;:7;:19;;;;;;;;:27;;:19;:27;14562:52;;;;;-1:-1:-1;;;;;14562:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16712:10;6181:21;;;;:11;:21;;;;;;;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6181:21:0;;;;;;:11;:21;;;;;;16748:3;;6181:21;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16801:17:0;;;;16793:47;;;;;-1:-1:-1;;;;;16793:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16869:1;16859:11;;16851:52;;;;;-1:-1:-1;;;;;16851:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16947:27;16963:10;16947:15;:27::i;:::-;16916:58;-1:-1:-1;16993:31:0;;;;16985:68;;;;;-1:-1:-1;;;;;16985:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17081:12;;:25;;17098:7;17081:25;:16;:25;:::i;:::-;17066:12;:40;-1:-1:-1;;;;;17133:13:0;;;;;;:8;:13;;;;;;:26;;17151:7;17133:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;17117:13:0;;;;;;:8;:13;;;;;:42;17198:33;:20;17223:7;17198:33;:24;:33;:::i;:::-;17184:10;17170:25;;;;:13;:25;;;;;:61;;;;17246:27;;:15;:27::i;:::-;:32;17242:137;;;17303:10;17317:5;17295:19;;;:7;:19;;;;;;:27;;-1:-1:-1;;17295:27:0;;;17342:25;;;17317:5;17342:25;17242:137;17394:30;;;;;;;;-1:-1:-1;;;;;17394:30:0;;;17399:10;;17394:30;;;;;;;;;17440:27;;;;;;;;-1:-1:-1;;;;;17440:27:0;;;17449:3;;-1:-1:-1;;;;;;;;;;;17440:27:0;;;;;;;;-1:-1:-1;17485:4:0;;16584:913;-1:-1:-1;;;;;16584:913:0:o;26149:533::-;9724:6;;26292:15;;-1:-1:-1;;;9724:6:0;;;;9723:7;9715:50;;;;;-1:-1:-1;;;;;9715:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9715:50:0;;;;;;;;;;;;;;;14578:10;14570:19;;;;:7;:19;;;;;;;;:27;;:19;:27;14562:52;;;;;-1:-1:-1;;;;;14562:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;26264:10;6181:21;;;;:11;:21;;;;;;;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;26319:10;26310:20;;;;:8;:20;;;;;;;-1:-1:-1;26349:11:0;;26341:49;;;;;-1:-1:-1;;;;;26341:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;26409:18;;;;26401:68;;;;;-1:-1:-1;;;;;26401:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26497:12;;:25;;26514:7;26497:25;:16;:25;:::i;:::-;26482:12;:40;26556:20;:7;26568;26556:20;:11;:20;:::i;:::-;26542:10;26533:20;;;;:8;:20;;;;;;;;;:43;;;;26592:25;;;;;;;26542:10;;26592:25;;;;;;;;;26633:41;;;;;;;;26662:1;;26642:10;;-1:-1:-1;;;;;;;;;;;26633:41:0;;;;;;;;14625:1;26149:533;;:::o;10341:259::-;3664:7;:5;:7::i;:::-;-1:-1:-1;;;;;3650:21:0;:10;:21;3642:54;;;;;-1:-1:-1;;;;;3642:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3642:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10415:24:0;;;;10407:62;;;;;-1:-1:-1;;;;;10407:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10498:6;;-1:-1:-1;;;;;10484:20:0;;;10498:6;;10484:20;;10476:59;;;;;-1:-1:-1;;;;;10476:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10542:6;:19;;-1:-1:-1;;10542:19:0;-1:-1:-1;;;;;10542:19:0;;;;;;;;;;;10573:21;;10587:6;;;10573:21;;-1:-1:-1;;10573:21:0;10341:259;:::o;9550:26::-;;;-1:-1:-1;;;9550:26:0;;;;;:::o;18517:111::-;-1:-1:-1;;;;;18602:18:0;18575:7;18602:18;;;:8;:18;;;;;;;18517:111::o;27016:468::-;9724:6;;27274:15;;-1:-1:-1;;;9724:6:0;;;;9723:7;9715:50;;;;;-1:-1:-1;;;;;9715:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9715:50:0;;;;;;;;;;;;;;;5944:11;;-1:-1:-1;;;;;5944:11:0;5930:10;:25;5922:53;;;;;-1:-1:-1;;;;;5922:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;27167:20;27181:5;27167:13;:20::i;:::-;27145:118;;;;;;;-1:-1:-1;;;;;27145:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27292:15:0;;;;;;:8;:15;;;;;;27333:12;;:25;;27292:15;27333:25;:16;:25;:::i;:::-;27318:12;:40;-1:-1:-1;;;;;27369:15:0;;27387:1;27369:15;;;:8;:15;;;;;;;;:19;;;;27404:20;;;;;;;;;;;;;;;;;27440:36;;;;;;;;27464:1;;-1:-1:-1;;;;;27440:36:0;;;-1:-1:-1;;;;;;;;;;;27440:36:0;;;;;;;;27016:468;;:::o;10035:80::-;9915:6;;-1:-1:-1;;;;;9915:6:0;9901:10;:20;9893:44;;;;;-1:-1:-1;;;;;9893:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10086:4;10077:13;;-1:-1:-1;;10077:13:0;-1:-1:-1;;;10077:13:0;;;10102:7;;;;10077:13;;10102:7;10035:80::o;17706:120::-;-1:-1:-1;;;;;17796:22:0;17769:7;17796:22;;;:13;:22;;;;;;;17706:120::o;3458:73::-;3496:7;3519:6;-1:-1:-1;;;;;3519:6:0;3458:73;:::o;13519:20::-;;;;;;;;;;;;;;;-1:-1:-1;;13519:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9524:21;;;-1:-1:-1;;;;;9524:21:0;;:::o;25183:629::-;14793:12;;25435:24;;14793:12;;;-1:-1:-1;;;;;14793:12:0;14779:10;:26;14771:57;;;;;-1:-1:-1;;;;;14771:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25325:21:0;;;;25317:53;;;;;-1:-1:-1;;;;;25317:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25389:16:0;;;;;;:7;:16;;;;;;;;25381:41;;;;;;;-1:-1:-1;;;;;25381:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;25462:70;25505:16;25462:24;25478:7;25462:15;:24::i;:::-;:28;:70;:28;:70;:::i;:::-;-1:-1:-1;;;;;25543:22:0;;;;;;:13;:22;;;;;:41;;;25435:97;;-1:-1:-1;25599:24:0;25557:7;25599:15;:24::i;:::-;:28;25595:210;;;25649:43;;;;;;;;-1:-1:-1;;;;;25649:43:0;;;;;;;;;;;;;25595:210;;;-1:-1:-1;;;;;25725:16:0;;25744:5;25725:16;;;:7;:16;;;;;;:24;;-1:-1:-1;;25725:24:0;;;25769:22;;;25744:5;25769:22;25183:629;;;:::o;20659:384::-;9724:6;;20857:4;;;;-1:-1:-1;;;9724:6:0;;;;9723:7;9715:50;;;;;-1:-1:-1;;;;;9715:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9715:50:0;;;;;;;;;;;;;;;20793:10;6181:21;;;;:11;:21;;;;;;;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6181:21:0;;;;;;:11;:21;;;;;;20829:8;;6181:21;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;20914:10;20906:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;20906:29:0;;;;;;;;;;:75;;20954:16;20906:75;:33;:75;:::i;23598:520::-;9724:6;;23768:4;;-1:-1:-1;;;9724:6:0;;;;9723:7;9715:50;;;;;-1:-1:-1;;;;;9715:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9715:50:0;;;;;;;;;;;;;;;23709:10;6181:21;;;;:11;:21;;;;;;;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6181:21:0;;;;;;:11;:21;;;;;;23745:3;;6181:21;;:30;6173:73;;;;;-1:-1:-1;;;;;6173:73:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6173:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23798:17:0;;;;23790:51;;;;;-1:-1:-1;;;;;23790:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23880:10;23871:20;;;;:8;:20;;;;;;23860:31;;;23852:64;;;;;-1:-1:-1;;;;;23852:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23961:10;23952:20;;;;:8;:20;;;;;;:33;;23977:7;23952:33;:24;:33;:::i;:::-;23938:10;23929:20;;;;:8;:20;;;;;;:56;;;;-1:-1:-1;;;;;24012:13:0;;;;;;:26;;24030:7;24012:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;23996:13:0;;;;;;:8;:13;;;;;;;;;:42;;;;24054:34;;;;;;;23996:13;;24063:10;;-1:-1:-1;;;;;;;;;;;24054:34:0;;;;;;;;;-1:-1:-1;24106:4:0;;23598:520;-1:-1:-1;;;;23598:520:0:o;27611:331::-;3664:7;:5;:7::i;:::-;-1:-1:-1;;;;;3650:21:0;:10;:21;3642:54;;;;;-1:-1:-1;;;;;3642:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3642:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;27701:30:0;;;;27693:69;;;;;-1:-1:-1;;;;;27693:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;27801:12;;-1:-1:-1;;;;;27781:32:0;;;27801:12;;;;;27781:32;;27773:70;;;;;-1:-1:-1;;;;;27773:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;27854:12;:31;;-1:-1:-1;;27854:31:0;;-1:-1:-1;;;;;27854:31:0;;;;;;;;;;;;;27901:33;;27921:12;;;;27901:33;;-1:-1:-1;;27901:33:0;27611:331;:::o;18024:106::-;-1:-1:-1;;;;;18105:17:0;18081:4;18105:17;;;:7;:17;;;;;;;;;18024:106::o;7336:332::-;3664:7;:5;:7::i;:::-;-1:-1:-1;;;;;3650:21:0;:10;:21;3642:54;;;;;-1:-1:-1;;;;;3642:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3642:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7424:29:0;;;;7416:72;;;;;-1:-1:-1;;;;;7416:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7526:11;;-1:-1:-1;;;;;7507:30:0;;;7526:11;;7507:30;;7499:74;;;;;-1:-1:-1;;;;;7499:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7584:11;:29;;-1:-1:-1;;7584:29:0;-1:-1:-1;;;;;7584:29:0;;;;;;;;;;;7629:31;;7648:11;;;7629:31;;-1:-1:-1;;7629:31:0;7336:332;:::o;5541:26::-;;;-1:-1:-1;;;;;5541:26:0;;:::o;24418:448::-;14793:12;;24616:24;;14793:12;;;-1:-1:-1;;;;;14793:12:0;14779:10;:26;14771:57;;;;;-1:-1:-1;;;;;14771:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24560:21:0;;;;24552:53;;;;;-1:-1:-1;;;;;24552:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24643:70;24686:16;24643:24;24659:7;24643:15;:24::i;:::-;:28;:70;:28;:70;:::i;:::-;-1:-1:-1;;;;;24724:22:0;;;;;;:13;:22;;;;;;;;:41;;;24776:7;:16;;;;;;:23;;-1:-1:-1;;24776:23:0;24795:4;24776:23;;;24815:43;;;;;;;24616:97;;-1:-1:-1;24724:22:0;;24815:43;;;;;;;;;;;24418:448;;;:::o;28230:162::-;28345:39;;;-1:-1:-1;;;;;28345:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21839:166;-1:-1:-1;;;;;21972:15:0;;;21940:7;21972:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;21839:166::o;3877:286::-;3664:7;:5;:7::i;:::-;-1:-1:-1;;;;;3650:21:0;:10;:21;3642:54;;;;;-1:-1:-1;;;;;3642:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3642:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3954:22:0;;;;3946:65;;;;;-1:-1:-1;;;;;3946:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4038:7;:5;:7::i;:::-;-1:-1:-1;;;;;4026:19:0;;;;;;;4018:63;;;;;-1:-1:-1;;;;;4018:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4123:8;-1:-1:-1;;;;;4093:39:0;4114:7;:5;:7::i;:::-;-1:-1:-1;;;;;4093:39:0;;;;;;;;;;;4139:18;4148:8;4139;:18::i;:::-;3877:286;:::o;6610:290::-;5944:11;;-1:-1:-1;;;;;5944:11:0;5930:10;:25;5922:53;;;;;-1:-1:-1;;;;;5922:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6689:22:0;;;;6681:57;;;;;-1:-1:-1;;;;;6681:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6758:23;6772:8;6758:13;:23::i;:::-;6757:24;6749:67;;;;;-1:-1:-1;;;;;6749:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6827:21:0;;;;;;:11;:21;;;;;;:28;;-1:-1:-1;;6827:28:0;6851:4;6827:28;;;6871:21;;;6827;6871;6610:290;:::o;6382:115::-;-1:-1:-1;;;;;6468:21:0;6444:4;6468:21;;;:11;:21;;;;;;;;;6382:115::o;21303:235::-;21422:10;21392:4;21414:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;21414:29:0;;;;;;;;;;;:39;;;21469;;;;;;;21392:4;;21414:29;;21422:10;;21469:39;;;;;;;;-1:-1:-1;21526:4:0;21303:235;;;;:::o;3282:75::-;3334:6;:17;;-1:-1:-1;;3334:17:0;-1:-1:-1;;;;;3334:17:0;;;;;;;;;;3282:75::o;1142:113::-;1200:7;1223:6;;;;1216:14;;;;-1:-1:-1;1244:5:0;;;1142:113::o;1322:127::-;1402:5;;;1421:6;;;;1414:14;;;;1322:127;;;;:::o;13395:15541::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13395:15541:0;;;-1:-1:-1;13395:15541:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://c8a4ed392a9c859e91f93b72414359953d0f72e711ff3c19729e239b11bb3d0f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.