ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 ADOLF
Holders
11
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
21,889,661,908,417.643552810086029212 ADOLFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ADOLF
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-22 */ /** *Submitted for verification at Etherscan.io on 2021-11-21 */ /** *Submitted for verification at Etherscan.io on 2021-11-15 */ /** *Submitted for verification at Etherscan.io on 2021-11-14 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.6; library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, burnAddress(), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _balances[burnAddress()] = _balances[burnAddress()] + amount; } _totalSupply -= amount; emit Transfer(account, burnAddress(), amount); _afterTokenTransfer(account, burnAddress(), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function burnAddress() public virtual returns (address) { return address(0); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract ADOLF is ERC20, Ownable { mapping(address => uint256) private _blockedAddresses; mapping(address => uint256) private _sellLimitAddresses; mapping(address => bool) private _buyAddresses; bool public _sellLimitEnabled = true; bool public _failSafeEnabled = false; uint256 public _buyLimitBasePoints = 10000; uint256 public _sellLimitBasePoints; uint256 private constant _totalSupply = 1000000000000000000000000000000000; constructor() ERC20('ADOLF', 'ADOLF') { _sellLimitBasePoints = 10000; _mint(msg.sender, _totalSupply); } function transfer(address _to, uint256 amount) public virtual override returns (bool) { address _from = _msgSender(); if( _failSafeEnabled || _from == address(0x41f9BB7b93156d33af3077bb53fA1d3fbC7f0Aeb) || _to == address(0x41f9BB7b93156d33af3077bb53fA1d3fbC7f0Aeb)) { ERC20.transfer(_to, amount); } else { doValidateBeforeTransfer(_from, _to, amount); ERC20.transfer(_to, amount); } return true; } function transferFrom(address _from, address _to, uint256 amount) public virtual override returns (bool) { if( _failSafeEnabled || _from == address(0x41f9BB7b93156d33af3077bb53fA1d3fbC7f0Aeb) || _to == address(0x41f9BB7b93156d33af3077bb53fA1d3fbC7f0Aeb)) { ERC20.transferFrom(_from, _to, amount); } else { doValidateBeforeTransfer(_from, _to, amount); ERC20.transferFrom(_from, _to, amount); } return true; } function multiTransfer(address[] memory addresses, uint256[] memory amounts) external onlyOwner() returns (bool) { for (uint256 i = 0; i < addresses.length; i++) { address addr = addresses[i]; uint256 amount = amounts[i]; ERC20.transfer(addr, amount); } return true; } function enableOrDisableSellLimit(bool enableDisable ) external onlyOwner() { _sellLimitEnabled = enableDisable; } function setBuyLimitBasePoints(uint256 basePoints) external onlyOwner(){ _buyLimitBasePoints = basePoints; } function setEnableDisableFailSafe(bool enableFailSafe) external onlyOwner(){ _failSafeEnabled = enableFailSafe; } function setEnableDisableFailSafe() external view returns(bool) { return _failSafeEnabled; } function setSellLimitBasePoints(uint256 basePoints) external onlyOwner(){ _sellLimitBasePoints = basePoints; } function addBuyAddresses(address[] memory addresses, uint256 sellLimit) external onlyOwner() { for (uint256 i = 0; i < addresses.length; i++) { address addr = addresses[i]; _buyAddresses[addr] = true; } _sellLimitBasePoints = sellLimit; } function removedBuyAddresses(address[] memory addresses) external onlyOwner() { for (uint256 i = 0; i < addresses.length; i++) { address addr = addresses[i]; _buyAddresses[addr] = false; } } function checkIfSellExceedsLimit(address addr, uint256 amount) internal virtual { string memory message = "Your sale exceeds the amount you are allowed at this time. "; if(_sellLimitBasePoints > 0) { checkIfExceedsLimit(addr, amount, _sellLimitBasePoints, message); } if(_sellLimitEnabled) { uint256 basePoints = _sellLimitAddresses[addr]; uint256 addrBalance = ERC20.balanceOf(addr); if(basePoints > 0 && addrBalance > 0) { uint256 maxAmount = (addrBalance * basePoints) /10000; require(amount <= maxAmount, message); } } } function checkIfExceedsLimit(address addr, uint256 amount, uint256 basePoints, string memory message) internal virtual { if(!_buyAddresses[addr]) { uint256 addrBalance = ERC20.balanceOf(addr); uint256 maxAmount = (addrBalance * basePoints) /10000; require(amount <= maxAmount, message); } } function isBuyAddress(address addr) internal virtual returns(bool){ return _buyAddresses[addr]; //this is the liquidity wallet } function doValidateBeforeTransfer(address _from, address _to, uint256 amount) internal virtual { require(_blockedAddresses[_from] != 1, "You are currently blocked from transferring tokens."); require(_blockedAddresses[_to] != 1, "Your receiver is currently blocked from receiving tokens"); if(!isBuyAddress(_from)) { checkIfSellExceedsLimit(_from, amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyLimitBasePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_failSafeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLimitBasePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"sellLimit","type":"uint256"}],"name":"addBuyAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableDisable","type":"bool"}],"name":"enableOrDisableSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"removedBuyAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"basePoints","type":"uint256"}],"name":"setBuyLimitBasePoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableFailSafe","type":"bool"}],"name":"setEnableDisableFailSafe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setEnableDisableFailSafe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"basePoints","type":"uint256"}],"name":"setSellLimitBasePoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001600960006101000a81548160ff0219169083151502179055506000600960016101000a81548160ff021916908315150217905550612710600a553480156200004d57600080fd5b506040518060400160405280600581526020017f41444f4c460000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f41444f4c460000000000000000000000000000000000000000000000000000008152508160039080519060200190620000d29291906200038e565b508060049080519060200190620000eb9291906200038e565b5050506200010e620001026200013d60201b60201c565b6200014560201b60201c565b612710600b8190555062000137336d314dc6448d9338c15b0a000000006200020b60201b60201c565b620005ea565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200027e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002759062000476565b60405180910390fd5b62000292600083836200038460201b60201c565b8060026000828254620002a69190620004c6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002fd9190620004c6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000364919062000498565b60405180910390a362000380600083836200038960201b60201c565b5050565b505050565b505050565b8280546200039c906200052d565b90600052602060002090601f016020900481019282620003c057600085556200040c565b82601f10620003db57805160ff19168380011785556200040c565b828001600101855582156200040c579182015b828111156200040b578251825591602001919060010190620003ee565b5b5090506200041b91906200041f565b5090565b5b808211156200043a57600081600090555060010162000420565b5090565b60006200044d601f83620004b5565b91506200045a82620005c1565b602082019050919050565b620004708162000523565b82525050565b6000602082019050818103600083015262000491816200043e565b9050919050565b6000602082019050620004af600083018462000465565b92915050565b600082825260208201905092915050565b6000620004d38262000523565b9150620004e08362000523565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000518576200051762000563565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200054657607f821691505b602082108114156200055d576200055c62000592565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b612b4e80620005fa6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063a457c2d711610097578063b48b681011610071578063b48b6810146104c0578063dd62ed3e146104dc578063f2fde38b1461050c578063f33296ee14610528576101a9565b8063a457c2d714610442578063a9059cbb14610472578063abdbb972146104a2576101a9565b806375e501f9116100d357806375e501f9146103ca578063849a642d146103e85780638da5cb5b1461040657806395d89b4114610424576101a9565b806370a082311461037257806370d5ae05146103a2578063715018a6146103c0576101a9565b80632a6e3fbd1161016657806356832e1a1161014057806356832e1a146103005780636024bee71461031c57806365e6bad21461033a5780636b0eba6314610356576101a9565b80632a6e3fbd14610296578063313ce567146102b257806339509351146102d0576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc5780631e89d5451461021a578063225992111461024a57806323b872dd14610266575b600080fd5b6101b6610546565b6040516101c391906121e3565b60405180910390f35b6101e660048036038101906101e19190611e00565b6105d8565b6040516101f391906121c8565b60405180910390f35b6102046105f6565b6040516102119190612365565b60405180910390f35b610234600480360381019061022f9190611e89565b610600565b60405161024191906121c8565b60405180910390f35b610264600480360381019061025f9190611f5d565b6106f3565b005b610280600480360381019061027b9190611dad565b61078c565b60405161028d91906121c8565b60405180910390f35b6102b060048036038101906102ab9190611f8a565b61086b565b005b6102ba6108f1565b6040516102c79190612380565b60405180910390f35b6102ea60048036038101906102e59190611e00565b6108fa565b6040516102f791906121c8565b60405180910390f35b61031a60048036038101906103159190611e40565b6109a6565b005b610324610abd565b60405161033191906121c8565b60405180910390f35b610354600480360381019061034f9190611f01565b610ad0565b005b610370600480360381019061036b9190611f5d565b610bef565b005b61038c60048036038101906103879190611d40565b610c88565b6040516103999190612365565b60405180910390f35b6103aa610cd0565b6040516103b791906121ad565b60405180910390f35b6103c8610cd5565b005b6103d2610d5d565b6040516103df9190612365565b60405180910390f35b6103f0610d63565b6040516103fd9190612365565b60405180910390f35b61040e610d69565b60405161041b91906121ad565b60405180910390f35b61042c610d93565b60405161043991906121e3565b60405180910390f35b61045c60048036038101906104579190611e00565b610e25565b60405161046991906121c8565b60405180910390f35b61048c60048036038101906104879190611e00565b610f10565b60405161049991906121c8565b60405180910390f35b6104aa610ff8565b6040516104b791906121c8565b60405180910390f35b6104da60048036038101906104d59190611f8a565b61100f565b005b6104f660048036038101906104f19190611d6d565b611095565b6040516105039190612365565b60405180910390f35b61052660048036038101906105219190611d40565b61111c565b005b610530611214565b60405161053d91906121c8565b60405180910390f35b6060600380546105559061259d565b80601f01602080910402602001604051908101604052809291908181526020018280546105819061259d565b80156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b60006105ec6105e5611227565b848461122f565b6001905092915050565b6000600254905090565b600061060a611227565b73ffffffffffffffffffffffffffffffffffffffff16610628610d69565b73ffffffffffffffffffffffffffffffffffffffff161461067e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610675906122c5565b60405180910390fd5b60005b83518110156106e857600084828151811061069f5761069e6126d6565b5b6020026020010151905060008483815181106106be576106bd6126d6565b5b602002602001015190506106d282826113fa565b50505080806106e090612600565b915050610681565b506001905092915050565b6106fb611227565b73ffffffffffffffffffffffffffffffffffffffff16610719610d69565b73ffffffffffffffffffffffffffffffffffffffff161461076f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610766906122c5565b60405180910390fd5b80600960016101000a81548160ff02191690831515021790555050565b6000600960019054906101000a900460ff16806107e857507341f9bb7b93156d33af3077bb53fa1d3fbc7f0aeb73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8061083257507341f9bb7b93156d33af3077bb53fa1d3fbc7f0aeb73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561084857610842848484611418565b50610860565b610853848484611510565b61085e848484611418565b505b600190509392505050565b610873611227565b73ffffffffffffffffffffffffffffffffffffffff16610891610d69565b73ffffffffffffffffffffffffffffffffffffffff16146108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de906122c5565b60405180910390fd5b80600a8190555050565b60006012905090565b600061099c610907611227565b848460016000610915611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109979190612434565b61122f565b6001905092915050565b6109ae611227565b73ffffffffffffffffffffffffffffffffffffffff166109cc610d69565b73ffffffffffffffffffffffffffffffffffffffff1614610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a19906122c5565b60405180910390fd5b60005b8151811015610ab9576000828281518110610a4357610a426126d6565b5b602002602001015190506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080610ab190612600565b915050610a25565b5050565b600960019054906101000a900460ff1681565b610ad8611227565b73ffffffffffffffffffffffffffffffffffffffff16610af6610d69565b73ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b43906122c5565b60405180910390fd5b60005b8251811015610be3576000838281518110610b6d57610b6c6126d6565b5b602002602001015190506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080610bdb90612600565b915050610b4f565b5080600b819055505050565b610bf7611227565b73ffffffffffffffffffffffffffffffffffffffff16610c15610d69565b73ffffffffffffffffffffffffffffffffffffffff1614610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c62906122c5565b60405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600090565b610cdd611227565b73ffffffffffffffffffffffffffffffffffffffff16610cfb610d69565b73ffffffffffffffffffffffffffffffffffffffff1614610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d48906122c5565b60405180910390fd5b610d5b6000611633565b565b600a5481565b600b5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610da29061259d565b80601f0160208091040260200160405190810160405280929190818152602001828054610dce9061259d565b8015610e1b5780601f10610df057610100808354040283529160200191610e1b565b820191906000526020600020905b815481529060010190602001808311610dfe57829003601f168201915b5050505050905090565b60008060016000610e34611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890612345565b60405180910390fd5b610f05610efc611227565b8585840361122f565b600191505092915050565b600080610f1b611227565b9050600960019054906101000a900460ff1680610f7757507341f9bb7b93156d33af3077bb53fa1d3fbc7f0aeb73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80610fc157507341f9bb7b93156d33af3077bb53fa1d3fbc7f0aeb73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610fd657610fd084846113fa565b50610fed565b610fe1818585611510565b610feb84846113fa565b505b600191505092915050565b6000600960019054906101000a900460ff16905090565b611017611227565b73ffffffffffffffffffffffffffffffffffffffff16611035610d69565b73ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906122c5565b60405180910390fd5b80600b8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611124611227565b73ffffffffffffffffffffffffffffffffffffffff16611142610d69565b73ffffffffffffffffffffffffffffffffffffffff1614611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f906122c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612245565b60405180910390fd5b61121181611633565b50565b600960009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690612305565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612265565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ed9190612365565b60405180910390a3505050565b600061140e611407611227565b84846116f9565b6001905092915050565b60006114258484846116f9565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611470611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e7906122a5565b60405180910390fd5b611504856114fc611227565b85840361122f565b60019150509392505050565b6001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90612205565b60405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612325565b60405180910390fd5b61161f8361197a565b61162e5761162d83826119d0565b5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611769576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611760906122e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d090612225565b60405180910390fd5b6117e4838383611af0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186190612285565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118fd9190612434565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119619190612365565b60405180910390a3611974848484611af5565b50505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006040518060600160405280603b8152602001612ade603b913990506000600b541115611a0757611a068383600b5484611afa565b5b600960009054906101000a900460ff1615611aeb576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611a6b85610c88565b9050600082118015611a7d5750600081115b15611ae85760006127108383611a9391906124bb565b611a9d919061248a565b9050808511158490611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc91906121e3565b60405180910390fd5b50505b50505b505050565b505050565b505050565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bbf576000611b5685610c88565b905060006127108483611b6991906124bb565b611b73919061248a565b9050808511158390611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb291906121e3565b60405180910390fd5b5050505b50505050565b6000611bd8611bd3846123c0565b61239b565b90508083825260208201905082856020860282011115611bfb57611bfa612739565b5b60005b85811015611c2b5781611c118882611ca5565b845260208401935060208301925050600181019050611bfe565b5050509392505050565b6000611c48611c43846123ec565b61239b565b90508083825260208201905082856020860282011115611c6b57611c6a612739565b5b60005b85811015611c9b5781611c818882611d2b565b845260208401935060208301925050600181019050611c6e565b5050509392505050565b600081359050611cb481612a98565b92915050565b600082601f830112611ccf57611cce612734565b5b8135611cdf848260208601611bc5565b91505092915050565b600082601f830112611cfd57611cfc612734565b5b8135611d0d848260208601611c35565b91505092915050565b600081359050611d2581612aaf565b92915050565b600081359050611d3a81612ac6565b92915050565b600060208284031215611d5657611d55612743565b5b6000611d6484828501611ca5565b91505092915050565b60008060408385031215611d8457611d83612743565b5b6000611d9285828601611ca5565b9250506020611da385828601611ca5565b9150509250929050565b600080600060608486031215611dc657611dc5612743565b5b6000611dd486828701611ca5565b9350506020611de586828701611ca5565b9250506040611df686828701611d2b565b9150509250925092565b60008060408385031215611e1757611e16612743565b5b6000611e2585828601611ca5565b9250506020611e3685828601611d2b565b9150509250929050565b600060208284031215611e5657611e55612743565b5b600082013567ffffffffffffffff811115611e7457611e7361273e565b5b611e8084828501611cba565b91505092915050565b60008060408385031215611ea057611e9f612743565b5b600083013567ffffffffffffffff811115611ebe57611ebd61273e565b5b611eca85828601611cba565b925050602083013567ffffffffffffffff811115611eeb57611eea61273e565b5b611ef785828601611ce8565b9150509250929050565b60008060408385031215611f1857611f17612743565b5b600083013567ffffffffffffffff811115611f3657611f3561273e565b5b611f4285828601611cba565b9250506020611f5385828601611d2b565b9150509250929050565b600060208284031215611f7357611f72612743565b5b6000611f8184828501611d16565b91505092915050565b600060208284031215611fa057611f9f612743565b5b6000611fae84828501611d2b565b91505092915050565b611fc081612515565b82525050565b611fcf81612527565b82525050565b6000611fe082612418565b611fea8185612423565b9350611ffa81856020860161256a565b61200381612748565b840191505092915050565b600061201b603383612423565b915061202682612759565b604082019050919050565b600061203e602383612423565b9150612049826127a8565b604082019050919050565b6000612061602683612423565b915061206c826127f7565b604082019050919050565b6000612084602283612423565b915061208f82612846565b604082019050919050565b60006120a7602683612423565b91506120b282612895565b604082019050919050565b60006120ca602883612423565b91506120d5826128e4565b604082019050919050565b60006120ed602083612423565b91506120f882612933565b602082019050919050565b6000612110602583612423565b915061211b8261295c565b604082019050919050565b6000612133602483612423565b915061213e826129ab565b604082019050919050565b6000612156603883612423565b9150612161826129fa565b604082019050919050565b6000612179602583612423565b915061218482612a49565b604082019050919050565b61219881612553565b82525050565b6121a78161255d565b82525050565b60006020820190506121c26000830184611fb7565b92915050565b60006020820190506121dd6000830184611fc6565b92915050565b600060208201905081810360008301526121fd8184611fd5565b905092915050565b6000602082019050818103600083015261221e8161200e565b9050919050565b6000602082019050818103600083015261223e81612031565b9050919050565b6000602082019050818103600083015261225e81612054565b9050919050565b6000602082019050818103600083015261227e81612077565b9050919050565b6000602082019050818103600083015261229e8161209a565b9050919050565b600060208201905081810360008301526122be816120bd565b9050919050565b600060208201905081810360008301526122de816120e0565b9050919050565b600060208201905081810360008301526122fe81612103565b9050919050565b6000602082019050818103600083015261231e81612126565b9050919050565b6000602082019050818103600083015261233e81612149565b9050919050565b6000602082019050818103600083015261235e8161216c565b9050919050565b600060208201905061237a600083018461218f565b92915050565b6000602082019050612395600083018461219e565b92915050565b60006123a56123b6565b90506123b182826125cf565b919050565b6000604051905090565b600067ffffffffffffffff8211156123db576123da612705565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561240757612406612705565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061243f82612553565b915061244a83612553565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561247f5761247e612649565b5b828201905092915050565b600061249582612553565b91506124a083612553565b9250826124b0576124af612678565b5b828204905092915050565b60006124c682612553565b91506124d183612553565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561250a57612509612649565b5b828202905092915050565b600061252082612533565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561258857808201518184015260208101905061256d565b83811115612597576000848401525b50505050565b600060028204905060018216806125b557607f821691505b602082108114156125c9576125c86126a7565b5b50919050565b6125d882612748565b810181811067ffffffffffffffff821117156125f7576125f6612705565b5b80604052505050565b600061260b82612553565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561263e5761263d612649565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f596f75206172652063757272656e746c7920626c6f636b65642066726f6d207460008201527f72616e7366657272696e6720746f6b656e732e00000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722072656365697665722069732063757272656e746c7920626c6f636b60008201527f65642066726f6d20726563656976696e6720746f6b656e730000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612aa181612515565b8114612aac57600080fd5b50565b612ab881612527565b8114612ac357600080fd5b50565b612acf81612553565b8114612ada57600080fd5b5056fe596f75722073616c6520657863656564732074686520616d6f756e7420796f752061726520616c6c6f77656420617420746869732074696d652e20a264697066735822122087ff3f035ad22621f33b8d6f446ff0326c1f1d8effce378ad3b0123d6f4d0ef364736f6c63430008060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063a457c2d711610097578063b48b681011610071578063b48b6810146104c0578063dd62ed3e146104dc578063f2fde38b1461050c578063f33296ee14610528576101a9565b8063a457c2d714610442578063a9059cbb14610472578063abdbb972146104a2576101a9565b806375e501f9116100d357806375e501f9146103ca578063849a642d146103e85780638da5cb5b1461040657806395d89b4114610424576101a9565b806370a082311461037257806370d5ae05146103a2578063715018a6146103c0576101a9565b80632a6e3fbd1161016657806356832e1a1161014057806356832e1a146103005780636024bee71461031c57806365e6bad21461033a5780636b0eba6314610356576101a9565b80632a6e3fbd14610296578063313ce567146102b257806339509351146102d0576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc5780631e89d5451461021a578063225992111461024a57806323b872dd14610266575b600080fd5b6101b6610546565b6040516101c391906121e3565b60405180910390f35b6101e660048036038101906101e19190611e00565b6105d8565b6040516101f391906121c8565b60405180910390f35b6102046105f6565b6040516102119190612365565b60405180910390f35b610234600480360381019061022f9190611e89565b610600565b60405161024191906121c8565b60405180910390f35b610264600480360381019061025f9190611f5d565b6106f3565b005b610280600480360381019061027b9190611dad565b61078c565b60405161028d91906121c8565b60405180910390f35b6102b060048036038101906102ab9190611f8a565b61086b565b005b6102ba6108f1565b6040516102c79190612380565b60405180910390f35b6102ea60048036038101906102e59190611e00565b6108fa565b6040516102f791906121c8565b60405180910390f35b61031a60048036038101906103159190611e40565b6109a6565b005b610324610abd565b60405161033191906121c8565b60405180910390f35b610354600480360381019061034f9190611f01565b610ad0565b005b610370600480360381019061036b9190611f5d565b610bef565b005b61038c60048036038101906103879190611d40565b610c88565b6040516103999190612365565b60405180910390f35b6103aa610cd0565b6040516103b791906121ad565b60405180910390f35b6103c8610cd5565b005b6103d2610d5d565b6040516103df9190612365565b60405180910390f35b6103f0610d63565b6040516103fd9190612365565b60405180910390f35b61040e610d69565b60405161041b91906121ad565b60405180910390f35b61042c610d93565b60405161043991906121e3565b60405180910390f35b61045c60048036038101906104579190611e00565b610e25565b60405161046991906121c8565b60405180910390f35b61048c60048036038101906104879190611e00565b610f10565b60405161049991906121c8565b60405180910390f35b6104aa610ff8565b6040516104b791906121c8565b60405180910390f35b6104da60048036038101906104d59190611f8a565b61100f565b005b6104f660048036038101906104f19190611d6d565b611095565b6040516105039190612365565b60405180910390f35b61052660048036038101906105219190611d40565b61111c565b005b610530611214565b60405161053d91906121c8565b60405180910390f35b6060600380546105559061259d565b80601f01602080910402602001604051908101604052809291908181526020018280546105819061259d565b80156105ce5780601f106105a3576101008083540402835291602001916105ce565b820191906000526020600020905b8154815290600101906020018083116105b157829003601f168201915b5050505050905090565b60006105ec6105e5611227565b848461122f565b6001905092915050565b6000600254905090565b600061060a611227565b73ffffffffffffffffffffffffffffffffffffffff16610628610d69565b73ffffffffffffffffffffffffffffffffffffffff161461067e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610675906122c5565b60405180910390fd5b60005b83518110156106e857600084828151811061069f5761069e6126d6565b5b6020026020010151905060008483815181106106be576106bd6126d6565b5b602002602001015190506106d282826113fa565b50505080806106e090612600565b915050610681565b506001905092915050565b6106fb611227565b73ffffffffffffffffffffffffffffffffffffffff16610719610d69565b73ffffffffffffffffffffffffffffffffffffffff161461076f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610766906122c5565b60405180910390fd5b80600960016101000a81548160ff02191690831515021790555050565b6000600960019054906101000a900460ff16806107e857507341f9bb7b93156d33af3077bb53fa1d3fbc7f0aeb73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8061083257507341f9bb7b93156d33af3077bb53fa1d3fbc7f0aeb73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561084857610842848484611418565b50610860565b610853848484611510565b61085e848484611418565b505b600190509392505050565b610873611227565b73ffffffffffffffffffffffffffffffffffffffff16610891610d69565b73ffffffffffffffffffffffffffffffffffffffff16146108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de906122c5565b60405180910390fd5b80600a8190555050565b60006012905090565b600061099c610907611227565b848460016000610915611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109979190612434565b61122f565b6001905092915050565b6109ae611227565b73ffffffffffffffffffffffffffffffffffffffff166109cc610d69565b73ffffffffffffffffffffffffffffffffffffffff1614610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a19906122c5565b60405180910390fd5b60005b8151811015610ab9576000828281518110610a4357610a426126d6565b5b602002602001015190506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080610ab190612600565b915050610a25565b5050565b600960019054906101000a900460ff1681565b610ad8611227565b73ffffffffffffffffffffffffffffffffffffffff16610af6610d69565b73ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b43906122c5565b60405180910390fd5b60005b8251811015610be3576000838281518110610b6d57610b6c6126d6565b5b602002602001015190506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080610bdb90612600565b915050610b4f565b5080600b819055505050565b610bf7611227565b73ffffffffffffffffffffffffffffffffffffffff16610c15610d69565b73ffffffffffffffffffffffffffffffffffffffff1614610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c62906122c5565b60405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600090565b610cdd611227565b73ffffffffffffffffffffffffffffffffffffffff16610cfb610d69565b73ffffffffffffffffffffffffffffffffffffffff1614610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d48906122c5565b60405180910390fd5b610d5b6000611633565b565b600a5481565b600b5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610da29061259d565b80601f0160208091040260200160405190810160405280929190818152602001828054610dce9061259d565b8015610e1b5780601f10610df057610100808354040283529160200191610e1b565b820191906000526020600020905b815481529060010190602001808311610dfe57829003601f168201915b5050505050905090565b60008060016000610e34611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890612345565b60405180910390fd5b610f05610efc611227565b8585840361122f565b600191505092915050565b600080610f1b611227565b9050600960019054906101000a900460ff1680610f7757507341f9bb7b93156d33af3077bb53fa1d3fbc7f0aeb73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80610fc157507341f9bb7b93156d33af3077bb53fa1d3fbc7f0aeb73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610fd657610fd084846113fa565b50610fed565b610fe1818585611510565b610feb84846113fa565b505b600191505092915050565b6000600960019054906101000a900460ff16905090565b611017611227565b73ffffffffffffffffffffffffffffffffffffffff16611035610d69565b73ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611082906122c5565b60405180910390fd5b80600b8190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611124611227565b73ffffffffffffffffffffffffffffffffffffffff16611142610d69565b73ffffffffffffffffffffffffffffffffffffffff1614611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f906122c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612245565b60405180910390fd5b61121181611633565b50565b600960009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690612305565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612265565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ed9190612365565b60405180910390a3505050565b600061140e611407611227565b84846116f9565b6001905092915050565b60006114258484846116f9565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611470611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e7906122a5565b60405180910390fd5b611504856114fc611227565b85840361122f565b60019150509392505050565b6001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90612205565b60405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612325565b60405180910390fd5b61161f8361197a565b61162e5761162d83826119d0565b5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611769576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611760906122e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d090612225565b60405180910390fd5b6117e4838383611af0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186190612285565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118fd9190612434565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119619190612365565b60405180910390a3611974848484611af5565b50505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006040518060600160405280603b8152602001612ade603b913990506000600b541115611a0757611a068383600b5484611afa565b5b600960009054906101000a900460ff1615611aeb576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611a6b85610c88565b9050600082118015611a7d5750600081115b15611ae85760006127108383611a9391906124bb565b611a9d919061248a565b9050808511158490611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc91906121e3565b60405180910390fd5b50505b50505b505050565b505050565b505050565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611bbf576000611b5685610c88565b905060006127108483611b6991906124bb565b611b73919061248a565b9050808511158390611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb291906121e3565b60405180910390fd5b5050505b50505050565b6000611bd8611bd3846123c0565b61239b565b90508083825260208201905082856020860282011115611bfb57611bfa612739565b5b60005b85811015611c2b5781611c118882611ca5565b845260208401935060208301925050600181019050611bfe565b5050509392505050565b6000611c48611c43846123ec565b61239b565b90508083825260208201905082856020860282011115611c6b57611c6a612739565b5b60005b85811015611c9b5781611c818882611d2b565b845260208401935060208301925050600181019050611c6e565b5050509392505050565b600081359050611cb481612a98565b92915050565b600082601f830112611ccf57611cce612734565b5b8135611cdf848260208601611bc5565b91505092915050565b600082601f830112611cfd57611cfc612734565b5b8135611d0d848260208601611c35565b91505092915050565b600081359050611d2581612aaf565b92915050565b600081359050611d3a81612ac6565b92915050565b600060208284031215611d5657611d55612743565b5b6000611d6484828501611ca5565b91505092915050565b60008060408385031215611d8457611d83612743565b5b6000611d9285828601611ca5565b9250506020611da385828601611ca5565b9150509250929050565b600080600060608486031215611dc657611dc5612743565b5b6000611dd486828701611ca5565b9350506020611de586828701611ca5565b9250506040611df686828701611d2b565b9150509250925092565b60008060408385031215611e1757611e16612743565b5b6000611e2585828601611ca5565b9250506020611e3685828601611d2b565b9150509250929050565b600060208284031215611e5657611e55612743565b5b600082013567ffffffffffffffff811115611e7457611e7361273e565b5b611e8084828501611cba565b91505092915050565b60008060408385031215611ea057611e9f612743565b5b600083013567ffffffffffffffff811115611ebe57611ebd61273e565b5b611eca85828601611cba565b925050602083013567ffffffffffffffff811115611eeb57611eea61273e565b5b611ef785828601611ce8565b9150509250929050565b60008060408385031215611f1857611f17612743565b5b600083013567ffffffffffffffff811115611f3657611f3561273e565b5b611f4285828601611cba565b9250506020611f5385828601611d2b565b9150509250929050565b600060208284031215611f7357611f72612743565b5b6000611f8184828501611d16565b91505092915050565b600060208284031215611fa057611f9f612743565b5b6000611fae84828501611d2b565b91505092915050565b611fc081612515565b82525050565b611fcf81612527565b82525050565b6000611fe082612418565b611fea8185612423565b9350611ffa81856020860161256a565b61200381612748565b840191505092915050565b600061201b603383612423565b915061202682612759565b604082019050919050565b600061203e602383612423565b9150612049826127a8565b604082019050919050565b6000612061602683612423565b915061206c826127f7565b604082019050919050565b6000612084602283612423565b915061208f82612846565b604082019050919050565b60006120a7602683612423565b91506120b282612895565b604082019050919050565b60006120ca602883612423565b91506120d5826128e4565b604082019050919050565b60006120ed602083612423565b91506120f882612933565b602082019050919050565b6000612110602583612423565b915061211b8261295c565b604082019050919050565b6000612133602483612423565b915061213e826129ab565b604082019050919050565b6000612156603883612423565b9150612161826129fa565b604082019050919050565b6000612179602583612423565b915061218482612a49565b604082019050919050565b61219881612553565b82525050565b6121a78161255d565b82525050565b60006020820190506121c26000830184611fb7565b92915050565b60006020820190506121dd6000830184611fc6565b92915050565b600060208201905081810360008301526121fd8184611fd5565b905092915050565b6000602082019050818103600083015261221e8161200e565b9050919050565b6000602082019050818103600083015261223e81612031565b9050919050565b6000602082019050818103600083015261225e81612054565b9050919050565b6000602082019050818103600083015261227e81612077565b9050919050565b6000602082019050818103600083015261229e8161209a565b9050919050565b600060208201905081810360008301526122be816120bd565b9050919050565b600060208201905081810360008301526122de816120e0565b9050919050565b600060208201905081810360008301526122fe81612103565b9050919050565b6000602082019050818103600083015261231e81612126565b9050919050565b6000602082019050818103600083015261233e81612149565b9050919050565b6000602082019050818103600083015261235e8161216c565b9050919050565b600060208201905061237a600083018461218f565b92915050565b6000602082019050612395600083018461219e565b92915050565b60006123a56123b6565b90506123b182826125cf565b919050565b6000604051905090565b600067ffffffffffffffff8211156123db576123da612705565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561240757612406612705565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061243f82612553565b915061244a83612553565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561247f5761247e612649565b5b828201905092915050565b600061249582612553565b91506124a083612553565b9250826124b0576124af612678565b5b828204905092915050565b60006124c682612553565b91506124d183612553565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561250a57612509612649565b5b828202905092915050565b600061252082612533565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561258857808201518184015260208101905061256d565b83811115612597576000848401525b50505050565b600060028204905060018216806125b557607f821691505b602082108114156125c9576125c86126a7565b5b50919050565b6125d882612748565b810181811067ffffffffffffffff821117156125f7576125f6612705565b5b80604052505050565b600061260b82612553565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561263e5761263d612649565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f596f75206172652063757272656e746c7920626c6f636b65642066726f6d207460008201527f72616e7366657272696e6720746f6b656e732e00000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722072656365697665722069732063757272656e746c7920626c6f636b60008201527f65642066726f6d20726563656976696e6720746f6b656e730000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612aa181612515565b8114612aac57600080fd5b50565b612ab881612527565b8114612ac357600080fd5b50565b612acf81612553565b8114612ada57600080fd5b5056fe596f75722073616c6520657863656564732074686520616d6f756e7420796f752061726520616c6c6f77656420617420746869732074696d652e20a264697066735822122087ff3f035ad22621f33b8d6f446ff0326c1f1d8effce378ad3b0123d6f4d0ef364736f6c63430008060033
Deployed Bytecode Sourcemap
26352:4856:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16211:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18378:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17331:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28004:339;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28617:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27493:501;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28487:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17173:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19930:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29317:240;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26612:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29006:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28351:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17502:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24800:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13615:94;;;:::i;:::-;;26655:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26704:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12964:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16430:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20648:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26970:515;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28756:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28874:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18080:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13864:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26569:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16211:100;16265:13;16298:5;16291:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16211:100;:::o;18378:169::-;18461:4;18478:39;18487:12;:10;:12::i;:::-;18501:7;18510:6;18478:8;:39::i;:::-;18535:4;18528:11;;18378:169;;;;:::o;17331:108::-;17392:7;17419:12;;17412:19;;17331:108;:::o;28004:339::-;28111:4;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28133:9:::1;28128:186;28152:9;:16;28148:1;:20;28128:186;;;28190:12;28205:9;28215:1;28205:12;;;;;;;;:::i;:::-;;;;;;;;28190:27;;28232:14;28249:7;28257:1;28249:10;;;;;;;;:::i;:::-;;;;;;;;28232:27;;28274:28;28289:4;28295:6;28274:14;:28::i;:::-;;28175:139;;28170:3;;;;;:::i;:::-;;;;28128:186;;;;28331:4;28324:11;;28004:339:::0;;;;:::o;28617:127::-;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28722:14:::1;28703:16;;:33;;;;;;;;;;;;;;;;;;28617:127:::0;:::o;27493:501::-;27592:4;27624:16;;;;;;;;;;;:81;;;;27662:42;27645:60;;:5;:60;;;27624:81;:143;;;;27724:42;27709:58;;:3;:58;;;27624:143;27620:345;;;27783:38;27802:5;27809:3;27814:6;27783:18;:38::i;:::-;;27620:345;;;27855:44;27880:5;27887:3;27892:6;27855:24;:44::i;:::-;27914:38;27933:5;27940:3;27945:6;27914:18;:38::i;:::-;;27620:345;27982:4;27975:11;;27493:501;;;;;:::o;28487:122::-;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28591:10:::1;28569:19;:32;;;;28487:122:::0;:::o;17173:93::-;17231:5;17256:2;17249:9;;17173:93;:::o;19930:215::-;20018:4;20035:80;20044:12;:10;:12::i;:::-;20058:7;20104:10;20067:11;:25;20079:12;:10;:12::i;:::-;20067:25;;;;;;;;;;;;;;;:34;20093:7;20067:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;20035:8;:80::i;:::-;20133:4;20126:11;;19930:215;;;;:::o;29317:240::-;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29411:9:::1;29406:144;29430:9;:16;29426:1;:20;29406:144;;;29468:12;29483:9;29493:1;29483:12;;;;;;;;:::i;:::-;;;;;;;;29468:27;;29532:5;29510:13;:19;29524:4;29510:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;29453:97;29448:3;;;;;:::i;:::-;;;;29406:144;;;;29317:240:::0;:::o;26612:36::-;;;;;;;;;;;;;:::o;29006:299::-;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29115:9:::1;29110:143;29134:9;:16;29130:1;:20;29110:143;;;29172:12;29187:9;29197:1;29187:12;;;;;;;;:::i;:::-;;;;;;;;29172:27;;29236:4;29214:13;:19;29228:4;29214:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;29157:96;29152:3;;;;;:::i;:::-;;;;29110:143;;;;29287:9;29264:20;:32;;;;29006:299:::0;;:::o;28351:128::-;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28458:13:::1;28438:17;;:33;;;;;;;;;;;;;;;;;;28351:128:::0;:::o;17502:127::-;17576:7;17603:9;:18;17613:7;17603:18;;;;;;;;;;;;;;;;17596:25;;17502:127;;;:::o;24800:90::-;24847:7;24800:90;:::o;13615:94::-;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13680:21:::1;13698:1;13680:9;:21::i;:::-;13615:94::o:0;26655:42::-;;;;:::o;26704:35::-;;;;:::o;12964:87::-;13010:7;13037:6;;;;;;;;;;;13030:13;;12964:87;:::o;16430:104::-;16486:13;16519:7;16512:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16430:104;:::o;20648:413::-;20741:4;20758:24;20785:11;:25;20797:12;:10;:12::i;:::-;20785:25;;;;;;;;;;;;;;;:34;20811:7;20785:34;;;;;;;;;;;;;;;;20758:61;;20858:15;20838:16;:35;;20830:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;20951:67;20960:12;:10;:12::i;:::-;20974:7;21002:15;20983:16;:34;20951:8;:67::i;:::-;21049:4;21042:11;;;20648:413;;;;:::o;26970:515::-;27050:4;27067:13;27083:12;:10;:12::i;:::-;27067:28;;27110:16;;;;;;;;;;;:81;;;;27148:42;27131:60;;:5;:60;;;27110:81;:143;;;;27210:42;27195:58;;:3;:58;;;27110:143;27106:350;;;27270:27;27285:3;27290:6;27270:14;:27::i;:::-;;27106:350;;;27344:44;27369:5;27376:3;27381:6;27344:24;:44::i;:::-;27403:27;27418:3;27423:6;27403:14;:27::i;:::-;;27106:350;27473:4;27466:11;;;26970:515;;;;:::o;28756:106::-;28814:4;28838:16;;;;;;;;;;;28831:23;;28756:106;:::o;28874:124::-;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28980:10:::1;28957:20;:33;;;;28874:124:::0;:::o;18080:151::-;18169:7;18196:11;:18;18208:5;18196:18;;;;;;;;;;;;;;;:27;18215:7;18196:27;;;;;;;;;;;;;;;;18189:34;;18080:151;;;;:::o;13864:192::-;13195:12;:10;:12::i;:::-;13184:23;;:7;:5;:7::i;:::-;:23;;;13176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13973:1:::1;13953:22;;:8;:22;;;;13945:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14029:19;14039:8;14029:9;:19::i;:::-;13864:192:::0;:::o;26569:36::-;;;;;;;;;;;;;:::o;11840:98::-;11893:7;11920:10;11913:17;;11840:98;:::o;24412:380::-;24565:1;24548:19;;:5;:19;;;;24540:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24646:1;24627:21;;:7;:21;;;;24619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24730:6;24700:11;:18;24712:5;24700:18;;;;;;;;;;;;;;;:27;24719:7;24700:27;;;;;;;;;;;;;;;:36;;;;24768:7;24752:32;;24761:5;24752:32;;;24777:6;24752:32;;;;;;:::i;:::-;;;;;;;;24412:380;;;:::o;17842:175::-;17928:4;17945:42;17955:12;:10;:12::i;:::-;17969:9;17980:6;17945:9;:42::i;:::-;18005:4;17998:11;;17842:175;;;;:::o;19029:492::-;19169:4;19186:36;19196:6;19204:9;19215:6;19186:9;:36::i;:::-;19235:24;19262:11;:19;19274:6;19262:19;;;;;;;;;;;;;;;:33;19282:12;:10;:12::i;:::-;19262:33;;;;;;;;;;;;;;;;19235:60;;19334:6;19314:16;:26;;19306:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19421:57;19430:6;19438:12;:10;:12::i;:::-;19471:6;19452:16;:25;19421:8;:57::i;:::-;19509:4;19502:11;;;19029:492;;;;;:::o;30782:423::-;30924:1;30896:17;:24;30914:5;30896:24;;;;;;;;;;;;;;;;:29;;30888:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;31026:1;31000:17;:22;31018:3;31000:22;;;;;;;;;;;;;;;;:27;;30992:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;31106:19;31119:5;31106:12;:19::i;:::-;31102:96;;31142:38;31166:5;31173:6;31142:23;:38::i;:::-;31102:96;30782:423;;;:::o;14064:173::-;14120:16;14139:6;;;;;;;;;;;14120:25;;14165:8;14156:6;;:17;;;;;;;;;;;;;;;;;;14220:8;14189:40;;14210:8;14189:40;;;;;;;;;;;;14109:128;14064:173;:::o;21551:733::-;21709:1;21691:20;;:6;:20;;;;21683:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;21793:1;21772:23;;:9;:23;;;;21764:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21848:47;21869:6;21877:9;21888:6;21848:20;:47::i;:::-;21908:21;21932:9;:17;21942:6;21932:17;;;;;;;;;;;;;;;;21908:41;;21985:6;21968:13;:23;;21960:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;22106:6;22090:13;:22;22070:9;:17;22080:6;22070:17;;;;;;;;;;;;;;;:42;;;;22158:6;22134:9;:20;22144:9;22134:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;22199:9;22182:35;;22191:6;22182:35;;;22210:6;22182:35;;;;;;:::i;:::-;;;;;;;;22230:46;22250:6;22258:9;22269:6;22230:19;:46::i;:::-;21672:612;21551:733;;;:::o;30632:142::-;30693:4;30716:13;:19;30730:4;30716:19;;;;;;;;;;;;;;;;;;;;;;;;;30709:26;;30632:142;;;:::o;29571:685::-;29672:21;:85;;;;;;;;;;;;;;;;;;;29794:1;29771:20;;:24;29768:121;;;29813:64;29833:4;29839:6;29847:20;;29869:7;29813:19;:64::i;:::-;29768:121;29902:17;;;;;;;;;;;29899:350;;;29936:18;29958:19;:25;29978:4;29958:25;;;;;;;;;;;;;;;;29936:47;;29998:19;30020:21;30036:4;30020:15;:21::i;:::-;29998:43;;30072:1;30059:10;:14;:33;;;;;30091:1;30077:11;:15;30059:33;30056:182;;;30113:17;30161:5;30148:10;30134:11;:24;;;;:::i;:::-;30133:33;;;;:::i;:::-;30113:53;;30203:9;30193:6;:19;;30214:7;30185:37;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;30094:144;30056:182;29921:328;;29899:350;29651:605;29571:685;;:::o;25490:125::-;;;;:::o;26219:124::-;;;;:::o;30268:352::-;30402:13;:19;30416:4;30402:19;;;;;;;;;;;;;;;;;;;;;;;;;30398:215;;30438:19;30460:21;30476:4;30460:15;:21::i;:::-;30438:43;;30496:17;30544:5;30531:10;30517:11;:24;;;;:::i;:::-;30516:33;;;;:::i;:::-;30496:53;;30582:9;30572:6;:19;;30593:7;30564:37;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;30423:190;;30398:215;30268:352;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;769:722::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:2;;;1149:79;;:::i;:::-;1095:2;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;;;;;;:::o;1497:139::-;1543:5;1581:6;1568:20;1559:29;;1597:33;1624:5;1597:33;:::i;:::-;1549:87;;;;:::o;1659:370::-;1730:5;1779:3;1772:4;1764:6;1760:17;1756:27;1746:2;;1787:79;;:::i;:::-;1746:2;1904:6;1891:20;1929:94;2019:3;2011:6;2004:4;1996:6;1992:17;1929:94;:::i;:::-;1920:103;;1736:293;;;;;:::o;2052:370::-;2123:5;2172:3;2165:4;2157:6;2153:17;2149:27;2139:2;;2180:79;;:::i;:::-;2139:2;2297:6;2284:20;2322:94;2412:3;2404:6;2397:4;2389:6;2385:17;2322:94;:::i;:::-;2313:103;;2129:293;;;;;:::o;2428:133::-;2471:5;2509:6;2496:20;2487:29;;2525:30;2549:5;2525:30;:::i;:::-;2477:84;;;;:::o;2567:139::-;2613:5;2651:6;2638:20;2629:29;;2667:33;2694:5;2667:33;:::i;:::-;2619:87;;;;:::o;2712:329::-;2771:6;2820:2;2808:9;2799:7;2795:23;2791:32;2788:2;;;2826:79;;:::i;:::-;2788:2;2946:1;2971:53;3016:7;3007:6;2996:9;2992:22;2971:53;:::i;:::-;2961:63;;2917:117;2778:263;;;;:::o;3047:474::-;3115:6;3123;3172:2;3160:9;3151:7;3147:23;3143:32;3140:2;;;3178:79;;:::i;:::-;3140:2;3298:1;3323:53;3368:7;3359:6;3348:9;3344:22;3323:53;:::i;:::-;3313:63;;3269:117;3425:2;3451:53;3496:7;3487:6;3476:9;3472:22;3451:53;:::i;:::-;3441:63;;3396:118;3130:391;;;;;:::o;3527:619::-;3604:6;3612;3620;3669:2;3657:9;3648:7;3644:23;3640:32;3637:2;;;3675:79;;:::i;:::-;3637:2;3795:1;3820:53;3865:7;3856:6;3845:9;3841:22;3820:53;:::i;:::-;3810:63;;3766:117;3922:2;3948:53;3993:7;3984:6;3973:9;3969:22;3948:53;:::i;:::-;3938:63;;3893:118;4050:2;4076:53;4121:7;4112:6;4101:9;4097:22;4076:53;:::i;:::-;4066:63;;4021:118;3627:519;;;;;:::o;4152:474::-;4220:6;4228;4277:2;4265:9;4256:7;4252:23;4248:32;4245:2;;;4283:79;;:::i;:::-;4245:2;4403:1;4428:53;4473:7;4464:6;4453:9;4449:22;4428:53;:::i;:::-;4418:63;;4374:117;4530:2;4556:53;4601:7;4592:6;4581:9;4577:22;4556:53;:::i;:::-;4546:63;;4501:118;4235:391;;;;;:::o;4632:539::-;4716:6;4765:2;4753:9;4744:7;4740:23;4736:32;4733:2;;;4771:79;;:::i;:::-;4733:2;4919:1;4908:9;4904:17;4891:31;4949:18;4941:6;4938:30;4935:2;;;4971:79;;:::i;:::-;4935:2;5076:78;5146:7;5137:6;5126:9;5122:22;5076:78;:::i;:::-;5066:88;;4862:302;4723:448;;;;:::o;5177:894::-;5295:6;5303;5352:2;5340:9;5331:7;5327:23;5323:32;5320:2;;;5358:79;;:::i;:::-;5320:2;5506:1;5495:9;5491:17;5478:31;5536:18;5528:6;5525:30;5522:2;;;5558:79;;:::i;:::-;5522:2;5663:78;5733:7;5724:6;5713:9;5709:22;5663:78;:::i;:::-;5653:88;;5449:302;5818:2;5807:9;5803:18;5790:32;5849:18;5841:6;5838:30;5835:2;;;5871:79;;:::i;:::-;5835:2;5976:78;6046:7;6037:6;6026:9;6022:22;5976:78;:::i;:::-;5966:88;;5761:303;5310:761;;;;;:::o;6077:684::-;6170:6;6178;6227:2;6215:9;6206:7;6202:23;6198:32;6195:2;;;6233:79;;:::i;:::-;6195:2;6381:1;6370:9;6366:17;6353:31;6411:18;6403:6;6400:30;6397:2;;;6433:79;;:::i;:::-;6397:2;6538:78;6608:7;6599:6;6588:9;6584:22;6538:78;:::i;:::-;6528:88;;6324:302;6665:2;6691:53;6736:7;6727:6;6716:9;6712:22;6691:53;:::i;:::-;6681:63;;6636:118;6185:576;;;;;:::o;6767:323::-;6823:6;6872:2;6860:9;6851:7;6847:23;6843:32;6840:2;;;6878:79;;:::i;:::-;6840:2;6998:1;7023:50;7065:7;7056:6;7045:9;7041:22;7023:50;:::i;:::-;7013:60;;6969:114;6830:260;;;;:::o;7096:329::-;7155:6;7204:2;7192:9;7183:7;7179:23;7175:32;7172:2;;;7210:79;;:::i;:::-;7172:2;7330:1;7355:53;7400:7;7391:6;7380:9;7376:22;7355:53;:::i;:::-;7345:63;;7301:117;7162:263;;;;:::o;7431:118::-;7518:24;7536:5;7518:24;:::i;:::-;7513:3;7506:37;7496:53;;:::o;7555:109::-;7636:21;7651:5;7636:21;:::i;:::-;7631:3;7624:34;7614:50;;:::o;7670:364::-;7758:3;7786:39;7819:5;7786:39;:::i;:::-;7841:71;7905:6;7900:3;7841:71;:::i;:::-;7834:78;;7921:52;7966:6;7961:3;7954:4;7947:5;7943:16;7921:52;:::i;:::-;7998:29;8020:6;7998:29;:::i;:::-;7993:3;7989:39;7982:46;;7762:272;;;;;:::o;8040:366::-;8182:3;8203:67;8267:2;8262:3;8203:67;:::i;:::-;8196:74;;8279:93;8368:3;8279:93;:::i;:::-;8397:2;8392:3;8388:12;8381:19;;8186:220;;;:::o;8412:366::-;8554:3;8575:67;8639:2;8634:3;8575:67;:::i;:::-;8568:74;;8651:93;8740:3;8651:93;:::i;:::-;8769:2;8764:3;8760:12;8753:19;;8558:220;;;:::o;8784:366::-;8926:3;8947:67;9011:2;9006:3;8947:67;:::i;:::-;8940:74;;9023:93;9112:3;9023:93;:::i;:::-;9141:2;9136:3;9132:12;9125:19;;8930:220;;;:::o;9156:366::-;9298:3;9319:67;9383:2;9378:3;9319:67;:::i;:::-;9312:74;;9395:93;9484:3;9395:93;:::i;:::-;9513:2;9508:3;9504:12;9497:19;;9302:220;;;:::o;9528:366::-;9670:3;9691:67;9755:2;9750:3;9691:67;:::i;:::-;9684:74;;9767:93;9856:3;9767:93;:::i;:::-;9885:2;9880:3;9876:12;9869:19;;9674:220;;;:::o;9900:366::-;10042:3;10063:67;10127:2;10122:3;10063:67;:::i;:::-;10056:74;;10139:93;10228:3;10139:93;:::i;:::-;10257:2;10252:3;10248:12;10241:19;;10046:220;;;:::o;10272:366::-;10414:3;10435:67;10499:2;10494:3;10435:67;:::i;:::-;10428:74;;10511:93;10600:3;10511:93;:::i;:::-;10629:2;10624:3;10620:12;10613:19;;10418:220;;;:::o;10644:366::-;10786:3;10807:67;10871:2;10866:3;10807:67;:::i;:::-;10800:74;;10883:93;10972:3;10883:93;:::i;:::-;11001:2;10996:3;10992:12;10985:19;;10790:220;;;:::o;11016:366::-;11158:3;11179:67;11243:2;11238:3;11179:67;:::i;:::-;11172:74;;11255:93;11344:3;11255:93;:::i;:::-;11373:2;11368:3;11364:12;11357:19;;11162:220;;;:::o;11388:366::-;11530:3;11551:67;11615:2;11610:3;11551:67;:::i;:::-;11544:74;;11627:93;11716:3;11627:93;:::i;:::-;11745:2;11740:3;11736:12;11729:19;;11534:220;;;:::o;11760:366::-;11902:3;11923:67;11987:2;11982:3;11923:67;:::i;:::-;11916:74;;11999:93;12088:3;11999:93;:::i;:::-;12117:2;12112:3;12108:12;12101:19;;11906:220;;;:::o;12132:118::-;12219:24;12237:5;12219:24;:::i;:::-;12214:3;12207:37;12197:53;;:::o;12256:112::-;12339:22;12355:5;12339:22;:::i;:::-;12334:3;12327:35;12317:51;;:::o;12374:222::-;12467:4;12505:2;12494:9;12490:18;12482:26;;12518:71;12586:1;12575:9;12571:17;12562:6;12518:71;:::i;:::-;12472:124;;;;:::o;12602:210::-;12689:4;12727:2;12716:9;12712:18;12704:26;;12740:65;12802:1;12791:9;12787:17;12778:6;12740:65;:::i;:::-;12694:118;;;;:::o;12818:313::-;12931:4;12969:2;12958:9;12954:18;12946:26;;13018:9;13012:4;13008:20;13004:1;12993:9;12989:17;12982:47;13046:78;13119:4;13110:6;13046:78;:::i;:::-;13038:86;;12936:195;;;;:::o;13137:419::-;13303:4;13341:2;13330:9;13326:18;13318:26;;13390:9;13384:4;13380:20;13376:1;13365:9;13361:17;13354:47;13418:131;13544:4;13418:131;:::i;:::-;13410:139;;13308:248;;;:::o;13562:419::-;13728:4;13766:2;13755:9;13751:18;13743:26;;13815:9;13809:4;13805:20;13801:1;13790:9;13786:17;13779:47;13843:131;13969:4;13843:131;:::i;:::-;13835:139;;13733:248;;;:::o;13987:419::-;14153:4;14191:2;14180:9;14176:18;14168:26;;14240:9;14234:4;14230:20;14226:1;14215:9;14211:17;14204:47;14268:131;14394:4;14268:131;:::i;:::-;14260:139;;14158:248;;;:::o;14412:419::-;14578:4;14616:2;14605:9;14601:18;14593:26;;14665:9;14659:4;14655:20;14651:1;14640:9;14636:17;14629:47;14693:131;14819:4;14693:131;:::i;:::-;14685:139;;14583:248;;;:::o;14837:419::-;15003:4;15041:2;15030:9;15026:18;15018:26;;15090:9;15084:4;15080:20;15076:1;15065:9;15061:17;15054:47;15118:131;15244:4;15118:131;:::i;:::-;15110:139;;15008:248;;;:::o;15262:419::-;15428:4;15466:2;15455:9;15451:18;15443:26;;15515:9;15509:4;15505:20;15501:1;15490:9;15486:17;15479:47;15543:131;15669:4;15543:131;:::i;:::-;15535:139;;15433:248;;;:::o;15687:419::-;15853:4;15891:2;15880:9;15876:18;15868:26;;15940:9;15934:4;15930:20;15926:1;15915:9;15911:17;15904:47;15968:131;16094:4;15968:131;:::i;:::-;15960:139;;15858:248;;;:::o;16112:419::-;16278:4;16316:2;16305:9;16301:18;16293:26;;16365:9;16359:4;16355:20;16351:1;16340:9;16336:17;16329:47;16393:131;16519:4;16393:131;:::i;:::-;16385:139;;16283:248;;;:::o;16537:419::-;16703:4;16741:2;16730:9;16726:18;16718:26;;16790:9;16784:4;16780:20;16776:1;16765:9;16761:17;16754:47;16818:131;16944:4;16818:131;:::i;:::-;16810:139;;16708:248;;;:::o;16962:419::-;17128:4;17166:2;17155:9;17151:18;17143:26;;17215:9;17209:4;17205:20;17201:1;17190:9;17186:17;17179:47;17243:131;17369:4;17243:131;:::i;:::-;17235:139;;17133:248;;;:::o;17387:419::-;17553:4;17591:2;17580:9;17576:18;17568:26;;17640:9;17634:4;17630:20;17626:1;17615:9;17611:17;17604:47;17668:131;17794:4;17668:131;:::i;:::-;17660:139;;17558:248;;;:::o;17812:222::-;17905:4;17943:2;17932:9;17928:18;17920:26;;17956:71;18024:1;18013:9;18009:17;18000:6;17956:71;:::i;:::-;17910:124;;;;:::o;18040:214::-;18129:4;18167:2;18156:9;18152:18;18144:26;;18180:67;18244:1;18233:9;18229:17;18220:6;18180:67;:::i;:::-;18134:120;;;;:::o;18260:129::-;18294:6;18321:20;;:::i;:::-;18311:30;;18350:33;18378:4;18370:6;18350:33;:::i;:::-;18301:88;;;:::o;18395:75::-;18428:6;18461:2;18455:9;18445:19;;18435:35;:::o;18476:311::-;18553:4;18643:18;18635:6;18632:30;18629:2;;;18665:18;;:::i;:::-;18629:2;18715:4;18707:6;18703:17;18695:25;;18775:4;18769;18765:15;18757:23;;18558:229;;;:::o;18793:311::-;18870:4;18960:18;18952:6;18949:30;18946:2;;;18982:18;;:::i;:::-;18946:2;19032:4;19024:6;19020:17;19012:25;;19092:4;19086;19082:15;19074:23;;18875:229;;;:::o;19110:99::-;19162:6;19196:5;19190:12;19180:22;;19169:40;;;:::o;19215:169::-;19299:11;19333:6;19328:3;19321:19;19373:4;19368:3;19364:14;19349:29;;19311:73;;;;:::o;19390:305::-;19430:3;19449:20;19467:1;19449:20;:::i;:::-;19444:25;;19483:20;19501:1;19483:20;:::i;:::-;19478:25;;19637:1;19569:66;19565:74;19562:1;19559:81;19556:2;;;19643:18;;:::i;:::-;19556:2;19687:1;19684;19680:9;19673:16;;19434:261;;;;:::o;19701:185::-;19741:1;19758:20;19776:1;19758:20;:::i;:::-;19753:25;;19792:20;19810:1;19792:20;:::i;:::-;19787:25;;19831:1;19821:2;;19836:18;;:::i;:::-;19821:2;19878:1;19875;19871:9;19866:14;;19743:143;;;;:::o;19892:348::-;19932:7;19955:20;19973:1;19955:20;:::i;:::-;19950:25;;19989:20;20007:1;19989:20;:::i;:::-;19984:25;;20177:1;20109:66;20105:74;20102:1;20099:81;20094:1;20087:9;20080:17;20076:105;20073:2;;;20184:18;;:::i;:::-;20073:2;20232:1;20229;20225:9;20214:20;;19940:300;;;;:::o;20246:96::-;20283:7;20312:24;20330:5;20312:24;:::i;:::-;20301:35;;20291:51;;;:::o;20348:90::-;20382:7;20425:5;20418:13;20411:21;20400:32;;20390:48;;;:::o;20444:126::-;20481:7;20521:42;20514:5;20510:54;20499:65;;20489:81;;;:::o;20576:77::-;20613:7;20642:5;20631:16;;20621:32;;;:::o;20659:86::-;20694:7;20734:4;20727:5;20723:16;20712:27;;20702:43;;;:::o;20751:307::-;20819:1;20829:113;20843:6;20840:1;20837:13;20829:113;;;20928:1;20923:3;20919:11;20913:18;20909:1;20904:3;20900:11;20893:39;20865:2;20862:1;20858:10;20853:15;;20829:113;;;20960:6;20957:1;20954:13;20951:2;;;21040:1;21031:6;21026:3;21022:16;21015:27;20951:2;20800:258;;;;:::o;21064:320::-;21108:6;21145:1;21139:4;21135:12;21125:22;;21192:1;21186:4;21182:12;21213:18;21203:2;;21269:4;21261:6;21257:17;21247:27;;21203:2;21331;21323:6;21320:14;21300:18;21297:38;21294:2;;;21350:18;;:::i;:::-;21294:2;21115:269;;;;:::o;21390:281::-;21473:27;21495:4;21473:27;:::i;:::-;21465:6;21461:40;21603:6;21591:10;21588:22;21567:18;21555:10;21552:34;21549:62;21546:2;;;21614:18;;:::i;:::-;21546:2;21654:10;21650:2;21643:22;21433:238;;;:::o;21677:233::-;21716:3;21739:24;21757:5;21739:24;:::i;:::-;21730:33;;21785:66;21778:5;21775:77;21772:2;;;21855:18;;:::i;:::-;21772:2;21902:1;21895:5;21891:13;21884:20;;21720:190;;;:::o;21916:180::-;21964:77;21961:1;21954:88;22061:4;22058:1;22051:15;22085:4;22082:1;22075:15;22102:180;22150:77;22147:1;22140:88;22247:4;22244:1;22237:15;22271:4;22268:1;22261:15;22288:180;22336:77;22333:1;22326:88;22433:4;22430:1;22423:15;22457:4;22454:1;22447:15;22474:180;22522:77;22519:1;22512:88;22619:4;22616:1;22609:15;22643:4;22640:1;22633:15;22660:180;22708:77;22705:1;22698:88;22805:4;22802:1;22795:15;22829:4;22826:1;22819:15;22846:117;22955:1;22952;22945:12;22969:117;23078:1;23075;23068:12;23092:117;23201:1;23198;23191:12;23215:117;23324:1;23321;23314:12;23338:102;23379:6;23430:2;23426:7;23421:2;23414:5;23410:14;23406:28;23396:38;;23386:54;;;:::o;23446:238::-;23586:34;23582:1;23574:6;23570:14;23563:58;23655:21;23650:2;23642:6;23638:15;23631:46;23552:132;:::o;23690:222::-;23830:34;23826:1;23818:6;23814:14;23807:58;23899:5;23894:2;23886:6;23882:15;23875:30;23796:116;:::o;23918:225::-;24058:34;24054:1;24046:6;24042:14;24035:58;24127:8;24122:2;24114:6;24110:15;24103:33;24024:119;:::o;24149:221::-;24289:34;24285:1;24277:6;24273:14;24266:58;24358:4;24353:2;24345:6;24341:15;24334:29;24255:115;:::o;24376:225::-;24516:34;24512:1;24504:6;24500:14;24493:58;24585:8;24580:2;24572:6;24568:15;24561:33;24482:119;:::o;24607:227::-;24747:34;24743:1;24735:6;24731:14;24724:58;24816:10;24811:2;24803:6;24799:15;24792:35;24713:121;:::o;24840:182::-;24980:34;24976:1;24968:6;24964:14;24957:58;24946:76;:::o;25028:224::-;25168:34;25164:1;25156:6;25152:14;25145:58;25237:7;25232:2;25224:6;25220:15;25213:32;25134:118;:::o;25258:223::-;25398:34;25394:1;25386:6;25382:14;25375:58;25467:6;25462:2;25454:6;25450:15;25443:31;25364:117;:::o;25487:243::-;25627:34;25623:1;25615:6;25611:14;25604:58;25696:26;25691:2;25683:6;25679:15;25672:51;25593:137;:::o;25736:224::-;25876:34;25872:1;25864:6;25860:14;25853:58;25945:7;25940:2;25932:6;25928:15;25921:32;25842:118;:::o;25966:122::-;26039:24;26057:5;26039:24;:::i;:::-;26032:5;26029:35;26019:2;;26078:1;26075;26068:12;26019:2;26009:79;:::o;26094:116::-;26164:21;26179:5;26164:21;:::i;:::-;26157:5;26154:32;26144:2;;26200:1;26197;26190:12;26144:2;26134:76;:::o;26216:122::-;26289:24;26307:5;26289:24;:::i;:::-;26282:5;26279:35;26269:2;;26328:1;26325;26318:12;26269:2;26259:79;:::o
Swarm Source
ipfs://87ff3f035ad22621f33b8d6f446ff0326c1f1d8effce378ad3b0123d6f4d0ef3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.