ERC-20
Overview
Max Total Supply
8,000,000,000 IBOX
Holders
2,536
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
IBOXToken
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-26 */ pragma solidity 0.5.16; interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the token decimals. */ function decimals() external view returns (uint8); /** * @dev Returns the token symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the token name. */ function name() external view returns (string memory); /** * @dev Returns the bep token owner. */ function getOwner() external view returns (address); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address _owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view 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 onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = 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 onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract IBOXToken is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => bool) public _whitelist; mapping (address => bool) public _blackHole; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; uint8 public _decimals; string public _symbol; string public _name; address public _devWallet; address public uniswapV2Pair; uint256 public oneWeek = 7 days; uint256 public startTime = 1692451800; bool public robotKill = true; uint256 public RELEASE_AMOUNT = 10000 *10**18; struct UserOLD { bool ISOLD; uint256 tokenAmount; } mapping (address => UserOLD) public userTokenOLD; constructor() public { _name = "IBOX TOKEN"; _symbol = "IBOX"; _decimals = 18; _totalSupply = 8000000000 * 10**18; _balances[msg.sender] = _totalSupply; _devWallet = msg.sender; emit Transfer(address(0), msg.sender, _totalSupply); } function setwhitelist(address _addr,bool _is) public onlyOwner() { _whitelist[_addr] = _is; } function setblackHole(address[] memory _addr,bool _is) public onlyOwner() { for (uint256 i = 0; i < _addr.length; i++) { _blackHole[_addr[i]] = _is; } } /** * @dev Returns the bep token owner. */ function getOwner() external view returns (address) { return owner(); } /** * @dev Returns the token decimals. */ function decimals() external view returns (uint8) { return _decimals; } /** * @dev Returns the token symbol. */ function symbol() external view returns (string memory) { return _symbol; } /** * @dev Returns the token name. */ function name() external view returns (string memory) { return _name; } /** * @dev See {ERC20-totalSupply}. */ function totalSupply() external view returns (uint256) { return _totalSupply; } /** * @dev See {ERC20-balanceOf}. */ function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) external returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) external view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(!_blackHole[sender], "ERC20: Problem with address"); UserOLD storage user = userTokenOLD[sender]; if (user.ISOLD){ uint256 freedAmount; if ( block.timestamp < startTime) { freedAmount = 0; }else { uint256 freedCount = (block.timestamp - startTime) / oneWeek; freedAmount = freedCount * RELEASE_AMOUNT; } if (user.tokenAmount > freedAmount ){ uint256 NoFreedAmount = user.tokenAmount - freedAmount; uint256 userAmount = balanceOf(sender); require(userAmount >= NoFreedAmount + amount, "ERC20: Not enough releases"); } } if (_whitelist[sender]){ _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); }else{ if (recipient == uniswapV2Pair && robotKill ){ _transferSellExcluded(sender,recipient,amount); }else { _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } } } function getUserFreedAmount () public view returns (uint256) { uint256 freedAmount; if ( block.timestamp < startTime) { freedAmount = 0; }else { uint256 freedCount = (block.timestamp - startTime ) / oneWeek; freedAmount = freedCount * RELEASE_AMOUNT ; } return freedAmount; } function _transferSellExcluded(address sender, address recipient, uint256 amount) private { uint256 taxAmount = (amount * 90) / 100; uint256 transferAmount = amount - taxAmount; _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(transferAmount); emit Transfer(sender, recipient, transferAmount); _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(sender, address(this), taxAmount); } function _approve(address owner, address spender, uint256 amount) internal { 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 setStarrtTime(uint256 _startTime) public onlyOwner() { startTime = _startTime; } function setuniswapPair(address _uniswapV2Pair) public onlyOwner() { uniswapV2Pair = _uniswapV2Pair; } function setRobotKill(bool _robotKill) public onlyOwner() { robotKill = _robotKill; } function withdrawToken(IERC20 reward, uint256 amount) public{ require(msg.sender == _devWallet, "denied"); reward.transfer(msg.sender, amount); } function withdraw()public{ require(msg.sender == _devWallet, "denied"); msg.sender.transfer(address(this).balance); } function setUser(address[] memory _user,uint256[] memory _amount) public { require(msg.sender == _devWallet, "denied"); for (uint256 i = 0; i < _user.length; i++) { UserOLD storage user = userTokenOLD[_user[i]]; user.ISOLD= true; user.tokenAmount = _amount[i]; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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"},{"constant":true,"inputs":[],"name":"RELEASE_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blackHole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUserFreedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oneWeek","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"robotKill","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_robotKill","type":"bool"}],"name":"setRobotKill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStarrtTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_user","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"setUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_addr","type":"address[]"},{"internalType":"bool","name":"_is","type":"bool"}],"name":"setblackHole","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setuniswapPair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_is","type":"bool"}],"name":"setwhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userTokenOLD","outputs":[{"internalType":"bool","name":"ISOLD","type":"bool"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"reward","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405262093a80600b556364e0c3d8600c556001600d60006101000a81548160ff02191690831515021790555069021e19e0c9bab2400000600e553480156200004957600080fd5b5060006200005c620002ba60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600a81526020017f49424f5820544f4b454e000000000000000000000000000000000000000000008152506008908051906020019062000147929190620002c2565b506040518060400160405280600481526020017f49424f58000000000000000000000000000000000000000000000000000000008152506007908051906020019062000195929190620002c2565b506012600660006101000a81548160ff021916908360ff1602179055506b19d971e4fe8401e740000000600581905550600554600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a362000371565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200030557805160ff191683800117855562000336565b8280016001018555821562000336579182015b828111156200033557825182559160200191906001019062000318565b5b50905062000345919062000349565b5090565b6200036e91905b808211156200036a57600081600090555060010162000350565b5090565b90565b6130ea80620003816000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806378e9792511610125578063b670a25a116100ad578063d462cc1b1161007c578063d462cc1b14610bb2578063d8cfad9f14610be0578063dd62ed3e14610d2c578063e816c32c14610da4578063f2fde38b14610dc25761021c565b8063b670a25a146109f1578063c272634f14610a0f578063cfdb63ac14610ad3578063d28d885214610b2f5761021c565b80639e281a98116100f45780639e281a98146107f1578063a0c60d831461083f578063a457c2d7146108a2578063a9059cbb14610908578063b09f12661461096e5761021c565b806378e97925146106bc578063893d20e8146106da5780638da5cb5b1461072457806395d89b411461076e5761021c565b806339509351116101a857806346c678431161017757806346c67843146105c257806349bd5a5e146105e0578063692506b71461062a57806370a082311461065a578063715018a6146106b25761021c565b806339509351146104ec5780633ad0dad3146105525780633ccfd60b1461059657806344946800146105a05761021c565b806318160ddd116101ef57806318160ddd146103a4578063224da3ab146103c257806323b872dd1461041e578063313ce567146104a457806332424aa3146104c85761021c565b806306fdde0314610221578063095ea7b3146102a45780630bf74b721461030a57806311a63e171461035a575b600080fd5b610229610e06565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026957808201518184015260208101905061024e565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f0600480360360408110156102ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ea8565b604051808215151515815260200191505060405180910390f35b6103586004803603604081101561032057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ec6565b005b610362610fea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103ac611010565b6040518082815260200191505060405180910390f35b610404600480360360208110156103d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061101a565b604051808215151515815260200191505060405180910390f35b61048a6004803603606081101561043457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103a565b604051808215151515815260200191505060405180910390f35b6104ac611113565b604051808260ff1660ff16815260200191505060405180910390f35b6104d061112a565b604051808260ff1660ff16815260200191505060405180910390f35b6105386004803603604081101561050257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061113d565b604051808215151515815260200191505060405180910390f35b6105946004803603602081101561056857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f0565b005b61059e6112fd565b005b6105a8611409565b604051808215151515815260200191505060405180910390f35b6105ca61141c565b6040518082815260200191505060405180910390f35b6105e8611422565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106586004803603602081101561064057600080fd5b81019080803515159060200190929190505050611448565b005b61069c6004803603602081101561067057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061152e565b6040518082815260200191505060405180910390f35b6106ba611577565b005b6106c46116ff565b6040518082815260200191505060405180910390f35b6106e2611705565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61072c611714565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61077661173d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107b657808201518184015260208101905061079b565b50505050905090810190601f1680156107e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61083d6004803603604081101561080757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117df565b005b6108816004803603602081101561085557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611969565b60405180831515151581526020018281526020019250505060405180910390f35b6108ee600480360360408110156108b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061199a565b604051808215151515815260200191505060405180910390f35b6109546004803603604081101561091e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a67565b604051808215151515815260200191505060405180910390f35b610976611a85565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109b657808201518184015260208101905061099b565b50505050905090810190601f1680156109e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109f9611b23565b6040518082815260200191505060405180910390f35b610ad160048036036040811015610a2557600080fd5b8101908080359060200190640100000000811115610a4257600080fd5b820183602082011115610a5457600080fd5b80359060200191846020830284011164010000000083111715610a7657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803515159060200190929190505050611b5d565b005b610b1560048036036020811015610ae957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cb1565b604051808215151515815260200191505060405180910390f35b610b37611cd1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b77578082015181840152602081019050610b5c565b50505050905090810190601f168015610ba45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610bde60048036036020811015610bc857600080fd5b8101908080359060200190929190505050611d6f565b005b610d2a60048036036040811015610bf657600080fd5b8101908080359060200190640100000000811115610c1357600080fd5b820183602082011115610c2557600080fd5b80359060200191846020830284011164010000000083111715610c4757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ca757600080fd5b820183602082011115610cb957600080fd5b80359060200191846020830284011164010000000083111715610cdb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611e42565b005b610d8e60048036036040811015610d4257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fb6565b6040518082815260200191505060405180910390f35b610dac61203d565b6040518082815260200191505060405180910390f35b610e0460048036036020811015610dd857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612043565b005b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e9e5780601f10610e7357610100808354040283529160200191610e9e565b820191906000526020600020905b815481529060010190602001808311610e8157829003601f168201915b5050505050905090565b6000610ebc610eb5612118565b8484612120565b6001905092915050565b610ece612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60026020528060005260406000206000915054906101000a900460ff1681565b6000611047848484612317565b61110884611053612118565b6111038560405180606001604052806028815260200161302060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110b9612118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b612120565b600190509392505050565b6000600660009054906101000a900460ff16905090565b600660009054906101000a900460ff1681565b60006111e661114a612118565b846111e1856004600061115b612118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b612120565b6001905092915050565b6111f8612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f64656e696564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611406573d6000803e3d6000fd5b50565b600d60009054906101000a900460ff1681565b600b5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611450612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611511576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61157f612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611640576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b600061170f611714565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117d55780601f106117aa576101008083540402835291602001916117d5565b820191906000526020600020905b8154815290600101906020018083116117b857829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f64656e696564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561192957600080fd5b505af115801561193d573d6000803e3d6000fd5b505050506040513d602081101561195357600080fd5b8101908080519060200190929190505050505050565b600f6020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b6000611a5d6119a7612118565b84611a588560405180606001604052806025815260200161309160259139600460006119d1612118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b612120565b6001905092915050565b6000611a7b611a74612118565b8484612317565b6001905092915050565b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b1b5780601f10611af057610100808354040283529160200191611b1b565b820191906000526020600020905b815481529060010190602001808311611afe57829003601f168201915b505050505081565b600080600c54421015611b395760009050611b56565b6000600b54600c54420381611b4a57fe5b049050600e5481029150505b8091505090565b611b65612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c26576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008090505b8251811015611cac578160026000858481518110611c4657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611c2c565b505050565b60016020528060005260406000206000915054906101000a900460ff1681565b60088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d675780601f10611d3c57610100808354040283529160200191611d67565b820191906000526020600020905b815481529060010190602001808311611d4a57829003601f168201915b505050505081565b611d77612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600c8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f64656e696564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b8251811015611fb1576000600f6000858481518110611f2657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160000160006101000a81548160ff021916908315150217905550828281518110611f9357fe5b60200260200101518160010181905550508080600101915050611f0b565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b61204b612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461210c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61211581612b87565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061306d6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561222c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612fd86022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561239d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806130486025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612423576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612f8f6023913960400191505060405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45524332303a2050726f626c656d20776974682061646472657373000000000081525060200191505060405180910390fd5b6000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff1615612610576000600c54421015612552576000905061256f565b6000600b54600c5442038161256357fe5b049050600e5481029150505b808260010154111561260e57600081836001015403905060006125918761152e565b905084820181101561260b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f45524332303a204e6f7420656e6f7567682072656c656173657300000000000081525060200191505060405180910390fd5b50505b505b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612810576126ce82604051806060016040528060268152602001612ffa60269139600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3612a39565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156128795750600d60009054906101000a900460ff165b1561288e57612889848484612ccb565b612a38565b6128fa82604051806060016040528060268152602001612ffa60269139600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298f82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5b50505050565b6000838311158290612aec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ab1578082015181840152602081019050612a96565b50505050905090810190601f168015612ade5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612b7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fb26026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006064605a830281612cda57fe5b04905060008183039050612d5083604051806060016040528060268152602001612ffa60269139600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de581600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612edf82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820d0f6378d2f70d54ad06eb70b54624250591e5903f98ace0fc6a3e3f5b10ba83664736f6c63430005100032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061021c5760003560e01c806378e9792511610125578063b670a25a116100ad578063d462cc1b1161007c578063d462cc1b14610bb2578063d8cfad9f14610be0578063dd62ed3e14610d2c578063e816c32c14610da4578063f2fde38b14610dc25761021c565b8063b670a25a146109f1578063c272634f14610a0f578063cfdb63ac14610ad3578063d28d885214610b2f5761021c565b80639e281a98116100f45780639e281a98146107f1578063a0c60d831461083f578063a457c2d7146108a2578063a9059cbb14610908578063b09f12661461096e5761021c565b806378e97925146106bc578063893d20e8146106da5780638da5cb5b1461072457806395d89b411461076e5761021c565b806339509351116101a857806346c678431161017757806346c67843146105c257806349bd5a5e146105e0578063692506b71461062a57806370a082311461065a578063715018a6146106b25761021c565b806339509351146104ec5780633ad0dad3146105525780633ccfd60b1461059657806344946800146105a05761021c565b806318160ddd116101ef57806318160ddd146103a4578063224da3ab146103c257806323b872dd1461041e578063313ce567146104a457806332424aa3146104c85761021c565b806306fdde0314610221578063095ea7b3146102a45780630bf74b721461030a57806311a63e171461035a575b600080fd5b610229610e06565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026957808201518184015260208101905061024e565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f0600480360360408110156102ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ea8565b604051808215151515815260200191505060405180910390f35b6103586004803603604081101561032057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ec6565b005b610362610fea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103ac611010565b6040518082815260200191505060405180910390f35b610404600480360360208110156103d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061101a565b604051808215151515815260200191505060405180910390f35b61048a6004803603606081101561043457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103a565b604051808215151515815260200191505060405180910390f35b6104ac611113565b604051808260ff1660ff16815260200191505060405180910390f35b6104d061112a565b604051808260ff1660ff16815260200191505060405180910390f35b6105386004803603604081101561050257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061113d565b604051808215151515815260200191505060405180910390f35b6105946004803603602081101561056857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f0565b005b61059e6112fd565b005b6105a8611409565b604051808215151515815260200191505060405180910390f35b6105ca61141c565b6040518082815260200191505060405180910390f35b6105e8611422565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106586004803603602081101561064057600080fd5b81019080803515159060200190929190505050611448565b005b61069c6004803603602081101561067057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061152e565b6040518082815260200191505060405180910390f35b6106ba611577565b005b6106c46116ff565b6040518082815260200191505060405180910390f35b6106e2611705565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61072c611714565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61077661173d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107b657808201518184015260208101905061079b565b50505050905090810190601f1680156107e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61083d6004803603604081101561080757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117df565b005b6108816004803603602081101561085557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611969565b60405180831515151581526020018281526020019250505060405180910390f35b6108ee600480360360408110156108b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061199a565b604051808215151515815260200191505060405180910390f35b6109546004803603604081101561091e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a67565b604051808215151515815260200191505060405180910390f35b610976611a85565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109b657808201518184015260208101905061099b565b50505050905090810190601f1680156109e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109f9611b23565b6040518082815260200191505060405180910390f35b610ad160048036036040811015610a2557600080fd5b8101908080359060200190640100000000811115610a4257600080fd5b820183602082011115610a5457600080fd5b80359060200191846020830284011164010000000083111715610a7657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803515159060200190929190505050611b5d565b005b610b1560048036036020811015610ae957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cb1565b604051808215151515815260200191505060405180910390f35b610b37611cd1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b77578082015181840152602081019050610b5c565b50505050905090810190601f168015610ba45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610bde60048036036020811015610bc857600080fd5b8101908080359060200190929190505050611d6f565b005b610d2a60048036036040811015610bf657600080fd5b8101908080359060200190640100000000811115610c1357600080fd5b820183602082011115610c2557600080fd5b80359060200191846020830284011164010000000083111715610c4757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ca757600080fd5b820183602082011115610cb957600080fd5b80359060200191846020830284011164010000000083111715610cdb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611e42565b005b610d8e60048036036040811015610d4257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fb6565b6040518082815260200191505060405180910390f35b610dac61203d565b6040518082815260200191505060405180910390f35b610e0460048036036020811015610dd857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612043565b005b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e9e5780601f10610e7357610100808354040283529160200191610e9e565b820191906000526020600020905b815481529060010190602001808311610e8157829003601f168201915b5050505050905090565b6000610ebc610eb5612118565b8484612120565b6001905092915050565b610ece612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60026020528060005260406000206000915054906101000a900460ff1681565b6000611047848484612317565b61110884611053612118565b6111038560405180606001604052806028815260200161302060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110b9612118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b612120565b600190509392505050565b6000600660009054906101000a900460ff16905090565b600660009054906101000a900460ff1681565b60006111e661114a612118565b846111e1856004600061115b612118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b612120565b6001905092915050565b6111f8612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f64656e696564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611406573d6000803e3d6000fd5b50565b600d60009054906101000a900460ff1681565b600b5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611450612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611511576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61157f612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611640576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b600061170f611714565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117d55780601f106117aa576101008083540402835291602001916117d5565b820191906000526020600020905b8154815290600101906020018083116117b857829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f64656e696564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561192957600080fd5b505af115801561193d573d6000803e3d6000fd5b505050506040513d602081101561195357600080fd5b8101908080519060200190929190505050505050565b600f6020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b6000611a5d6119a7612118565b84611a588560405180606001604052806025815260200161309160259139600460006119d1612118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b612120565b6001905092915050565b6000611a7b611a74612118565b8484612317565b6001905092915050565b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b1b5780601f10611af057610100808354040283529160200191611b1b565b820191906000526020600020905b815481529060010190602001808311611afe57829003601f168201915b505050505081565b600080600c54421015611b395760009050611b56565b6000600b54600c54420381611b4a57fe5b049050600e5481029150505b8091505090565b611b65612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c26576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008090505b8251811015611cac578160026000858481518110611c4657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611c2c565b505050565b60016020528060005260406000206000915054906101000a900460ff1681565b60088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d675780601f10611d3c57610100808354040283529160200191611d67565b820191906000526020600020905b815481529060010190602001808311611d4a57829003601f168201915b505050505081565b611d77612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600c8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f64656e696564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b8251811015611fb1576000600f6000858481518110611f2657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060018160000160006101000a81548160ff021916908315150217905550828281518110611f9357fe5b60200260200101518160010181905550508080600101915050611f0b565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b61204b612118565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461210c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61211581612b87565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061306d6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561222c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612fd86022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561239d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806130486025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612423576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612f8f6023913960400191505060405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45524332303a2050726f626c656d20776974682061646472657373000000000081525060200191505060405180910390fd5b6000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff1615612610576000600c54421015612552576000905061256f565b6000600b54600c5442038161256357fe5b049050600e5481029150505b808260010154111561260e57600081836001015403905060006125918761152e565b905084820181101561260b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f45524332303a204e6f7420656e6f7567682072656c656173657300000000000081525060200191505060405180910390fd5b50505b505b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612810576126ce82604051806060016040528060268152602001612ffa60269139600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3612a39565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156128795750600d60009054906101000a900460ff165b1561288e57612889848484612ccb565b612a38565b6128fa82604051806060016040528060268152602001612ffa60269139600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061298f82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5b50505050565b6000838311158290612aec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ab1578082015181840152602081019050612a96565b50505050905090810190601f168015612ade5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612b7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fb26026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006064605a830281612cda57fe5b04905060008183039050612d5083604051806060016040528060268152602001612ffa60269139600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3f9092919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612de581600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612edf82600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820d0f6378d2f70d54ad06eb70b54624250591e5903f98ace0fc6a3e3f5b10ba83664736f6c63430005100032
Deployed Bytecode Sourcemap
9712:7402:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9712:7402:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11568:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12254:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12254:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10792:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10792:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10137:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11703:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9845:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9845:43:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12406:292;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12406:292:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11296:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10057:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12704:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12704:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16214:121;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16214:121:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;16630:140;;;:::i;:::-;;10285:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10203:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10169:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16341:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16341:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11848;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11848:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9014:130;;;:::i;:::-;;10241:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11158:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8412:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11432:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11432:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16453:169;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16453:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10459:48;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10459:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12910:251;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12910:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11960:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11960:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10085:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10085:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14777:370;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10906:194;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10906:194:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;10906:194:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10906:194:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10906:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10906:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9797:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9797:43:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10111:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10111:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16100:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16100:108:0;;;;;;;;;;;;;;;;;:::i;:::-;;16776:335;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16776:335:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16776:335:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16776:335:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16776:335:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16776:335:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16776:335:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16776:335:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16776:335:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16776:335:0;;;;;;;;;;;;;;;:::i;:::-;;12116:130;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12116:130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10318:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9289:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9289:103:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11568:79;11607:13;11636:5;11629:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:79;:::o;12254:144::-;12322:4;12335:39;12344:12;:10;:12::i;:::-;12358:7;12367:6;12335:8;:39::i;:::-;12388:4;12381:11;;12254:144;;;;:::o;10792:108::-;8616:12;:10;:12::i;:::-;8606:22;;:6;;;;;;;;;;;:22;;;8598:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10891:3;10871:10;:17;10882:5;10871:17;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10792:108;;:::o;10137:26::-;;;;;;;;;;;;;:::o;11703:87::-;11749:7;11772:12;;11765:19;;11703:87;:::o;9845:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;12406:292::-;12497:4;12510:36;12520:6;12528:9;12539:6;12510:9;:36::i;:::-;12553:121;12562:6;12570:12;:10;:12::i;:::-;12584:89;12622:6;12584:89;;;;;;;;;;;;;;;;;:11;:19;12596:6;12584:19;;;;;;;;;;;;;;;:33;12604:12;:10;:12::i;:::-;12584:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12553:8;:121::i;:::-;12688:4;12681:11;;12406:292;;;;;:::o;11296:79::-;11339:5;11360:9;;;;;;;;;;;11353:16;;11296:79;:::o;10057:23::-;;;;;;;;;;;;;:::o;12704:200::-;12784:4;12797:83;12806:12;:10;:12::i;:::-;12820:7;12829:50;12868:10;12829:11;:25;12841:12;:10;:12::i;:::-;12829:25;;;;;;;;;;;;;;;:34;12855:7;12829:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12797:8;:83::i;:::-;12894:4;12887:11;;12704:200;;;;:::o;16214:121::-;8616:12;:10;:12::i;:::-;8606:22;;:6;;;;;;;;;;;:22;;;8598:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16313:14;16297:13;;:30;;;;;;;;;;;;;;;;;;16214:121;:::o;16630:140::-;16688:10;;;;;;;;;;;16674:24;;:10;:24;;;16666:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16720:10;:19;;:42;16740:21;16720:42;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16720:42:0;16630:140::o;10285:28::-;;;;;;;;;;;;;:::o;10203:31::-;;;;:::o;10169:29::-;;;;;;;;;;;;;:::o;16341:104::-;8616:12;:10;:12::i;:::-;8606:22;;:6;;;;;;;;;;;:22;;;8598:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16427:10;16415:9;;:22;;;;;;;;;;;;;;;;;;16341:104;:::o;11848:::-;11905:7;11928:9;:18;11938:7;11928:18;;;;;;;;;;;;;;;;11921:25;;11848:104;;;:::o;9014:130::-;8616:12;:10;:12::i;:::-;8606:22;;:6;;;;;;;;;;;:22;;;8598:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9109:1;9072:40;;9093:6;;;;;;;;;;;9072:40;;;;;;;;;;;;9136:1;9119:6;;:19;;;;;;;;;;;;;;;;;;9014:130::o;10241:37::-;;;;:::o;11158:79::-;11201:7;11224;:5;:7::i;:::-;11217:14;;11158:79;:::o;8412:73::-;8450:7;8473:6;;;;;;;;;;;8466:13;;8412:73;:::o;11432:83::-;11473:13;11502:7;11495:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11432:83;:::o;16453:169::-;16547:10;;;;;;;;;;;16533:24;;:10;:24;;;16525:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16579:6;:15;;;16595:10;16607:6;16579:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16579:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16579:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16579:35:0;;;;;;;;;;;;;;;;;16453:169;;:::o;10459:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12910:251::-;12995:4;13008:129;13017:12;:10;:12::i;:::-;13031:7;13040:96;13079:15;13040:96;;;;;;;;;;;;;;;;;:11;:25;13052:12;:10;:12::i;:::-;13040:25;;;;;;;;;;;;;;;:34;13066:7;13040:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;13008:8;:129::i;:::-;13151:4;13144:11;;12910:251;;;;:::o;11960:150::-;12031:4;12044:42;12054:12;:10;:12::i;:::-;12068:9;12079:6;12044:9;:42::i;:::-;12100:4;12093:11;;11960:150;;;;:::o;10085:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14777:370::-;14829:7;14849:19;14914:9;;14896:15;:27;14891:219;;;14954:1;14940:15;;14891:219;;;14983:18;15037:7;;15023:9;;15005:15;:27;15004:40;;;;;;14983:61;;15083:14;;15070:10;:27;15055:42;;14891:219;;15128:11;15121:18;;;14777:370;:::o;10906:194::-;8616:12;:10;:12::i;:::-;8606:22;;:6;;;;;;;;;;;:22;;;8598:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10999:9;11011:1;10999:13;;10994:101;11018:5;:12;11014:1;:16;10994:101;;;11078:3;11055:10;:20;11066:5;11072:1;11066:8;;;;;;;;;;;;;;11055:20;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11032:3;;;;;;;10994:101;;;;10906:194;;:::o;9797:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;10111:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16100:108::-;8616:12;:10;:12::i;:::-;8606:22;;:6;;;;;;;;;;;:22;;;8598:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16190:10;16178:9;:22;;;;16100:108;:::o;16776:335::-;16882:10;;;;;;;;;;;16868:24;;:10;:24;;;16860:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16919:9;16931:1;16919:13;;16914:190;16938:5;:12;16934:1;:16;16914:190;;;16972:20;16995:12;:22;17008:5;17014:1;17008:8;;;;;;;;;;;;;;16995:22;;;;;;;;;;;;;;;16972:45;;17044:4;17032;:10;;;:16;;;;;;;;;;;;;;;;;;17082:7;17090:1;17082:10;;;;;;;;;;;;;;17063:4;:16;;:29;;;;16914:190;16952:3;;;;;;;16914:190;;;;16776:335;;:::o;12116:130::-;12190:7;12213:11;:18;12225:5;12213:18;;;;;;;;;;;;;;;:27;12232:7;12213:27;;;;;;;;;;;;;;;;12206:34;;12116:130;;;;:::o;10318:45::-;;;;:::o;9289:103::-;8616:12;:10;:12::i;:::-;8606:22;;:6;;;;;;;;;;;:22;;;8598:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9358:28;9377:8;9358:18;:28::i;:::-;9289:103;:::o;3193:92::-;3238:15;3269:10;3262:17;;3193:92;:::o;15771:320::-;15878:1;15861:19;;:5;:19;;;;15853:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15955:1;15936:21;;:7;:21;;;;15928:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16035:6;16005:11;:18;16017:5;16005:18;;;;;;;;;;;;;;;:27;16024:7;16005:27;;;;;;;;;;;;;;;:36;;;;16069:7;16053:32;;16062:5;16053:32;;;16078:6;16053:32;;;;;;;;;;;;;;;;;;15771:320;;;:::o;13167:1604::-;13279:1;13261:20;;:6;:20;;;;13253:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13359:1;13338:23;;:9;:23;;;;13330:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13417:10;:18;13428:6;13417:18;;;;;;;;;;;;;;;;;;;;;;;;;13416:19;13408:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13476:20;13499:12;:20;13512:6;13499:20;;;;;;;;;;;;;;;13476:43;;13533:4;:10;;;;;;;;;;;;13528:566;;;13555:19;13608:9;;13590:15;:27;13585:217;;;13648:1;13634:15;;13585:217;;;13677:18;13730:7;;13717:9;;13699:15;:27;13698:39;;;;;;13677:60;;13776:14;;13763:10;:27;13748:42;;13585:217;;13835:11;13816:4;:16;;;:30;13812:275;;;13863:21;13906:11;13887:4;:16;;;:30;13863:54;;13933:18;13954:17;13964:6;13954:9;:17::i;:::-;13933:38;;14038:6;14022:13;:22;14008:10;:36;;14000:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13812:275;;;13528:566;;14108:10;:18;14119:6;14108:18;;;;;;;;;;;;;;;;;;;;;;;;;14104:663;;;14162:71;14184:6;14162:71;;;;;;;;;;;;;;;;;:9;:17;14172:6;14162:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;14142:9;:17;14152:6;14142:17;;;;;;;;;;;;;;;:91;;;;14271:32;14296:6;14271:9;:20;14281:9;14271:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14248:9;:20;14258:9;14248:20;;;;;;;;;;;;;;;:55;;;;14340:9;14323:35;;14332:6;14323:35;;;14351:6;14323:35;;;;;;;;;;;;;;;;;;14104:663;;;14404:13;;;;;;;;;;;14391:26;;:9;:26;;;:39;;;;;14421:9;;;;;;;;;;;14391:39;14387:369;;;14447:46;14469:6;14476:9;14486:6;14447:21;:46::i;:::-;14387:369;;;14547:71;14569:6;14547:71;;;;;;;;;;;;;;;;;:9;:17;14557:6;14547:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;14527:9;:17;14537:6;14527:17;;;;;;;;;;;;;;;:91;;;;14656:32;14681:6;14656:9;:20;14666:9;14656:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14633:9;:20;14643:9;14633:20;;;;;;;;;;;;;;;:55;;;;14725:9;14708:35;;14717:6;14708:35;;;14736:6;14708:35;;;;;;;;;;;;;;;;;;14387:369;14104:663;13167:1604;;;;:::o;4575:178::-;4661:7;4690:1;4685;:6;;4693:12;4677:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4677:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4713:9;4729:1;4725;:5;4713:17;;4746:1;4739:8;;;4575:178;;;;;:::o;3748:167::-;3806:7;3822:9;3838:1;3834;:5;3822:17;;3859:1;3854;:6;;3846:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3908:1;3901:8;;;3748:167;;;;:::o;9490:215::-;9580:1;9560:22;;:8;:22;;;;9552:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9666:8;9637:38;;9658:6;;;;;;;;;;;9637:38;;;;;;;;;;;;9691:8;9682:6;;:17;;;;;;;;;;;;;;;;;;9490:215;:::o;15155:610::-;15259:17;15295:3;15289:2;15280:6;:11;15279:19;;;;;;15259:39;;15313:22;15347:9;15338:6;:18;15313:43;;15404:71;15426:6;15404:71;;;;;;;;;;;;;;;;;:9;:17;15414:6;15404:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;15384:9;:17;15394:6;15384:17;;;;;;;;;;;;;;;:91;;;;15512:40;15537:14;15512:9;:20;15522:9;15512:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;15489:9;:20;15499:9;15489:20;;;;;;;;;;;;;;;:63;;;;15588:9;15571:43;;15580:6;15571:43;;;15599:14;15571:43;;;;;;;;;;;;;;;;;;15657:39;15686:9;15657;:24;15675:4;15657:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15630:9;:24;15648:4;15630:24;;;;;;;;;;;;;;;:66;;;;15740:4;15715:42;;15724:6;15715:42;;;15747:9;15715:42;;;;;;;;;;;;;;;;;;15155:610;;;;;:::o
Swarm Source
bzzr://d0f6378d2f70d54ad06eb70b54624250591e5903f98ace0fc6a3e3f5b10ba836
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.