ERC-20
MEME
Overview
Max Total Supply
1,000,000,000,000 CPSHIB
Holders
615 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
24,849,009,288.714522256 CPSHIBValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CaptainShiba
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-05-18 */ // SPDX-License-Identifier: MIT // CaptainShiba Token // CaptainShiba is the one and only, who can carry you safely to the stars. // Website: https://captainshiba.com // Twitter: https://twitter.com/captain_token // Telegram: t.me/captain_token pragma solidity ^0.8.4; /* * @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) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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 ); } 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) { require(b > 0, errorMessage); uint256 c = a / b; 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; } } 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() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), 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 { 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 virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Collection of functions related to the address type */ 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; // solhint-disable-next-line no-inline-assembly 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" ); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (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"); // solhint-disable-next-line avoid-low-level-calls (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"); // solhint-disable-next-line avoid-low-level-calls (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"); // solhint-disable-next-line avoid-low-level-calls (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 // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract CaptainShiba is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcluded; address[] private _excluded; uint256 private _tFeeTotal; uint256 private constant _tTotal = 1000000000000 * 10**9; uint256 private constant MAX = ~uint256(0); uint256 private _rTotal = (MAX - (MAX % _tTotal)); string private _name = "CaptainShiba"; string private _symbol = "CPSHIB"; uint8 private _decimals = 9; // keeps the bots away uint256 public _maxTxAmount = 5000000000 * 10**9; constructor() public { _rOwned[_msgSender()] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override 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 virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function setMaxTransactionPercent(uint256 maxTxPercent) external onlyOwner() { _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2); } function reflect(uint256 tAmount) public { address sender = _msgSender(); require( !_isExcluded[sender], "Excluded addresses cannot call this function" ); (uint256 rAmount, , , , ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns (uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount, , , , ) = _getValues(tAmount); return rAmount; } else { (, uint256 rTransferAmount, , , ) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeAccount(address account) external onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _approve( address owner, address spender, uint256 amount ) private { 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 _transfer( address sender, address recipient, uint256 amount ) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (sender != owner() && recipient != owner()) require( amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount." ); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee); } function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) { uint256 tFee = tAmount.div(100).mul(2); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if ( _rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply ) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","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":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTransactionPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052683635c9adc5dea000006000196200001d9190620003ed565b6000196200002c919062000372565b6007556040518060400160405280600c81526020017f4361707461696e53686962610000000000000000000000000000000000000000815250600890805190602001906200007c92919062000294565b506040518060400160405280600681526020017f435053484942000000000000000000000000000000000000000000000000000081525060099080519060200190620000ca92919062000294565b506009600a60006101000a81548160ff021916908360ff160217905550674563918244f40000600b553480156200010057600080fd5b506000620001136200028c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460016000620001c86200028c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002166200028c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200027e919062000355565b60405180910390a3620004b2565b600033905090565b828054620002a290620003b7565b90600052602060002090601f016020900481019282620002c6576000855562000312565b82601f10620002e157805160ff191683800117855562000312565b8280016001018555821562000312579182015b8281111562000311578251825591602001919060010190620002f4565b5b50905062000321919062000325565b5090565b5b808211156200034057600081600090555060010162000326565b5090565b6200034f81620003ad565b82525050565b60006020820190506200036c600083018462000344565b92915050565b60006200037f82620003ad565b91506200038c83620003ad565b925082821015620003a257620003a162000425565b5b828203905092915050565b6000819050919050565b60006002820490506001821680620003d057607f821691505b60208210811415620003e757620003e662000483565b5b50919050565b6000620003fa82620003ad565b91506200040783620003ad565b9250826200041a576200041962000454565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613b8180620004c26000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063cba0e9961161007c578063cba0e996146103ca578063dd62ed3e146103fa578063eec360211461042a578063f2cc0c1814610446578063f2fde38b14610462578063f84354f11461047e5761014d565b8063715018a6146103065780637d1db4a5146103105780638da5cb5b1461032e57806395d89b411461034c578063a457c2d71461036a578063a9059cbb1461039a5761014d565b806323b872dd1161011557806323b872dd146101f85780632d83811914610228578063313ce5671461025857806339509351146102765780634549b039146102a657806370a08231146102d65761014d565b8063053ab1821461015257806306fdde031461016e578063095ea7b31461018c57806313114a9d146101bc57806318160ddd146101da575b600080fd5b61016c60048036038101906101679190612f1b565b61049a565b005b610176610614565b6040516101839190613215565b60405180910390f35b6101a660048036038101906101a19190612edf565b6106a6565b6040516101b391906131fa565b60405180910390f35b6101c46106c4565b6040516101d191906133f7565b60405180910390f35b6101e26106ce565b6040516101ef91906133f7565b60405180910390f35b610212600480360381019061020d9190612e90565b6106df565b60405161021f91906131fa565b60405180910390f35b610242600480360381019061023d9190612f1b565b6107b8565b60405161024f91906133f7565b60405180910390f35b610260610826565b60405161026d9190613412565b60405180910390f35b610290600480360381019061028b9190612edf565b61083d565b60405161029d91906131fa565b60405180910390f35b6102c060048036038101906102bb9190612f44565b6108f0565b6040516102cd91906133f7565b60405180910390f35b6102f060048036038101906102eb9190612e2b565b610979565b6040516102fd91906133f7565b60405180910390f35b61030e610a64565b005b610318610b9e565b60405161032591906133f7565b60405180910390f35b610336610ba4565b60405161034391906131df565b60405180910390f35b610354610bcd565b6040516103619190613215565b60405180910390f35b610384600480360381019061037f9190612edf565b610c5f565b60405161039191906131fa565b60405180910390f35b6103b460048036038101906103af9190612edf565b610d2c565b6040516103c191906131fa565b60405180910390f35b6103e460048036038101906103df9190612e2b565b610d4a565b6040516103f191906131fa565b60405180910390f35b610414600480360381019061040f9190612e54565b610da0565b60405161042191906133f7565b60405180910390f35b610444600480360381019061043f9190612f1b565b610e27565b005b610460600480360381019061045b9190612e2b565b610edb565b005b61047c60048036038101906104779190612e2b565b611176565b005b61049860048036038101906104939190612e2b565b61131f565b005b60006104a46116ed565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a906133d7565b60405180910390fd5b600061053e836116f5565b50505050905061059681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105ee8160075461174d90919063ffffffff16565b6007819055506106098360065461179790919063ffffffff16565b600681905550505050565b606060088054610623906135e6565b80601f016020809104026020016040519081016040528092919081815260200182805461064f906135e6565b801561069c5780601f106106715761010080835404028352916020019161069c565b820191906000526020600020905b81548152906001019060200180831161067f57829003601f168201915b5050505050905090565b60006106ba6106b36116ed565b84846117f5565b6001905092915050565b6000600654905090565b6000683635c9adc5dea00000905090565b60006106ec8484846119c0565b6107ad846106f86116ed565b6107a885604051806060016040528060288152602001613aff60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075e6116ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e989092919063ffffffff16565b6117f5565b600190509392505050565b60006007548211156107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f690613257565b60405180910390fd5b6000610809611efc565b905061081e8184611f2790919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b60006108e661084a6116ed565b846108e1856003600061085b6116ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b6117f5565b6001905092915050565b6000683635c9adc5dea0000083111561093e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610935906132f7565b60405180910390fd5b8161095d57600061094e846116f5565b50505050905080915050610973565b6000610968846116f5565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a1457600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610a5f565b610a5c600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b8565b90505b919050565b610a6c6116ed565b73ffffffffffffffffffffffffffffffffffffffff16610a8a610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad790613357565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054610bdc906135e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610c08906135e6565b8015610c555780601f10610c2a57610100808354040283529160200191610c55565b820191906000526020600020905b815481529060010190602001808311610c3857829003601f168201915b5050505050905090565b6000610d22610c6c6116ed565b84610d1d85604051806060016040528060258152602001613b276025913960036000610c966116ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e989092919063ffffffff16565b6117f5565b6001905092915050565b6000610d40610d396116ed565b84846119c0565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e2f6116ed565b73ffffffffffffffffffffffffffffffffffffffff16610e4d610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a90613357565b60405180910390fd5b610ed26064610ec483683635c9adc5dea00000611f7190919063ffffffff16565b611f2790919063ffffffff16565b600b8190555050565b610ee36116ed565b73ffffffffffffffffffffffffffffffffffffffff16610f01610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90613357565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb906132d7565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156110b857611074600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b8565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61117e6116ed565b73ffffffffffffffffffffffffffffffffffffffff1661119c610ba4565b73ffffffffffffffffffffffffffffffffffffffff16146111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990613357565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990613277565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113276116ed565b73ffffffffffffffffffffffffffffffffffffffff16611345610ba4565b73ffffffffffffffffffffffffffffffffffffffff161461139b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139290613357565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e906132d7565b60405180910390fd5b60005b6005805490508110156116e9578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611488577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116d657600560016005805490506114e3919061352a565b8154811061151a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005828154811061157f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600580548061169c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556116e9565b80806116e190613618565b91505061142a565b5050565b600033905090565b600080600080600080600061170988611fec565b915091506000611717611efc565b905060008060006117298c868661203e565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600061178f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e98565b905092915050565b60008082846117a69190613449565b9050838110156117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e2906132b7565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c906133b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613297565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119b391906133f7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2790613397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9790613237565b60405180910390fd5b60008111611ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ada90613377565b60405180910390fd5b611aeb610ba4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b595750611b29610ba4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ba457600b54811115611ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9a90613317565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c475750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c5c57611c5783838361209c565b611e93565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cff5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d1457611d0f8383836122ef565b611e92565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611db85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dcd57611dc8838383612542565b611e91565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e6f5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e8457611e7f838383612700565b611e90565b611e8f838383612542565b5b5b5b5b505050565b6000838311158290611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed79190613215565b60405180910390fd5b5060008385611eef919061352a565b9050809150509392505050565b6000806000611f096129e8565b91509150611f208183611f2790919063ffffffff16565b9250505090565b6000611f6983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d4f565b905092915050565b600080831415611f845760009050611fe6565b60008284611f9291906134d0565b9050828482611fa1919061349f565b14611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613337565b60405180910390fd5b809150505b92915050565b6000806000612018600261200a606487611f2790919063ffffffff16565b611f7190919063ffffffff16565b9050600061202f828661174d90919063ffffffff16565b90508082935093505050915091565b6000806000806120578588611f7190919063ffffffff16565b9050600061206e8688611f7190919063ffffffff16565b90506000612085828461174d90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006120ad866116f5565b9450945094509450945061210986600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061219e85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122808382612db2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122dd91906133f7565b60405180910390a35050505050505050565b6000806000806000612300866116f5565b9450945094509450945061235c85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f182600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124d38382612db2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253091906133f7565b60405180910390a35050505050505050565b6000806000806000612553866116f5565b945094509450945094506125af85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126918382612db2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126ee91906133f7565b60405180910390a35050505050505050565b6000806000806000612711866116f5565b9450945094509450945061276d86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061280285600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289782600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129798382612db2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129d691906133f7565b60405180910390a35050505050505050565b600080600060075490506000683635c9adc5dea00000905060005b600580549050811015612d0457826001600060058481548110612a4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b635750816002600060058481548110612afb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b8157600754683635c9adc5dea0000094509450505050612d4b565b612c376001600060058481548110612bc2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461174d90919063ffffffff16565b9250612cef6002600060058481548110612c7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361174d90919063ffffffff16565b91508080612cfc90613618565b915050612a03565b50612d23683635c9adc5dea00000600754611f2790919063ffffffff16565b821015612d4257600754683635c9adc5dea00000935093505050612d4b565b81819350935050505b9091565b60008083118290612d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8d9190613215565b60405180910390fd5b5060008385612da5919061349f565b9050809150509392505050565b612dc78260075461174d90919063ffffffff16565b600781905550612de28160065461179790919063ffffffff16565b6006819055505050565b600081359050612dfb81613ab9565b92915050565b600081359050612e1081613ad0565b92915050565b600081359050612e2581613ae7565b92915050565b600060208284031215612e3d57600080fd5b6000612e4b84828501612dec565b91505092915050565b60008060408385031215612e6757600080fd5b6000612e7585828601612dec565b9250506020612e8685828601612dec565b9150509250929050565b600080600060608486031215612ea557600080fd5b6000612eb386828701612dec565b9350506020612ec486828701612dec565b9250506040612ed586828701612e16565b9150509250925092565b60008060408385031215612ef257600080fd5b6000612f0085828601612dec565b9250506020612f1185828601612e16565b9150509250929050565b600060208284031215612f2d57600080fd5b6000612f3b84828501612e16565b91505092915050565b60008060408385031215612f5757600080fd5b6000612f6585828601612e16565b9250506020612f7685828601612e01565b9150509250929050565b612f898161355e565b82525050565b612f9881613570565b82525050565b6000612fa98261342d565b612fb38185613438565b9350612fc38185602086016135b3565b612fcc816136ee565b840191505092915050565b6000612fe4602383613438565b9150612fef826136ff565b604082019050919050565b6000613007602a83613438565b91506130128261374e565b604082019050919050565b600061302a602683613438565b91506130358261379d565b604082019050919050565b600061304d602283613438565b9150613058826137ec565b604082019050919050565b6000613070601b83613438565b915061307b8261383b565b602082019050919050565b6000613093601b83613438565b915061309e82613864565b602082019050919050565b60006130b6601f83613438565b91506130c18261388d565b602082019050919050565b60006130d9602883613438565b91506130e4826138b6565b604082019050919050565b60006130fc602183613438565b915061310782613905565b604082019050919050565b600061311f602083613438565b915061312a82613954565b602082019050919050565b6000613142602983613438565b915061314d8261397d565b604082019050919050565b6000613165602583613438565b9150613170826139cc565b604082019050919050565b6000613188602483613438565b915061319382613a1b565b604082019050919050565b60006131ab602c83613438565b91506131b682613a6a565b604082019050919050565b6131ca8161359c565b82525050565b6131d9816135a6565b82525050565b60006020820190506131f46000830184612f80565b92915050565b600060208201905061320f6000830184612f8f565b92915050565b6000602082019050818103600083015261322f8184612f9e565b905092915050565b6000602082019050818103600083015261325081612fd7565b9050919050565b6000602082019050818103600083015261327081612ffa565b9050919050565b600060208201905081810360008301526132908161301d565b9050919050565b600060208201905081810360008301526132b081613040565b9050919050565b600060208201905081810360008301526132d081613063565b9050919050565b600060208201905081810360008301526132f081613086565b9050919050565b60006020820190508181036000830152613310816130a9565b9050919050565b60006020820190508181036000830152613330816130cc565b9050919050565b60006020820190508181036000830152613350816130ef565b9050919050565b6000602082019050818103600083015261337081613112565b9050919050565b6000602082019050818103600083015261339081613135565b9050919050565b600060208201905081810360008301526133b081613158565b9050919050565b600060208201905081810360008301526133d08161317b565b9050919050565b600060208201905081810360008301526133f08161319e565b9050919050565b600060208201905061340c60008301846131c1565b92915050565b600060208201905061342760008301846131d0565b92915050565b600081519050919050565b600082825260208201905092915050565b60006134548261359c565b915061345f8361359c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561349457613493613661565b5b828201905092915050565b60006134aa8261359c565b91506134b58361359c565b9250826134c5576134c4613690565b5b828204905092915050565b60006134db8261359c565b91506134e68361359c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561351f5761351e613661565b5b828202905092915050565b60006135358261359c565b91506135408361359c565b92508282101561355357613552613661565b5b828203905092915050565b60006135698261357c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156135d15780820151818401526020810190506135b6565b838111156135e0576000848401525b50505050565b600060028204905060018216806135fe57607f821691505b60208210811415613612576136116136bf565b5b50919050565b60006136238261359c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561365657613655613661565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b613ac28161355e565b8114613acd57600080fd5b50565b613ad981613570565b8114613ae457600080fd5b50565b613af08161359c565b8114613afb57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201a233b108517d6594641f9c0cf889836154fd325a7adae861241b8862d4a197c64736f6c63430008040033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063cba0e9961161007c578063cba0e996146103ca578063dd62ed3e146103fa578063eec360211461042a578063f2cc0c1814610446578063f2fde38b14610462578063f84354f11461047e5761014d565b8063715018a6146103065780637d1db4a5146103105780638da5cb5b1461032e57806395d89b411461034c578063a457c2d71461036a578063a9059cbb1461039a5761014d565b806323b872dd1161011557806323b872dd146101f85780632d83811914610228578063313ce5671461025857806339509351146102765780634549b039146102a657806370a08231146102d65761014d565b8063053ab1821461015257806306fdde031461016e578063095ea7b31461018c57806313114a9d146101bc57806318160ddd146101da575b600080fd5b61016c60048036038101906101679190612f1b565b61049a565b005b610176610614565b6040516101839190613215565b60405180910390f35b6101a660048036038101906101a19190612edf565b6106a6565b6040516101b391906131fa565b60405180910390f35b6101c46106c4565b6040516101d191906133f7565b60405180910390f35b6101e26106ce565b6040516101ef91906133f7565b60405180910390f35b610212600480360381019061020d9190612e90565b6106df565b60405161021f91906131fa565b60405180910390f35b610242600480360381019061023d9190612f1b565b6107b8565b60405161024f91906133f7565b60405180910390f35b610260610826565b60405161026d9190613412565b60405180910390f35b610290600480360381019061028b9190612edf565b61083d565b60405161029d91906131fa565b60405180910390f35b6102c060048036038101906102bb9190612f44565b6108f0565b6040516102cd91906133f7565b60405180910390f35b6102f060048036038101906102eb9190612e2b565b610979565b6040516102fd91906133f7565b60405180910390f35b61030e610a64565b005b610318610b9e565b60405161032591906133f7565b60405180910390f35b610336610ba4565b60405161034391906131df565b60405180910390f35b610354610bcd565b6040516103619190613215565b60405180910390f35b610384600480360381019061037f9190612edf565b610c5f565b60405161039191906131fa565b60405180910390f35b6103b460048036038101906103af9190612edf565b610d2c565b6040516103c191906131fa565b60405180910390f35b6103e460048036038101906103df9190612e2b565b610d4a565b6040516103f191906131fa565b60405180910390f35b610414600480360381019061040f9190612e54565b610da0565b60405161042191906133f7565b60405180910390f35b610444600480360381019061043f9190612f1b565b610e27565b005b610460600480360381019061045b9190612e2b565b610edb565b005b61047c60048036038101906104779190612e2b565b611176565b005b61049860048036038101906104939190612e2b565b61131f565b005b60006104a46116ed565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052a906133d7565b60405180910390fd5b600061053e836116f5565b50505050905061059681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105ee8160075461174d90919063ffffffff16565b6007819055506106098360065461179790919063ffffffff16565b600681905550505050565b606060088054610623906135e6565b80601f016020809104026020016040519081016040528092919081815260200182805461064f906135e6565b801561069c5780601f106106715761010080835404028352916020019161069c565b820191906000526020600020905b81548152906001019060200180831161067f57829003601f168201915b5050505050905090565b60006106ba6106b36116ed565b84846117f5565b6001905092915050565b6000600654905090565b6000683635c9adc5dea00000905090565b60006106ec8484846119c0565b6107ad846106f86116ed565b6107a885604051806060016040528060288152602001613aff60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075e6116ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e989092919063ffffffff16565b6117f5565b600190509392505050565b60006007548211156107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f690613257565b60405180910390fd5b6000610809611efc565b905061081e8184611f2790919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b60006108e661084a6116ed565b846108e1856003600061085b6116ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b6117f5565b6001905092915050565b6000683635c9adc5dea0000083111561093e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610935906132f7565b60405180910390fd5b8161095d57600061094e846116f5565b50505050905080915050610973565b6000610968846116f5565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a1457600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610a5f565b610a5c600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b8565b90505b919050565b610a6c6116ed565b73ffffffffffffffffffffffffffffffffffffffff16610a8a610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad790613357565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054610bdc906135e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610c08906135e6565b8015610c555780601f10610c2a57610100808354040283529160200191610c55565b820191906000526020600020905b815481529060010190602001808311610c3857829003601f168201915b5050505050905090565b6000610d22610c6c6116ed565b84610d1d85604051806060016040528060258152602001613b276025913960036000610c966116ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e989092919063ffffffff16565b6117f5565b6001905092915050565b6000610d40610d396116ed565b84846119c0565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e2f6116ed565b73ffffffffffffffffffffffffffffffffffffffff16610e4d610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a90613357565b60405180910390fd5b610ed26064610ec483683635c9adc5dea00000611f7190919063ffffffff16565b611f2790919063ffffffff16565b600b8190555050565b610ee36116ed565b73ffffffffffffffffffffffffffffffffffffffff16610f01610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90613357565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb906132d7565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156110b857611074600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b8565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61117e6116ed565b73ffffffffffffffffffffffffffffffffffffffff1661119c610ba4565b73ffffffffffffffffffffffffffffffffffffffff16146111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990613357565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990613277565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113276116ed565b73ffffffffffffffffffffffffffffffffffffffff16611345610ba4565b73ffffffffffffffffffffffffffffffffffffffff161461139b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139290613357565b60405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e906132d7565b60405180910390fd5b60005b6005805490508110156116e9578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611488577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116d657600560016005805490506114e3919061352a565b8154811061151a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005828154811061157f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600580548061169c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556116e9565b80806116e190613618565b91505061142a565b5050565b600033905090565b600080600080600080600061170988611fec565b915091506000611717611efc565b905060008060006117298c868661203e565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600061178f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e98565b905092915050565b60008082846117a69190613449565b9050838110156117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e2906132b7565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185c906133b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613297565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119b391906133f7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2790613397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9790613237565b60405180910390fd5b60008111611ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ada90613377565b60405180910390fd5b611aeb610ba4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b595750611b29610ba4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ba457600b54811115611ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9a90613317565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c475750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c5c57611c5783838361209c565b611e93565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cff5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d1457611d0f8383836122ef565b611e92565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611db85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dcd57611dc8838383612542565b611e91565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e6f5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e8457611e7f838383612700565b611e90565b611e8f838383612542565b5b5b5b5b505050565b6000838311158290611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed79190613215565b60405180910390fd5b5060008385611eef919061352a565b9050809150509392505050565b6000806000611f096129e8565b91509150611f208183611f2790919063ffffffff16565b9250505090565b6000611f6983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d4f565b905092915050565b600080831415611f845760009050611fe6565b60008284611f9291906134d0565b9050828482611fa1919061349f565b14611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613337565b60405180910390fd5b809150505b92915050565b6000806000612018600261200a606487611f2790919063ffffffff16565b611f7190919063ffffffff16565b9050600061202f828661174d90919063ffffffff16565b90508082935093505050915091565b6000806000806120578588611f7190919063ffffffff16565b9050600061206e8688611f7190919063ffffffff16565b90506000612085828461174d90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006120ad866116f5565b9450945094509450945061210986600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061219e85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122808382612db2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122dd91906133f7565b60405180910390a35050505050505050565b6000806000806000612300866116f5565b9450945094509450945061235c85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f182600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124d38382612db2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253091906133f7565b60405180910390a35050505050505050565b6000806000806000612553866116f5565b945094509450945094506125af85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126918382612db2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126ee91906133f7565b60405180910390a35050505050505050565b6000806000806000612711866116f5565b9450945094509450945061276d86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061280285600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289782600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461179790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129798382612db2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129d691906133f7565b60405180910390a35050505050505050565b600080600060075490506000683635c9adc5dea00000905060005b600580549050811015612d0457826001600060058481548110612a4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612b635750816002600060058481548110612afb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612b8157600754683635c9adc5dea0000094509450505050612d4b565b612c376001600060058481548110612bc2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461174d90919063ffffffff16565b9250612cef6002600060058481548110612c7a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361174d90919063ffffffff16565b91508080612cfc90613618565b915050612a03565b50612d23683635c9adc5dea00000600754611f2790919063ffffffff16565b821015612d4257600754683635c9adc5dea00000935093505050612d4b565b81819350935050505b9091565b60008083118290612d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8d9190613215565b60405180910390fd5b5060008385612da5919061349f565b9050809150509392505050565b612dc78260075461174d90919063ffffffff16565b600781905550612de28160065461179790919063ffffffff16565b6006819055505050565b600081359050612dfb81613ab9565b92915050565b600081359050612e1081613ad0565b92915050565b600081359050612e2581613ae7565b92915050565b600060208284031215612e3d57600080fd5b6000612e4b84828501612dec565b91505092915050565b60008060408385031215612e6757600080fd5b6000612e7585828601612dec565b9250506020612e8685828601612dec565b9150509250929050565b600080600060608486031215612ea557600080fd5b6000612eb386828701612dec565b9350506020612ec486828701612dec565b9250506040612ed586828701612e16565b9150509250925092565b60008060408385031215612ef257600080fd5b6000612f0085828601612dec565b9250506020612f1185828601612e16565b9150509250929050565b600060208284031215612f2d57600080fd5b6000612f3b84828501612e16565b91505092915050565b60008060408385031215612f5757600080fd5b6000612f6585828601612e16565b9250506020612f7685828601612e01565b9150509250929050565b612f898161355e565b82525050565b612f9881613570565b82525050565b6000612fa98261342d565b612fb38185613438565b9350612fc38185602086016135b3565b612fcc816136ee565b840191505092915050565b6000612fe4602383613438565b9150612fef826136ff565b604082019050919050565b6000613007602a83613438565b91506130128261374e565b604082019050919050565b600061302a602683613438565b91506130358261379d565b604082019050919050565b600061304d602283613438565b9150613058826137ec565b604082019050919050565b6000613070601b83613438565b915061307b8261383b565b602082019050919050565b6000613093601b83613438565b915061309e82613864565b602082019050919050565b60006130b6601f83613438565b91506130c18261388d565b602082019050919050565b60006130d9602883613438565b91506130e4826138b6565b604082019050919050565b60006130fc602183613438565b915061310782613905565b604082019050919050565b600061311f602083613438565b915061312a82613954565b602082019050919050565b6000613142602983613438565b915061314d8261397d565b604082019050919050565b6000613165602583613438565b9150613170826139cc565b604082019050919050565b6000613188602483613438565b915061319382613a1b565b604082019050919050565b60006131ab602c83613438565b91506131b682613a6a565b604082019050919050565b6131ca8161359c565b82525050565b6131d9816135a6565b82525050565b60006020820190506131f46000830184612f80565b92915050565b600060208201905061320f6000830184612f8f565b92915050565b6000602082019050818103600083015261322f8184612f9e565b905092915050565b6000602082019050818103600083015261325081612fd7565b9050919050565b6000602082019050818103600083015261327081612ffa565b9050919050565b600060208201905081810360008301526132908161301d565b9050919050565b600060208201905081810360008301526132b081613040565b9050919050565b600060208201905081810360008301526132d081613063565b9050919050565b600060208201905081810360008301526132f081613086565b9050919050565b60006020820190508181036000830152613310816130a9565b9050919050565b60006020820190508181036000830152613330816130cc565b9050919050565b60006020820190508181036000830152613350816130ef565b9050919050565b6000602082019050818103600083015261337081613112565b9050919050565b6000602082019050818103600083015261339081613135565b9050919050565b600060208201905081810360008301526133b081613158565b9050919050565b600060208201905081810360008301526133d08161317b565b9050919050565b600060208201905081810360008301526133f08161319e565b9050919050565b600060208201905061340c60008301846131c1565b92915050565b600060208201905061342760008301846131d0565b92915050565b600081519050919050565b600082825260208201905092915050565b60006134548261359c565b915061345f8361359c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561349457613493613661565b5b828201905092915050565b60006134aa8261359c565b91506134b58361359c565b9250826134c5576134c4613690565b5b828204905092915050565b60006134db8261359c565b91506134e68361359c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561351f5761351e613661565b5b828202905092915050565b60006135358261359c565b91506135408361359c565b92508282101561355357613552613661565b5b828203905092915050565b60006135698261357c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156135d15780820151818401526020810190506135b6565b838111156135e0576000848401525b50505050565b600060028204905060018216806135fe57607f821691505b60208210811415613612576136116136bf565b5b50919050565b60006136238261359c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561365657613655613661565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b613ac28161355e565b8114613acd57600080fd5b50565b613ad981613570565b8114613ae457600080fd5b50565b613af08161359c565b8114613afb57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201a233b108517d6594641f9c0cf889836154fd325a7adae861241b8862d4a197c64736f6c63430008040033
Deployed Bytecode Sourcemap
19132:12016:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22814:417;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20067:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21052:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22541:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20344:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21253:446;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23722:322;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20253:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21707:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23239:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20447:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9911:148;;;:::i;:::-;;19872:48;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9260:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20158;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22015:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20653:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22423:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20860:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22636:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24052:333;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10214:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24393:478;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22814:417;22866:14;22883:12;:10;:12::i;:::-;22866:29;;22929:11;:19;22941:6;22929:19;;;;;;;;;;;;;;;;;;;;;;;;;22928:20;22906:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;23032:15;23059:19;23070:7;23059:10;:19::i;:::-;23031:47;;;;;;23107:28;23127:7;23107;:15;23115:6;23107:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23089:7;:15;23097:6;23089:15;;;;;;;;;;;;;;;:46;;;;23156:20;23168:7;23156;;:11;;:20;;;;:::i;:::-;23146:7;:30;;;;23200:23;23215:7;23200:10;;:14;;:23;;;;:::i;:::-;23187:10;:36;;;;22814:417;;;:::o;20067:83::-;20104:13;20137:5;20130:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20067:83;:::o;21052:193::-;21154:4;21176:39;21185:12;:10;:12::i;:::-;21199:7;21208:6;21176:8;:39::i;:::-;21233:4;21226:11;;21052:193;;;;:::o;22541:87::-;22583:7;22610:10;;22603:17;;22541:87;:::o;20344:95::-;20397:7;19589:21;20417:14;;20344:95;:::o;21253:446::-;21385:4;21402:36;21412:6;21420:9;21431:6;21402:9;:36::i;:::-;21449:220;21472:6;21493:12;:10;:12::i;:::-;21520:138;21576:6;21520:138;;;;;;;;;;;;;;;;;:11;:19;21532:6;21520:19;;;;;;;;;;;;;;;:33;21540:12;:10;:12::i;:::-;21520:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;21449:8;:220::i;:::-;21687:4;21680:11;;21253:446;;;;;:::o;23722:322::-;23816:7;23874;;23863;:18;;23841:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;23962:19;23984:10;:8;:10::i;:::-;23962:32;;24012:24;24024:11;24012:7;:11;;:24;;;;:::i;:::-;24005:31;;;23722:322;;;:::o;20253:83::-;20294:5;20319:9;;;;;;;;;;;20312:16;;20253:83;:::o;21707:300::-;21822:4;21844:133;21867:12;:10;:12::i;:::-;21894:7;21916:50;21955:10;21916:11;:25;21928:12;:10;:12::i;:::-;21916:25;;;;;;;;;;;;;;;:34;21942:7;21916:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;21844:8;:133::i;:::-;21995:4;21988:11;;21707:300;;;;:::o;23239:475::-;23357:7;19589:21;23390:7;:18;;23382:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;23460:17;23455:252;;23495:15;23522:19;23533:7;23522:10;:19::i;:::-;23494:47;;;;;;23563:7;23556:14;;;;;23455:252;23606:23;23639:19;23650:7;23639:10;:19::i;:::-;23603:55;;;;;;23680:15;23673:22;;;23239:475;;;;;:::o;20447:198::-;20513:7;20537:11;:20;20549:7;20537:20;;;;;;;;;;;;;;;;;;;;;;;;;20533:49;;;20566:7;:16;20574:7;20566:16;;;;;;;;;;;;;;;;20559:23;;;;20533:49;20600:37;20620:7;:16;20628:7;20620:16;;;;;;;;;;;;;;;;20600:19;:37::i;:::-;20593:44;;20447:198;;;;:::o;9911:148::-;9491:12;:10;:12::i;:::-;9480:23;;:7;:5;:7::i;:::-;:23;;;9472:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10018:1:::1;9981:40;;10002:6;::::0;::::1;;;;;;;;9981:40;;;;;;;;;;;;10049:1;10032:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;9911:148::o:0;19872:48::-;;;;:::o;9260:87::-;9306:7;9333:6;;;;;;;;;;;9326:13;;9260:87;:::o;20158:::-;20197:13;20230:7;20223:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:87;:::o;22015:400::-;22135:4;22157:228;22180:12;:10;:12::i;:::-;22207:7;22229:145;22286:15;22229:145;;;;;;;;;;;;;;;;;:11;:25;22241:12;:10;:12::i;:::-;22229:25;;;;;;;;;;;;;;;:34;22255:7;22229:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;22157:8;:228::i;:::-;22403:4;22396:11;;22015:400;;;;:::o;20653:199::-;20758:4;20780:42;20790:12;:10;:12::i;:::-;20804:9;20815:6;20780:9;:42::i;:::-;20840:4;20833:11;;20653:199;;;;:::o;22423:110::-;22481:4;22505:11;:20;22517:7;22505:20;;;;;;;;;;;;;;;;;;;;;;;;;22498:27;;22423:110;;;:::o;20860:184::-;20977:7;21009:11;:18;21021:5;21009:18;;;;;;;;;;;;;;;:27;21028:7;21009:27;;;;;;;;;;;;;;;;21002:34;;20860:184;;;;:::o;22636:170::-;9491:12;:10;:12::i;:::-;9480:23;;:7;:5;:7::i;:::-;:23;;;9472:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22762:36:::1;22792:5;22762:25;22774:12;19589:21;22762:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;22747:12;:51;;;;22636:170:::0;:::o;24052:333::-;9491:12;:10;:12::i;:::-;9480:23;;:7;:5;:7::i;:::-;:23;;;9472:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24134:11:::1;:20;24146:7;24134:20;;;;;;;;;;;;;;;;;;;;;;;;;24133:21;24125:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;24220:1;24201:7;:16;24209:7;24201:16;;;;;;;;;;;;;;;;:20;24197:109;;;24257:37;24277:7;:16;24285:7;24277:16;;;;;;;;;;;;;;;;24257:19;:37::i;:::-;24238:7;:16;24246:7;24238:16;;;;;;;;;;;;;;;:56;;;;24197:109;24339:4;24316:11;:20;24328:7;24316:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;24354:9;24369:7;24354:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24052:333:::0;:::o;10214:281::-;9491:12;:10;:12::i;:::-;9480:23;;:7;:5;:7::i;:::-;:23;;;9472:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10337:1:::1;10317:22;;:8;:22;;;;10295:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10450:8;10421:38;;10442:6;::::0;::::1;;;;;;;;10421:38;;;;;;;;;;;;10479:8;10470:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;10214:281:::0;:::o;24393:478::-;9491:12;:10;:12::i;:::-;9480:23;;:7;:5;:7::i;:::-;:23;;;9472:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24474:11:::1;:20;24486:7;24474:20;;;;;;;;;;;;;;;;;;;;;;;;;24466:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;24542:9;24537:327;24561:9;:16;;;;24557:1;:20;24537:327;;;24619:7;24603:23;;:9;24613:1;24603:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;24599:254;;;24662:9;24691:1;24672:9;:16;;;;:20;;;;:::i;:::-;24662:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24647:9;24657:1;24647:12;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;24731:1;24712:7;:16;24720:7;24712:16;;;;;;;;;;;;;;;:20;;;;24774:5;24751:11;:20;24763:7;24751:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;24798:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24832:5;;24599:254;24579:3;;;;;:::i;:::-;;;;24537:327;;;;24393:478:::0;:::o;825:98::-;878:7;905:10;898:17;;825:98;:::o;29101:531::-;29201:7;29223;29245;29267;29289;29325:23;29350:12;29366:20;29378:7;29366:11;:20::i;:::-;29324:62;;;;29397:19;29419:10;:8;:10::i;:::-;29397:32;;29441:15;29458:23;29483:12;29512:39;29524:7;29533:4;29539:11;29512;:39::i;:::-;29440:111;;;;;;29570:7;29579:15;29596:4;29602:15;29619:4;29562:62;;;;;;;;;;;;;;;;29101:531;;;;;;;:::o;4726:136::-;4784:7;4811:43;4815:1;4818;4811:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4804:50;;4726:136;;;;:::o;4262:181::-;4320:7;4340:9;4356:1;4352;:5;;;;:::i;:::-;4340:17;;4381:1;4376;:6;;4368:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4434:1;4427:8;;;4262:181;;;;:::o;24879:371::-;25023:1;25006:19;;:5;:19;;;;24998:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25104:1;25085:21;;:7;:21;;;;25077:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25188:6;25158:11;:18;25170:5;25158:18;;;;;;;;;;;;;;;:27;25177:7;25158:27;;;;;;;;;;;;;;;:36;;;;25226:7;25210:32;;25219:5;25210:32;;;25235:6;25210:32;;;;;;:::i;:::-;;;;;;;;24879:371;;;:::o;25258:1162::-;25407:1;25389:20;;:6;:20;;;;25381:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;25491:1;25470:23;;:9;:23;;;;25462:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;25561:1;25552:6;:10;25544:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;25633:7;:5;:7::i;:::-;25623:17;;:6;:17;;;;:41;;;;;25657:7;:5;:7::i;:::-;25644:20;;:9;:20;;;;25623:41;25619:184;;;25715:12;;25705:6;:22;;25679:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;25619:184;25820:11;:19;25832:6;25820:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;25844:11;:22;25856:9;25844:22;;;;;;;;;;;;;;;;;;;;;;;;;25843:23;25820:46;25816:597;;;25883:48;25905:6;25913:9;25924:6;25883:21;:48::i;:::-;25816:597;;;25954:11;:19;25966:6;25954:19;;;;;;;;;;;;;;;;;;;;;;;;;25953:20;:46;;;;;25977:11;:22;25989:9;25977:22;;;;;;;;;;;;;;;;;;;;;;;;;25953:46;25949:464;;;26016:46;26036:6;26044:9;26055:6;26016:19;:46::i;:::-;25949:464;;;26085:11;:19;26097:6;26085:19;;;;;;;;;;;;;;;;;;;;;;;;;26084:20;:47;;;;;26109:11;:22;26121:9;26109:22;;;;;;;;;;;;;;;;;;;;;;;;;26108:23;26084:47;26080:333;;;26148:44;26166:6;26174:9;26185:6;26148:17;:44::i;:::-;26080:333;;;26214:11;:19;26226:6;26214:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;26237:11;:22;26249:9;26237:22;;;;;;;;;;;;;;;;;;;;;;;;;26214:45;26210:203;;;26276:48;26298:6;26306:9;26317:6;26276:21;:48::i;:::-;26210:203;;;26357:44;26375:6;26383:9;26394:6;26357:17;:44::i;:::-;26210:203;26080:333;25949:464;25816:597;25258:1162;;;:::o;5165:226::-;5285:7;5318:1;5313;:6;;5321:12;5305:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5345:9;5361:1;5357;:5;;;;:::i;:::-;5345:17;;5382:1;5375:8;;;5165:226;;;;;:::o;30368:164::-;30410:7;30431:15;30448;30467:19;:17;:19::i;:::-;30430:56;;;;30504:20;30516:7;30504;:11;;:20;;;;:::i;:::-;30497:27;;;;30368:164;:::o;6597:132::-;6655:7;6682:39;6686:1;6689;6682:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6675:46;;6597:132;;;;:::o;5650:471::-;5708:7;5958:1;5953;:6;5949:47;;;5983:1;5976:8;;;;5949:47;6008:9;6024:1;6020;:5;;;;:::i;:::-;6008:17;;6053:1;6048;6044;:5;;;;:::i;:::-;:10;6036:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6112:1;6105:8;;;5650:471;;;;;:::o;29640:262::-;29727:7;29736;29761:12;29776:23;29797:1;29776:16;29788:3;29776:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;29761:38;;29810:23;29836:17;29848:4;29836:7;:11;;:17;;;;:::i;:::-;29810:43;;29872:15;29889:4;29864:30;;;;;;29640:262;;;:::o;29910:450::-;30080:7;30102;30124;30159:15;30177:24;30189:11;30177:7;:11;;:24;;;;:::i;:::-;30159:42;;30212:12;30227:21;30236:11;30227:4;:8;;:21;;;;:::i;:::-;30212:36;;30259:23;30285:17;30297:4;30285:7;:11;;:17;;;;:::i;:::-;30259:43;;30321:7;30330:15;30347:4;30313:39;;;;;;;;;29910:450;;;;;;;:::o;27627:616::-;27778:15;27808:23;27846:12;27873:23;27911:12;27937:19;27948:7;27937:10;:19::i;:::-;27763:193;;;;;;;;;;27985:28;28005:7;27985;:15;27993:6;27985:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27967:7;:15;27975:6;27967:15;;;;;;;;;;;;;;;:46;;;;28042:28;28062:7;28042;:15;28050:6;28042:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;28024:7;:15;28032:6;28024:15;;;;;;;;;;;;;;;:46;;;;28102:39;28125:15;28102:7;:18;28110:9;28102:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;28081:7;:18;28089:9;28081:18;;;;;;;;;;;;;;;:60;;;;28152:23;28164:4;28170;28152:11;:23::i;:::-;28208:9;28191:44;;28200:6;28191:44;;;28219:15;28191:44;;;;;;:::i;:::-;;;;;;;;27627:616;;;;;;;;:::o;26991:628::-;27140:15;27170:23;27208:12;27235:23;27273:12;27299:19;27310:7;27299:10;:19::i;:::-;27125:193;;;;;;;;;;27347:28;27367:7;27347;:15;27355:6;27347:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27329:7;:15;27337:6;27329:15;;;;;;;;;;;;;;;:46;;;;27407:39;27430:15;27407:7;:18;27415:9;27407:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;27386:7;:18;27394:9;27386:18;;;;;;;;;;;;;;;:60;;;;27478:39;27501:15;27478:7;:18;27486:9;27478:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;27457:7;:18;27465:9;27457:18;;;;;;;;;;;;;;;:60;;;;27528:23;27540:4;27546;27528:11;:23::i;:::-;27584:9;27567:44;;27576:6;27567:44;;;27595:15;27567:44;;;;;;:::i;:::-;;;;;;;;26991:628;;;;;;;;:::o;26428:555::-;26575:15;26605:23;26643:12;26670:23;26708:12;26734:19;26745:7;26734:10;:19::i;:::-;26560:193;;;;;;;;;;26782:28;26802:7;26782;:15;26790:6;26782:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26764:7;:15;26772:6;26764:15;;;;;;;;;;;;;;;:46;;;;26842:39;26865:15;26842:7;:18;26850:9;26842:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26821:7;:18;26829:9;26821:18;;;;;;;;;;;;;;;:60;;;;26892:23;26904:4;26910;26892:11;:23::i;:::-;26948:9;26931:44;;26940:6;26931:44;;;26959:15;26931:44;;;;;;:::i;:::-;;;;;;;;26428:555;;;;;;;;:::o;28251:687::-;28402:15;28432:23;28470:12;28497:23;28535:12;28561:19;28572:7;28561:10;:19::i;:::-;28387:193;;;;;;;;;;28609:28;28629:7;28609;:15;28617:6;28609:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;28591:7;:15;28599:6;28591:15;;;;;;;;;;;;;;;:46;;;;28666:28;28686:7;28666;:15;28674:6;28666:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;28648:7;:15;28656:6;28648:15;;;;;;;;;;;;;;;:46;;;;28726:39;28749:15;28726:7;:18;28734:9;28726:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;28705:7;:18;28713:9;28705:18;;;;;;;;;;;;;;;:60;;;;28797:39;28820:15;28797:7;:18;28805:9;28797:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;28776:7;:18;28784:9;28776:18;;;;;;;;;;;;;;;:60;;;;28847:23;28859:4;28865;28847:11;:23::i;:::-;28903:9;28886:44;;28895:6;28886:44;;;28914:15;28886:44;;;;;;:::i;:::-;;;;;;;;28251:687;;;;;;;;:::o;30540:605::-;30591:7;30600;30620:15;30638:7;;30620:25;;30656:15;19589:21;30656:25;;30697:9;30692:338;30716:9;:16;;;;30712:1;:20;30692:338;;;30800:7;30776;:21;30784:9;30794:1;30784:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30776:21;;;;;;;;;;;;;;;;:31;:83;;;;30852:7;30828;:21;30836:9;30846:1;30836:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30828:21;;;;;;;;;;;;;;;;:31;30776:83;30754:146;;;30883:7;;19589:21;30875:25;;;;;;;;;30754:146;30925:34;30937:7;:21;30945:9;30955:1;30945:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30937:21;;;;;;;;;;;;;;;;30925:7;:11;;:34;;;;:::i;:::-;30915:44;;30984:34;30996:7;:21;31004:9;31014:1;31004:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30996:21;;;;;;;;;;;;;;;;30984:7;:11;;:34;;;;:::i;:::-;30974:44;;30734:3;;;;;:::i;:::-;;;;30692:338;;;;31054:20;19589:21;31054:7;;:11;;:20;;;;:::i;:::-;31044:7;:30;31040:61;;;31084:7;;19589:21;31076:25;;;;;;;;31040:61;31120:7;31129;31112:25;;;;;;30540:605;;;:::o;7225:223::-;7345:7;7377:1;7373;:5;7380:12;7365:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7404:9;7420:1;7416;:5;;;;:::i;:::-;7404:17;;7439:1;7432:8;;;7225:223;;;;;:::o;28946:147::-;29024:17;29036:4;29024:7;;:11;;:17;;;;:::i;:::-;29014:7;:27;;;;29065:20;29080:4;29065:10;;:14;;:20;;;;:::i;:::-;29052:10;:33;;;;28946:147;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;495:6;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;772:6;780;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;1194:6;1202;1210;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:407::-;1743:6;1751;1800:2;1788:9;1779:7;1775:23;1771:32;1768:2;;;1816:1;1813;1806:12;1768:2;1859:1;1884:53;1929:7;1920:6;1909:9;1905:22;1884:53;:::i;:::-;1874:63;;1830:117;1986:2;2012:53;2057:7;2048:6;2037:9;2033:22;2012:53;:::i;:::-;2002:63;;1957:118;1758:324;;;;;:::o;2088:262::-;2147:6;2196:2;2184:9;2175:7;2171:23;2167:32;2164:2;;;2212:1;2209;2202:12;2164:2;2255:1;2280:53;2325:7;2316:6;2305:9;2301:22;2280:53;:::i;:::-;2270:63;;2226:117;2154:196;;;;:::o;2356:401::-;2421:6;2429;2478:2;2466:9;2457:7;2453:23;2449:32;2446:2;;;2494:1;2491;2484:12;2446:2;2537:1;2562:53;2607:7;2598:6;2587:9;2583:22;2562:53;:::i;:::-;2552:63;;2508:117;2664:2;2690:50;2732:7;2723:6;2712:9;2708:22;2690:50;:::i;:::-;2680:60;;2635:115;2436:321;;;;;:::o;2763:118::-;2850:24;2868:5;2850:24;:::i;:::-;2845:3;2838:37;2828:53;;:::o;2887:109::-;2968:21;2983:5;2968:21;:::i;:::-;2963:3;2956:34;2946:50;;:::o;3002:364::-;3090:3;3118:39;3151:5;3118:39;:::i;:::-;3173:71;3237:6;3232:3;3173:71;:::i;:::-;3166:78;;3253:52;3298:6;3293:3;3286:4;3279:5;3275:16;3253:52;:::i;:::-;3330:29;3352:6;3330:29;:::i;:::-;3325:3;3321:39;3314:46;;3094:272;;;;;:::o;3372:366::-;3514:3;3535:67;3599:2;3594:3;3535:67;:::i;:::-;3528:74;;3611:93;3700:3;3611:93;:::i;:::-;3729:2;3724:3;3720:12;3713:19;;3518:220;;;:::o;3744:366::-;3886:3;3907:67;3971:2;3966:3;3907:67;:::i;:::-;3900:74;;3983:93;4072:3;3983:93;:::i;:::-;4101:2;4096:3;4092:12;4085:19;;3890:220;;;:::o;4116:366::-;4258:3;4279:67;4343:2;4338:3;4279:67;:::i;:::-;4272:74;;4355:93;4444:3;4355:93;:::i;:::-;4473:2;4468:3;4464:12;4457:19;;4262:220;;;:::o;4488:366::-;4630:3;4651:67;4715:2;4710:3;4651:67;:::i;:::-;4644:74;;4727:93;4816:3;4727:93;:::i;:::-;4845:2;4840:3;4836:12;4829:19;;4634:220;;;:::o;4860:366::-;5002:3;5023:67;5087:2;5082:3;5023:67;:::i;:::-;5016:74;;5099:93;5188:3;5099:93;:::i;:::-;5217:2;5212:3;5208:12;5201:19;;5006:220;;;:::o;5232:366::-;5374:3;5395:67;5459:2;5454:3;5395:67;:::i;:::-;5388:74;;5471:93;5560:3;5471:93;:::i;:::-;5589:2;5584:3;5580:12;5573:19;;5378:220;;;:::o;5604:366::-;5746:3;5767:67;5831:2;5826:3;5767:67;:::i;:::-;5760:74;;5843:93;5932:3;5843:93;:::i;:::-;5961:2;5956:3;5952:12;5945:19;;5750:220;;;:::o;5976:366::-;6118:3;6139:67;6203:2;6198:3;6139:67;:::i;:::-;6132:74;;6215:93;6304:3;6215:93;:::i;:::-;6333:2;6328:3;6324:12;6317:19;;6122:220;;;:::o;6348:366::-;6490:3;6511:67;6575:2;6570:3;6511:67;:::i;:::-;6504:74;;6587:93;6676:3;6587:93;:::i;:::-;6705:2;6700:3;6696:12;6689:19;;6494:220;;;:::o;6720:366::-;6862:3;6883:67;6947:2;6942:3;6883:67;:::i;:::-;6876:74;;6959:93;7048:3;6959:93;:::i;:::-;7077:2;7072:3;7068:12;7061:19;;6866:220;;;:::o;7092:366::-;7234:3;7255:67;7319:2;7314:3;7255:67;:::i;:::-;7248:74;;7331:93;7420:3;7331:93;:::i;:::-;7449:2;7444:3;7440:12;7433:19;;7238:220;;;:::o;7464:366::-;7606:3;7627:67;7691:2;7686:3;7627:67;:::i;:::-;7620:74;;7703:93;7792:3;7703:93;:::i;:::-;7821:2;7816:3;7812:12;7805:19;;7610:220;;;:::o;7836:366::-;7978:3;7999:67;8063:2;8058:3;7999:67;:::i;:::-;7992:74;;8075:93;8164:3;8075:93;:::i;:::-;8193:2;8188:3;8184:12;8177:19;;7982:220;;;:::o;8208:366::-;8350:3;8371:67;8435:2;8430:3;8371:67;:::i;:::-;8364:74;;8447:93;8536:3;8447:93;:::i;:::-;8565:2;8560:3;8556:12;8549:19;;8354:220;;;:::o;8580:118::-;8667:24;8685:5;8667:24;:::i;:::-;8662:3;8655:37;8645:53;;:::o;8704:112::-;8787:22;8803:5;8787:22;:::i;:::-;8782:3;8775:35;8765:51;;:::o;8822:222::-;8915:4;8953:2;8942:9;8938:18;8930:26;;8966:71;9034:1;9023:9;9019:17;9010:6;8966:71;:::i;:::-;8920:124;;;;:::o;9050:210::-;9137:4;9175:2;9164:9;9160:18;9152:26;;9188:65;9250:1;9239:9;9235:17;9226:6;9188:65;:::i;:::-;9142:118;;;;:::o;9266:313::-;9379:4;9417:2;9406:9;9402:18;9394:26;;9466:9;9460:4;9456:20;9452:1;9441:9;9437:17;9430:47;9494:78;9567:4;9558:6;9494:78;:::i;:::-;9486:86;;9384:195;;;;:::o;9585:419::-;9751:4;9789:2;9778:9;9774:18;9766:26;;9838:9;9832:4;9828:20;9824:1;9813:9;9809:17;9802:47;9866:131;9992:4;9866:131;:::i;:::-;9858:139;;9756:248;;;:::o;10010:419::-;10176:4;10214:2;10203:9;10199:18;10191:26;;10263:9;10257:4;10253:20;10249:1;10238:9;10234:17;10227:47;10291:131;10417:4;10291:131;:::i;:::-;10283:139;;10181:248;;;:::o;10435:419::-;10601:4;10639:2;10628:9;10624:18;10616:26;;10688:9;10682:4;10678:20;10674:1;10663:9;10659:17;10652:47;10716:131;10842:4;10716:131;:::i;:::-;10708:139;;10606:248;;;:::o;10860:419::-;11026:4;11064:2;11053:9;11049:18;11041:26;;11113:9;11107:4;11103:20;11099:1;11088:9;11084:17;11077:47;11141:131;11267:4;11141:131;:::i;:::-;11133:139;;11031:248;;;:::o;11285:419::-;11451:4;11489:2;11478:9;11474:18;11466:26;;11538:9;11532:4;11528:20;11524:1;11513:9;11509:17;11502:47;11566:131;11692:4;11566:131;:::i;:::-;11558:139;;11456:248;;;:::o;11710:419::-;11876:4;11914:2;11903:9;11899:18;11891:26;;11963:9;11957:4;11953:20;11949:1;11938:9;11934:17;11927:47;11991:131;12117:4;11991:131;:::i;:::-;11983:139;;11881:248;;;:::o;12135:419::-;12301:4;12339:2;12328:9;12324:18;12316:26;;12388:9;12382:4;12378:20;12374:1;12363:9;12359:17;12352:47;12416:131;12542:4;12416:131;:::i;:::-;12408:139;;12306:248;;;:::o;12560:419::-;12726:4;12764:2;12753:9;12749:18;12741:26;;12813:9;12807:4;12803:20;12799:1;12788:9;12784:17;12777:47;12841:131;12967:4;12841:131;:::i;:::-;12833:139;;12731:248;;;:::o;12985:419::-;13151:4;13189:2;13178:9;13174:18;13166:26;;13238:9;13232:4;13228:20;13224:1;13213:9;13209:17;13202:47;13266:131;13392:4;13266:131;:::i;:::-;13258:139;;13156:248;;;:::o;13410:419::-;13576:4;13614:2;13603:9;13599:18;13591:26;;13663:9;13657:4;13653:20;13649:1;13638:9;13634:17;13627:47;13691:131;13817:4;13691:131;:::i;:::-;13683:139;;13581:248;;;:::o;13835:419::-;14001:4;14039:2;14028:9;14024:18;14016:26;;14088:9;14082:4;14078:20;14074:1;14063:9;14059:17;14052:47;14116:131;14242:4;14116:131;:::i;:::-;14108:139;;14006:248;;;:::o;14260:419::-;14426:4;14464:2;14453:9;14449:18;14441:26;;14513:9;14507:4;14503:20;14499:1;14488:9;14484:17;14477:47;14541:131;14667:4;14541:131;:::i;:::-;14533:139;;14431:248;;;:::o;14685:419::-;14851:4;14889:2;14878:9;14874:18;14866:26;;14938:9;14932:4;14928:20;14924:1;14913:9;14909:17;14902:47;14966:131;15092:4;14966:131;:::i;:::-;14958:139;;14856:248;;;:::o;15110:419::-;15276:4;15314:2;15303:9;15299:18;15291:26;;15363:9;15357:4;15353:20;15349:1;15338:9;15334:17;15327:47;15391:131;15517:4;15391:131;:::i;:::-;15383:139;;15281:248;;;:::o;15535:222::-;15628:4;15666:2;15655:9;15651:18;15643:26;;15679:71;15747:1;15736:9;15732:17;15723:6;15679:71;:::i;:::-;15633:124;;;;:::o;15763:214::-;15852:4;15890:2;15879:9;15875:18;15867:26;;15903:67;15967:1;15956:9;15952:17;15943:6;15903:67;:::i;:::-;15857:120;;;;:::o;15983:99::-;16035:6;16069:5;16063:12;16053:22;;16042:40;;;:::o;16088:169::-;16172:11;16206:6;16201:3;16194:19;16246:4;16241:3;16237:14;16222:29;;16184:73;;;;:::o;16263:305::-;16303:3;16322:20;16340:1;16322:20;:::i;:::-;16317:25;;16356:20;16374:1;16356:20;:::i;:::-;16351:25;;16510:1;16442:66;16438:74;16435:1;16432:81;16429:2;;;16516:18;;:::i;:::-;16429:2;16560:1;16557;16553:9;16546:16;;16307:261;;;;:::o;16574:185::-;16614:1;16631:20;16649:1;16631:20;:::i;:::-;16626:25;;16665:20;16683:1;16665:20;:::i;:::-;16660:25;;16704:1;16694:2;;16709:18;;:::i;:::-;16694:2;16751:1;16748;16744:9;16739:14;;16616:143;;;;:::o;16765:348::-;16805:7;16828:20;16846:1;16828:20;:::i;:::-;16823:25;;16862:20;16880:1;16862:20;:::i;:::-;16857:25;;17050:1;16982:66;16978:74;16975:1;16972:81;16967:1;16960:9;16953:17;16949:105;16946:2;;;17057:18;;:::i;:::-;16946:2;17105:1;17102;17098:9;17087:20;;16813:300;;;;:::o;17119:191::-;17159:4;17179:20;17197:1;17179:20;:::i;:::-;17174:25;;17213:20;17231:1;17213:20;:::i;:::-;17208:25;;17252:1;17249;17246:8;17243:2;;;17257:18;;:::i;:::-;17243:2;17302:1;17299;17295:9;17287:17;;17164:146;;;;:::o;17316:96::-;17353:7;17382:24;17400:5;17382:24;:::i;:::-;17371:35;;17361:51;;;:::o;17418:90::-;17452:7;17495:5;17488:13;17481:21;17470:32;;17460:48;;;:::o;17514:126::-;17551:7;17591:42;17584:5;17580:54;17569:65;;17559:81;;;:::o;17646:77::-;17683:7;17712:5;17701:16;;17691:32;;;:::o;17729:86::-;17764:7;17804:4;17797:5;17793:16;17782:27;;17772:43;;;:::o;17821:307::-;17889:1;17899:113;17913:6;17910:1;17907:13;17899:113;;;17998:1;17993:3;17989:11;17983:18;17979:1;17974:3;17970:11;17963:39;17935:2;17932:1;17928:10;17923:15;;17899:113;;;18030:6;18027:1;18024:13;18021:2;;;18110:1;18101:6;18096:3;18092:16;18085:27;18021:2;17870:258;;;;:::o;18134:320::-;18178:6;18215:1;18209:4;18205:12;18195:22;;18262:1;18256:4;18252:12;18283:18;18273:2;;18339:4;18331:6;18327:17;18317:27;;18273:2;18401;18393:6;18390:14;18370:18;18367:38;18364:2;;;18420:18;;:::i;:::-;18364:2;18185:269;;;;:::o;18460:233::-;18499:3;18522:24;18540:5;18522:24;:::i;:::-;18513:33;;18568:66;18561:5;18558:77;18555:2;;;18638:18;;:::i;:::-;18555:2;18685:1;18678:5;18674:13;18667:20;;18503:190;;;:::o;18699:180::-;18747:77;18744:1;18737:88;18844:4;18841:1;18834:15;18868:4;18865:1;18858:15;18885:180;18933:77;18930:1;18923:88;19030:4;19027:1;19020:15;19054:4;19051:1;19044:15;19071:180;19119:77;19116:1;19109:88;19216:4;19213:1;19206:15;19240:4;19237:1;19230:15;19257:102;19298:6;19349:2;19345:7;19340:2;19333:5;19329:14;19325:28;19315:38;;19305:54;;;:::o;19365:222::-;19505:34;19501:1;19493:6;19489:14;19482:58;19574:5;19569:2;19561:6;19557:15;19550:30;19471:116;:::o;19593:229::-;19733:34;19729:1;19721:6;19717:14;19710:58;19802:12;19797:2;19789:6;19785:15;19778:37;19699:123;:::o;19828:225::-;19968:34;19964:1;19956:6;19952:14;19945:58;20037:8;20032:2;20024:6;20020:15;20013:33;19934:119;:::o;20059:221::-;20199:34;20195:1;20187:6;20183:14;20176:58;20268:4;20263:2;20255:6;20251:15;20244:29;20165:115;:::o;20286:177::-;20426:29;20422:1;20414:6;20410:14;20403:53;20392:71;:::o;20469:177::-;20609:29;20605:1;20597:6;20593:14;20586:53;20575:71;:::o;20652:181::-;20792:33;20788:1;20780:6;20776:14;20769:57;20758:75;:::o;20839:227::-;20979:34;20975:1;20967:6;20963:14;20956:58;21048:10;21043:2;21035:6;21031:15;21024:35;20945:121;:::o;21072:220::-;21212:34;21208:1;21200:6;21196:14;21189:58;21281:3;21276:2;21268:6;21264:15;21257:28;21178:114;:::o;21298:182::-;21438:34;21434:1;21426:6;21422:14;21415:58;21404:76;:::o;21486:228::-;21626:34;21622:1;21614:6;21610:14;21603:58;21695:11;21690:2;21682:6;21678:15;21671:36;21592:122;:::o;21720:224::-;21860:34;21856:1;21848:6;21844:14;21837:58;21929:7;21924:2;21916:6;21912:15;21905:32;21826:118;:::o;21950:223::-;22090:34;22086:1;22078:6;22074:14;22067:58;22159:6;22154:2;22146:6;22142:15;22135:31;22056:117;:::o;22179:231::-;22319:34;22315:1;22307:6;22303:14;22296:58;22388:14;22383:2;22375:6;22371:15;22364:39;22285:125;:::o;22416:122::-;22489:24;22507:5;22489:24;:::i;:::-;22482:5;22479:35;22469:2;;22528:1;22525;22518:12;22469:2;22459:79;:::o;22544:116::-;22614:21;22629:5;22614:21;:::i;:::-;22607:5;22604:32;22594:2;;22650:1;22647;22640:12;22594:2;22584:76;:::o;22666:122::-;22739:24;22757:5;22739:24;:::i;:::-;22732:5;22729:35;22719:2;;22778:1;22775;22768:12;22719:2;22709:79;:::o
Swarm Source
ipfs://1a233b108517d6594641f9c0cf889836154fd325a7adae861241b8862d4a197c
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.