Token Cr0nicle
Overview CRC20
Price
$0.00 @ 0.000000 CRO
Fully Diluted Market Cap
Total Supply:
9,084,383.74737 Cr0nicle
Holders:
50 addresses
Contract:
Decimals:
8
Balance
0.00393772 Cr0nicleValue
$0.00
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Cr0nicle
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-03-21 */ /** *Submitted for verification at BscScan.com on 2021-03-07 */ pragma solidity ^0.6.0; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { 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); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @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) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @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"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); 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); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public 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; } } contract Cr0nicle 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; uint8 private constant _decimals = 8; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 10000000 * 10 ** uint256(_decimals); uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _tBurnTotal; string private constant _name = 'Cr0nicle'; string private constant _symbol = 'Cr0nicle'; uint256 private _taxFee = 400; uint256 private _burnFee = 400; uint private _max_tx_size = 1000000 * 10 ** uint256(_decimals); 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 totalBurn() public view returns (uint256) { return _tBurnTotal; } function deliver(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(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.'); 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 <= _max_tx_size, "Transfer amount exceeds 1% of Total Supply."); 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 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _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, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn) private { _rTotal = _rTotal.sub(rFee).sub(rBurn); _tFeeTotal = _tFeeTotal.add(tFee); _tBurnTotal = _tBurnTotal.add(tBurn); _tTotal = _tTotal.sub(tBurn); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getTValues(tAmount, _taxFee, _burnFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tBurn, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 burnFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = ((tAmount.mul(taxFee)).div(100)).div(100); uint256 tBurn = ((tAmount.mul(burnFee)).div(100)).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tBurn); return (tTransferAmount, tFee, tBurn); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rBurn = tBurn.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn); 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); } function _getTaxFee() public view returns(uint256) { return _taxFee; } function _getBurnFee() public view returns(uint256) { return _burnFee; } function _getMaxTxAmount() public view returns(uint256){ return _max_tx_size; } function _setTaxFee(uint256 taxFee) external onlyOwner() { _taxFee = taxFee; } function _setBurnFee(uint256 burnFee) external onlyOwner() { _burnFee = burnFee; } }
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":"_getBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"_setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"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"},{"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":[],"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":"totalBurn","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
6080604052600860ff16600a0a6298968002600655600654600019816200002257fe5b0660001903600755610190600a55610190600b55600860ff16600a0a620f424002600c553480156200005357600080fd5b50600062000066620001d660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600160006200011b620001d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000169620001d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3620001de565b600033905090565b6138ce80620001ee6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80635880b873116100f9578063a9059cbb11610097578063f2cc0c1811610071578063f2cc0c1814610801578063f2fde38b14610845578063f7a9159114610889578063f84354f1146108a7576101a9565b8063a9059cbb146106cb578063cba0e9961461072f578063dd62ed3e14610789576101a9565b8063715018a6116100d3578063715018a6146105a65780638da5cb5b146105b057806395d89b41146105e4578063a457c2d714610667576101a9565b80635880b873146105025780636a39d32c1461053057806370a082311461054e576101a9565b80632fbff030116101665780633b6b1961116101405780633b6b19611461043a5780633bd5d173146104685780633c9f861d146104965780634549b039146104b4576101a9565b80632fbff03014610397578063313ce567146103b557806339509351146103d6576101a9565b806306fdde03146101ae578063095ea7b31461023157806313114a9d1461029557806318160ddd146102b357806323b872dd146102d15780632d83811914610355575b600080fd5b6101b66108eb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561024757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610928565b60405180821515815260200191505060405180910390f35b61029d610946565b6040518082815260200191505060405180910390f35b6102bb610950565b6040518082815260200191505060405180910390f35b61033d600480360360608110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061095a565b60405180821515815260200191505060405180910390f35b6103816004803603602081101561036b57600080fd5b8101908080359060200190929190505050610a33565b6040518082815260200191505060405180910390f35b61039f610ab7565b6040518082815260200191505060405180910390f35b6103bd610ac1565b604051808260ff16815260200191505060405180910390f35b610422600480360360408110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aca565b60405180821515815260200191505060405180910390f35b6104666004803603602081101561045057600080fd5b8101908080359060200190929190505050610b7d565b005b6104946004803603602081101561047e57600080fd5b8101908080359060200190929190505050610c4f565b005b61049e610de0565b6040518082815260200191505060405180910390f35b6104ec600480360360408110156104ca57600080fd5b8101908080359060200190929190803515159060200190929190505050610dea565b6040518082815260200191505060405180910390f35b61052e6004803603602081101561051857600080fd5b8101908080359060200190929190505050610ea1565b005b610538610f73565b6040518082815260200191505060405180910390f35b6105906004803603602081101561056457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f7d565b6040518082815260200191505060405180910390f35b6105ae611068565b005b6105b86111ee565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105ec611217565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062c578082015181840152602081019050610611565b50505050905090810190601f1680156106595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b36004803603604081101561067d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611254565b60405180821515815260200191505060405180910390f35b610717600480360360408110156106e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611321565b60405180821515815260200191505060405180910390f35b6107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b60405180821515815260200191505060405180910390f35b6107eb6004803603604081101561079f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611395565b6040518082815260200191505060405180910390f35b6108436004803603602081101561081757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141c565b005b6108876004803603602081101561085b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117cf565b005b6108916119da565b6040518082815260200191505060405180910390f35b6108e9600480360360208110156108bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119e4565b005b60606040518060400160405280600881526020017f4372306e69636c65000000000000000000000000000000000000000000000000815250905090565b600061093c610935611d6e565b8484611d76565b6001905092915050565b6000600854905090565b6000600654905090565b6000610967848484611f6d565b610a2884610973611d6e565b610a238560405180606001604052806028815260200161378c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d9611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b611d76565b600190509392505050565b6000600754821115610a90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806136ce602a913960400191505060405180910390fd5b6000610a9a61255d565b9050610aaf818461258890919063ffffffff16565b915050919050565b6000600a54905090565b60006008905090565b6000610b73610ad7611d6e565b84610b6e8560036000610ae8611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b611d76565b6001905092915050565b610b85611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b6000610c59611d6e565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613848602c913960400191505060405180910390fd5b6000610d098361265a565b50505050509050610d6281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dba816007546126c290919063ffffffff16565b600781905550610dd5836008546125d290919063ffffffff16565b600881905550505050565b6000600954905090565b6000600654831115610e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610e84576000610e748461265a565b5050505050905080915050610e9b565b6000610e8f8461265a565b50505050915050809150505b92915050565b610ea9611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b6000600b54905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561101857600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611063565b611060600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a33565b90505b919050565b611070611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4372306e69636c65000000000000000000000000000000000000000000000000815250905090565b6000611317611261611d6e565b8461131285604051806060016040528060258152602001613874602591396003600061128b611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b611d76565b6001905092915050565b600061133561132e611d6e565b8484611f6d565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611424611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138266022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611711576116cd600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a33565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117d7611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561191d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806136f86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600c54905090565b6119ec611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611d6a578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611b9f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d5d57600560016005805490500381548110611bfb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c3357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611d2357fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611d6a565b8080600101915050611b6e565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806138026024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061371e6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806137dd6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806136ab6023913960400191505060405180910390fd5b600081116120d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806137b46029913960400191505060405180910390fd5b6120da6111ee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561214857506121186111ee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121a957600c548111156121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613740602b913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561224c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122615761225c83838361270c565b612498565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123045750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123195761231483838361298a565b612497565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123bd5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123d2576123cd838383612c08565b612496565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124745750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561248957612484838383612df1565b612495565b612494838383612c08565b5b5b5b5b505050565b600083831115829061254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561250f5780820151818401526020810190506124f4565b50505050905090810190601f16801561253c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080600061256a613104565b91509150612581818361258890919063ffffffff16565b9250505090565b60006125ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613395565b905092915050565b600080828401905083811015612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006126778a600a54600b5461345b565b925092509250600061268761255d565b9050600080600061269a8e878787613517565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061270483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061249d565b905092915050565b600061271661255d565b905060008060008060008061272a8861265a565b955095509550955095509550600061274b88836135a090919063ffffffff16565b905061279f89600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283487600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c986600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291885828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600061299461255d565b90506000806000806000806129a88861265a565b95509550955095509550955060006129c988836135a090919063ffffffff16565b9050612a1d87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab284600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4786600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9685828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612c1261255d565b9050600080600080600080612c268861265a565b9550955095509550955095506000612c4788836135a090919063ffffffff16565b9050612c9b87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d3086600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d7f85828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612dfb61255d565b9050600080600080600080612e0f8861265a565b9550955095509550955095506000612e3088836135a090919063ffffffff16565b9050612e8489600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1987600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fae84600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061304386600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061309285828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060005b6005805490508110156133585782600160006005848154811061313757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061321e57508160026000600584815481106131b657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156132355760075460065494509450505050613391565b6132be600160006005848154811061324957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126c290919063ffffffff16565b925061334960026000600584815481106132d457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126c290919063ffffffff16565b91508080600101915050613118565b5061337060065460075461258890919063ffffffff16565b82101561338857600754600654935093505050613391565b81819350935050505b9091565b60008083118290613441576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134065780820151818401526020810190506133eb565b50505050905090810190601f1680156134335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161344d57fe5b049050809150509392505050565b60008060008061349a606461348c606461347e8a8c6135a090919063ffffffff16565b61258890919063ffffffff16565b61258890919063ffffffff16565b905060006134d760646134c960646134bb8a8d6135a090919063ffffffff16565b61258890919063ffffffff16565b61258890919063ffffffff16565b90506000613500826134f2858c6126c290919063ffffffff16565b6126c290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061353085896135a090919063ffffffff16565b9050600061354786896135a090919063ffffffff16565b9050600061355e87896135a090919063ffffffff16565b905060006135878261357985876126c290919063ffffffff16565b6126c290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156135b35760009050613620565b60008284029050828482816135c457fe5b041461361b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061376b6021913960400191505060405180910390fd5b809150505b92915050565b61364d8361363f866007546126c290919063ffffffff16565b6126c290919063ffffffff16565b600781905550613668826008546125d290919063ffffffff16565b600881905550613683816009546125d290919063ffffffff16565b60098190555061369e816006546126c290919063ffffffff16565b6006819055505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e742065786365656473203125206f6620546f74616c20537570706c792e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206d64975bb8ae72e3552b8fa11a1abf989618ddcec8724504b585ad258815732464736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80635880b873116100f9578063a9059cbb11610097578063f2cc0c1811610071578063f2cc0c1814610801578063f2fde38b14610845578063f7a9159114610889578063f84354f1146108a7576101a9565b8063a9059cbb146106cb578063cba0e9961461072f578063dd62ed3e14610789576101a9565b8063715018a6116100d3578063715018a6146105a65780638da5cb5b146105b057806395d89b41146105e4578063a457c2d714610667576101a9565b80635880b873146105025780636a39d32c1461053057806370a082311461054e576101a9565b80632fbff030116101665780633b6b1961116101405780633b6b19611461043a5780633bd5d173146104685780633c9f861d146104965780634549b039146104b4576101a9565b80632fbff03014610397578063313ce567146103b557806339509351146103d6576101a9565b806306fdde03146101ae578063095ea7b31461023157806313114a9d1461029557806318160ddd146102b357806323b872dd146102d15780632d83811914610355575b600080fd5b6101b66108eb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561024757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610928565b60405180821515815260200191505060405180910390f35b61029d610946565b6040518082815260200191505060405180910390f35b6102bb610950565b6040518082815260200191505060405180910390f35b61033d600480360360608110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061095a565b60405180821515815260200191505060405180910390f35b6103816004803603602081101561036b57600080fd5b8101908080359060200190929190505050610a33565b6040518082815260200191505060405180910390f35b61039f610ab7565b6040518082815260200191505060405180910390f35b6103bd610ac1565b604051808260ff16815260200191505060405180910390f35b610422600480360360408110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aca565b60405180821515815260200191505060405180910390f35b6104666004803603602081101561045057600080fd5b8101908080359060200190929190505050610b7d565b005b6104946004803603602081101561047e57600080fd5b8101908080359060200190929190505050610c4f565b005b61049e610de0565b6040518082815260200191505060405180910390f35b6104ec600480360360408110156104ca57600080fd5b8101908080359060200190929190803515159060200190929190505050610dea565b6040518082815260200191505060405180910390f35b61052e6004803603602081101561051857600080fd5b8101908080359060200190929190505050610ea1565b005b610538610f73565b6040518082815260200191505060405180910390f35b6105906004803603602081101561056457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f7d565b6040518082815260200191505060405180910390f35b6105ae611068565b005b6105b86111ee565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105ec611217565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062c578082015181840152602081019050610611565b50505050905090810190601f1680156106595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106b36004803603604081101561067d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611254565b60405180821515815260200191505060405180910390f35b610717600480360360408110156106e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611321565b60405180821515815260200191505060405180910390f35b6107716004803603602081101561074557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b60405180821515815260200191505060405180910390f35b6107eb6004803603604081101561079f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611395565b6040518082815260200191505060405180910390f35b6108436004803603602081101561081757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141c565b005b6108876004803603602081101561085b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117cf565b005b6108916119da565b6040518082815260200191505060405180910390f35b6108e9600480360360208110156108bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119e4565b005b60606040518060400160405280600881526020017f4372306e69636c65000000000000000000000000000000000000000000000000815250905090565b600061093c610935611d6e565b8484611d76565b6001905092915050565b6000600854905090565b6000600654905090565b6000610967848484611f6d565b610a2884610973611d6e565b610a238560405180606001604052806028815260200161378c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d9611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b611d76565b600190509392505050565b6000600754821115610a90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806136ce602a913960400191505060405180910390fd5b6000610a9a61255d565b9050610aaf818461258890919063ffffffff16565b915050919050565b6000600a54905090565b60006008905090565b6000610b73610ad7611d6e565b84610b6e8560036000610ae8611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b611d76565b6001905092915050565b610b85611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b8190555050565b6000610c59611d6e565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610cfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613848602c913960400191505060405180910390fd5b6000610d098361265a565b50505050509050610d6281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dba816007546126c290919063ffffffff16565b600781905550610dd5836008546125d290919063ffffffff16565b600881905550505050565b6000600954905090565b6000600654831115610e64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610e84576000610e748461265a565b5050505050905080915050610e9b565b6000610e8f8461265a565b50505050915050809150505b92915050565b610ea9611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a8190555050565b6000600b54905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561101857600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611063565b611060600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a33565b90505b919050565b611070611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4372306e69636c65000000000000000000000000000000000000000000000000815250905090565b6000611317611261611d6e565b8461131285604051806060016040528060258152602001613874602591396003600061128b611d6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b611d76565b6001905092915050565b600061133561132e611d6e565b8484611f6d565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611424611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806138266022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611711576116cd600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a33565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117d7611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561191d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806136f86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600c54905090565b6119ec611d6e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611d6a578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611b9f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d5d57600560016005805490500381548110611bfb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c3357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611d2357fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611d6a565b8080600101915050611b6e565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806138026024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061371e6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806137dd6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806136ab6023913960400191505060405180910390fd5b600081116120d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806137b46029913960400191505060405180910390fd5b6120da6111ee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561214857506121186111ee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121a957600c548111156121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613740602b913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561224c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122615761225c83838361270c565b612498565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123045750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123195761231483838361298a565b612497565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123bd5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123d2576123cd838383612c08565b612496565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124745750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561248957612484838383612df1565b612495565b612494838383612c08565b5b5b5b5b505050565b600083831115829061254a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561250f5780820151818401526020810190506124f4565b50505050905090810190601f16801561253c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080600061256a613104565b91509150612581818361258890919063ffffffff16565b9250505090565b60006125ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613395565b905092915050565b600080828401905083811015612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006126778a600a54600b5461345b565b925092509250600061268761255d565b9050600080600061269a8e878787613517565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061270483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061249d565b905092915050565b600061271661255d565b905060008060008060008061272a8861265a565b955095509550955095509550600061274b88836135a090919063ffffffff16565b905061279f89600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283487600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c986600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291885828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600061299461255d565b90506000806000806000806129a88861265a565b95509550955095509550955060006129c988836135a090919063ffffffff16565b9050612a1d87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab284600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4786600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9685828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612c1261255d565b9050600080600080600080612c268861265a565b9550955095509550955095506000612c4788836135a090919063ffffffff16565b9050612c9b87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d3086600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d7f85828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612dfb61255d565b9050600080600080600080612e0f8861265a565b9550955095509550955095506000612e3088836135a090919063ffffffff16565b9050612e8489600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1987600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c290919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fae84600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061304386600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d290919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061309285828585613626565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060005b6005805490508110156133585782600160006005848154811061313757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061321e57508160026000600584815481106131b657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156132355760075460065494509450505050613391565b6132be600160006005848154811061324957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846126c290919063ffffffff16565b925061334960026000600584815481106132d457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836126c290919063ffffffff16565b91508080600101915050613118565b5061337060065460075461258890919063ffffffff16565b82101561338857600754600654935093505050613391565b81819350935050505b9091565b60008083118290613441576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134065780820151818401526020810190506133eb565b50505050905090810190601f1680156134335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161344d57fe5b049050809150509392505050565b60008060008061349a606461348c606461347e8a8c6135a090919063ffffffff16565b61258890919063ffffffff16565b61258890919063ffffffff16565b905060006134d760646134c960646134bb8a8d6135a090919063ffffffff16565b61258890919063ffffffff16565b61258890919063ffffffff16565b90506000613500826134f2858c6126c290919063ffffffff16565b6126c290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061353085896135a090919063ffffffff16565b9050600061354786896135a090919063ffffffff16565b9050600061355e87896135a090919063ffffffff16565b905060006135878261357985876126c290919063ffffffff16565b6126c290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156135b35760009050613620565b60008284029050828482816135c457fe5b041461361b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061376b6021913960400191505060405180910390fd5b809150505b92915050565b61364d8361363f866007546126c290919063ffffffff16565b6126c290919063ffffffff16565b600781905550613668826008546125d290919063ffffffff16565b600881905550613683816009546125d290919063ffffffff16565b60098190555061369e816006546126c290919063ffffffff16565b6006819055505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e742065786365656473203125206f6620546f74616c20537570706c792e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206d64975bb8ae72e3552b8fa11a1abf989618ddcec8724504b585ad258815732464736f6c634300060c0033
Deployed ByteCode Sourcemap
16864:12087:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17922:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18834:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19945:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18199:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19003:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20965:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28463:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18108:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19324:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28850:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20136:377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20040:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20521:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28750:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28555:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18302:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16310:148;;;:::i;:::-;;15668:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18013:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19550:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18508:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19827:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18683:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21226:443;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16613:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28649:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21677:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17922:83;17959:13;17992:5;;;;;;;;;;;;;;;;;17985:12;;17922:83;:::o;18834:161::-;18909:4;18926:39;18935:12;:10;:12::i;:::-;18949:7;18958:6;18926:8;:39::i;:::-;18983:4;18976:11;;18834:161;;;;:::o;19945:87::-;19987:7;20014:10;;20007:17;;19945:87;:::o;18199:95::-;18252:7;18279;;18272:14;;18199:95;:::o;19003:313::-;19101:4;19118:36;19128:6;19136:9;19147:6;19118:9;:36::i;:::-;19165:121;19174:6;19182:12;:10;:12::i;:::-;19196:89;19234:6;19196:89;;;;;;;;;;;;;;;;;:11;:19;19208:6;19196:19;;;;;;;;;;;;;;;:33;19216:12;:10;:12::i;:::-;19196:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19165:8;:121::i;:::-;19304:4;19297:11;;19003:313;;;;;:::o;20965:253::-;21031:7;21070;;21059;:18;;21051:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21135:19;21158:10;:8;:10::i;:::-;21135:33;;21186:24;21198:11;21186:7;:11;;:24;;;;:::i;:::-;21179:31;;;20965:253;;;:::o;28463:84::-;28505:7;28532;;28525:14;;28463:84;:::o;18108:83::-;18149:5;17287:1;18167:16;;18108:83;:::o;19324:218::-;19412:4;19429:83;19438:12;:10;:12::i;:::-;19452:7;19461:50;19500:10;19461:11;:25;19473:12;:10;:12::i;:::-;19461:25;;;;;;;;;;;;;;;:34;19487:7;19461:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19429:8;:83::i;:::-;19530:4;19523:11;;19324:218;;;;:::o;28850:96::-;15890:12;:10;:12::i;:::-;15880:22;;:6;;;;;;;;;;:22;;;15872:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28931:7:::1;28920:8;:18;;;;28850:96:::0;:::o;20136:377::-;20188:14;20205:12;:10;:12::i;:::-;20188:29;;20237:11;:19;20249:6;20237:19;;;;;;;;;;;;;;;;;;;;;;;;;20236:20;20228:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20317:15;20341:19;20352:7;20341:10;:19::i;:::-;20316:44;;;;;;;20389:28;20409:7;20389;:15;20397:6;20389:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20371:7;:15;20379:6;20371:15;;;;;;;;;;;;;;;:46;;;;20438:20;20450:7;20438;;:11;;:20;;;;:::i;:::-;20428:7;:30;;;;20482:23;20497:7;20482:10;;:14;;:23;;;;:::i;:::-;20469:10;:36;;;;20136:377;;;:::o;20040:88::-;20082:7;20109:11;;20102:18;;20040:88;:::o;20521:436::-;20611:7;20650;;20639;:18;;20631:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20709:17;20704:246;;20744:15;20768:19;20779:7;20768:10;:19::i;:::-;20743:44;;;;;;;20809:7;20802:14;;;;;20704:246;20851:23;20882:19;20893:7;20882:10;:19::i;:::-;20849:52;;;;;;;20923:15;20916:22;;;20521:436;;;;;:::o;28750:92::-;15890:12;:10;:12::i;:::-;15880:22;;:6;;;;;;;;;;:22;;;15872:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28828:6:::1;28818:7;:16;;;;28750:92:::0;:::o;28555:86::-;28598:7;28625:8;;28618:15;;28555:86;:::o;18302:198::-;18368:7;18392:11;:20;18404:7;18392:20;;;;;;;;;;;;;;;;;;;;;;;;;18388:49;;;18421:7;:16;18429:7;18421:16;;;;;;;;;;;;;;;;18414:23;;;;18388:49;18455:37;18475:7;:16;18483:7;18475:16;;;;;;;;;;;;;;;;18455:19;:37::i;:::-;18448:44;;18302:198;;;;:::o;16310:148::-;15890:12;:10;:12::i;:::-;15880:22;;:6;;;;;;;;;;:22;;;15872:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16417:1:::1;16380:40;;16401:6;::::0;::::1;;;;;;;;16380:40;;;;;;;;;;;;16448:1;16431:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16310:148::o:0;15668:79::-;15706:7;15733:6;;;;;;;;;;;15726:13;;15668:79;:::o;18013:87::-;18052:13;18085:7;;;;;;;;;;;;;;;;;18078:14;;18013:87;:::o;19550:269::-;19643:4;19660:129;19669:12;:10;:12::i;:::-;19683:7;19692:96;19731:15;19692:96;;;;;;;;;;;;;;;;;:11;:25;19704:12;:10;:12::i;:::-;19692:25;;;;;;;;;;;;;;;:34;19718:7;19692:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19660:8;:129::i;:::-;19807:4;19800:11;;19550:269;;;;:::o;18508:167::-;18586:4;18603:42;18613:12;:10;:12::i;:::-;18627:9;18638:6;18603:9;:42::i;:::-;18663:4;18656:11;;18508:167;;;;:::o;19827:110::-;19885:4;19909:11;:20;19921:7;19909:20;;;;;;;;;;;;;;;;;;;;;;;;;19902:27;;19827:110;;;:::o;18683:143::-;18764:7;18791:11;:18;18803:5;18791:18;;;;;;;;;;;;;;;:27;18810:7;18791:27;;;;;;;;;;;;;;;;18784:34;;18683:143;;;;:::o;21226:443::-;15890:12;:10;:12::i;:::-;15880:22;;:6;;;;;;;;;;:22;;;15872:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21318:42:::1;21307:53;;:7;:53;;;;21299:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21419:11;:20;21431:7;21419:20;;;;;;;;;;;;;;;;;;;;;;;;;21418:21;21410:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21504:1;21485:7;:16;21493:7;21485:16;;;;;;;;;;;;;;;;:20;21482:108;;;21541:37;21561:7;:16;21569:7;21561:16;;;;;;;;;;;;;;;;21541:19;:37::i;:::-;21522:7;:16;21530:7;21522:16;;;;;;;;;;;;;;;:56;;;;21482:108;21623:4;21600:11;:20;21612:7;21600:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21638:9;21653:7;21638:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21226:443:::0;:::o;16613:244::-;15890:12;:10;:12::i;:::-;15880:22;;:6;;;;;;;;;;:22;;;15872:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16722:1:::1;16702:22;;:8;:22;;;;16694:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16812:8;16783:38;;16804:6;::::0;::::1;;;;;;;;16783:38;;;;;;;;;;;;16841:8;16832:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16613:244:::0;:::o;28649:93::-;28696:7;28722:12;;28715:19;;28649:93;:::o;21677:478::-;15890:12;:10;:12::i;:::-;15880:22;;:6;;;;;;;;;;:22;;;15872:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21758:11:::1;:20;21770:7;21758:20;;;;;;;;;;;;;;;;;;;;;;;;;21750:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21826:9;21821:327;21845:9;:16;;;;21841:1;:20;21821:327;;;21903:7;21887:23;;:9;21897:1;21887:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;21883:254;;;21946:9;21975:1;21956:9;:16;;;;:20;21946:31;;;;;;;;;;;;;;;;;;;;;;;;;21931:9;21941:1;21931:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;22015:1;21996:7;:16;22004:7;21996:16;;;;;;;;;;;;;;;:20;;;;22058:5;22035:11;:20;22047:7;22035:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;22082:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22116:5;;21883:254;21863:3;;;;;;;21821:327;;;;21677:478:::0;:::o;130:106::-;183:15;218:10;211:17;;130:106;:::o;22163:337::-;22273:1;22256:19;;:5;:19;;;;22248:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22354:1;22335:21;;:7;:21;;;;22327:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22438:6;22408:11;:18;22420:5;22408:18;;;;;;;;;;;;;;;:27;22427:7;22408:27;;;;;;;;;;;;;;;:36;;;;22476:7;22460:32;;22469:5;22460:32;;;22485:6;22460:32;;;;;;;;;;;;;;;;;;22163:337;;;:::o;22508:1083::-;22623:1;22605:20;;:6;:20;;;;22597:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22707:1;22686:23;;:9;:23;;;;22678:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22777:1;22768:6;:10;22760:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22850:7;:5;:7::i;:::-;22840:17;;:6;:17;;;;:41;;;;;22874:7;:5;:7::i;:::-;22861:20;;:9;:20;;;;22840:41;22837:137;;;22914:12;;22904:6;:22;;22896:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22837:137;22991:11;:19;23003:6;22991:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;23015:11;:22;23027:9;23015:22;;;;;;;;;;;;;;;;;;;;;;;;;23014:23;22991:46;22987:597;;;23054:48;23076:6;23084:9;23095:6;23054:21;:48::i;:::-;22987:597;;;23125:11;:19;23137:6;23125:19;;;;;;;;;;;;;;;;;;;;;;;;;23124:20;:46;;;;;23148:11;:22;23160:9;23148:22;;;;;;;;;;;;;;;;;;;;;;;;;23124:46;23120:464;;;23187:46;23207:6;23215:9;23226:6;23187:19;:46::i;:::-;23120:464;;;23256:11;:19;23268:6;23256:19;;;;;;;;;;;;;;;;;;;;;;;;;23255:20;:47;;;;;23280:11;:22;23292:9;23280:22;;;;;;;;;;;;;;;;;;;;;;;;;23279:23;23255:47;23251:333;;;23319:44;23337:6;23345:9;23356:6;23319:17;:44::i;:::-;23251:333;;;23385:11;:19;23397:6;23385:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;23408:11;:22;23420:9;23408:22;;;;;;;;;;;;;;;;;;;;;;;;;23385:45;23381:203;;;23447:48;23469:6;23477:9;23488:6;23447:21;:48::i;:::-;23381:203;;;23528:44;23546:6;23554:9;23565:6;23528:17;:44::i;:::-;23381:203;23251:333;23120:464;22987:597;22508:1083;;;:::o;4944:192::-;5030:7;5063:1;5058;:6;;5066:12;5050:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5090:9;5106:1;5102;:5;5090:17;;5127:1;5120:8;;;4944:192;;;;;:::o;27729:163::-;27770:7;27791:15;27808;27827:19;:17;:19::i;:::-;27790:56;;;;27864:20;27876:7;27864;:11;;:20;;;;:::i;:::-;27857:27;;;;27729:163;:::o;6342:132::-;6400:7;6427:39;6431:1;6434;6427:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6420:46;;6342:132;;;;:::o;4041:181::-;4099:7;4119:9;4135:1;4131;:5;4119:17;;4160:1;4155;:6;;4147:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:1;4206:8;;;4041:181;;;;:::o;26451:468::-;26510:7;26519;26528;26537;26546;26555;26576:23;26601:12;26615:13;26632:39;26644:7;26653;;26662:8;;26632:11;:39::i;:::-;26575:96;;;;;;26682:19;26705:10;:8;:10::i;:::-;26682:33;;26727:15;26744:23;26769:12;26785:46;26797:7;26806:4;26812:5;26819:11;26785;:46::i;:::-;26726:105;;;;;;26850:7;26859:15;26876:4;26882:15;26899:4;26905:5;26842:69;;;;;;;;;;;;;;;;;;;26451:468;;;;;;;:::o;4505:136::-;4563:7;4590:43;4594:1;4597;4590:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4583:50;;4505:136;;;;:::o;24824:629::-;24926:19;24949:10;:8;:10::i;:::-;24926:33;;24971:15;24988:23;25013:12;25027:23;25052:12;25066:13;25083:19;25094:7;25083:10;:19::i;:::-;24970:132;;;;;;;;;;;;25113:13;25130:22;25140:11;25130:5;:9;;:22;;;;:::i;:::-;25113:39;;25181:28;25201:7;25181;:15;25189:6;25181:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25163:7;:15;25171:6;25163:15;;;;;;;;;;;;;;;:46;;;;25238:28;25258:7;25238;:15;25246:6;25238:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25220:7;:15;25228:6;25220:15;;;;;;;;;;;;;;;:46;;;;25298:39;25321:15;25298:7;:18;25306:9;25298:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25277:7;:18;25285:9;25277:18;;;;;;;;;;;;;;;:60;;;;25348:37;25360:4;25366:5;25373:4;25379:5;25348:11;:37::i;:::-;25418:9;25401:44;;25410:6;25401:44;;;25429:15;25401:44;;;;;;;;;;;;;;;;;;24824:629;;;;;;;;;;;:::o;24175:641::-;24275:19;24298:10;:8;:10::i;:::-;24275:33;;24320:15;24337:23;24362:12;24376:23;24401:12;24415:13;24432:19;24443:7;24432:10;:19::i;:::-;24319:132;;;;;;;;;;;;24462:13;24479:22;24489:11;24479:5;:9;;:22;;;;:::i;:::-;24462:39;;24530:28;24550:7;24530;:15;24538:6;24530:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24512:7;:15;24520:6;24512:15;;;;;;;;;;;;;;;:46;;;;24590:39;24613:15;24590:7;:18;24598:9;24590:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24569:7;:18;24577:9;24569:18;;;;;;;;;;;;;;;:60;;;;24661:39;24684:15;24661:7;:18;24669:9;24661:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24640:7;:18;24648:9;24640:18;;;;;;;;;;;;;;;:60;;;;24711:37;24723:4;24729:5;24736:4;24742:5;24711:11;:37::i;:::-;24781:9;24764:44;;24773:6;24764:44;;;24792:15;24764:44;;;;;;;;;;;;;;;;;;24175:641;;;;;;;;;;;:::o;23599:568::-;23697:19;23720:10;:8;:10::i;:::-;23697:33;;23742:15;23759:23;23784:12;23798:23;23823:12;23837:13;23854:19;23865:7;23854:10;:19::i;:::-;23741:132;;;;;;;;;;;;23884:13;23901:22;23911:11;23901:5;:9;;:22;;;;:::i;:::-;23884:39;;23952:28;23972:7;23952;:15;23960:6;23952:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23934:7;:15;23942:6;23934:15;;;;;;;;;;;;;;;:46;;;;24012:39;24035:15;24012:7;:18;24020:9;24012:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23991:7;:18;23999:9;23991:18;;;;;;;;;;;;;;;:60;;;;24062:37;24074:4;24080:5;24087:4;24093:5;24062:11;:37::i;:::-;24132:9;24115:44;;24124:6;24115:44;;;24143:15;24115:44;;;;;;;;;;;;;;;;;;23599:568;;;;;;;;;;;:::o;25461:700::-;25563:19;25586:10;:8;:10::i;:::-;25563:33;;25608:15;25625:23;25650:12;25664:23;25689:12;25703:13;25720:19;25731:7;25720:10;:19::i;:::-;25607:132;;;;;;;;;;;;25750:13;25767:22;25777:11;25767:5;:9;;:22;;;;:::i;:::-;25750:39;;25818:28;25838:7;25818;:15;25826:6;25818:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25800:7;:15;25808:6;25800:15;;;;;;;;;;;;;;;:46;;;;25875:28;25895:7;25875;:15;25883:6;25875:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25857:7;:15;25865:6;25857:15;;;;;;;;;;;;;;;:46;;;;25935:39;25958:15;25935:7;:18;25943:9;25935:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25914:7;:18;25922:9;25914:18;;;;;;;;;;;;;;;:60;;;;26006:39;26029:15;26006:7;:18;26014:9;26006:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25985:7;:18;25993:9;25985:18;;;;;;;;;;;;;;;:60;;;;26056:37;26068:4;26074:5;26081:4;26087:5;26056:11;:37::i;:::-;26126:9;26109:44;;26118:6;26109:44;;;26137:15;26109:44;;;;;;;;;;;;;;;;;;25461:700;;;;;;;;;;;:::o;27900:555::-;27950:7;27959;27979:15;27997:7;;27979:25;;28015:15;28033:7;;28015:25;;28056:9;28051:289;28075:9;:16;;;;28071:1;:20;28051:289;;;28141:7;28117;:21;28125:9;28135:1;28125:12;;;;;;;;;;;;;;;;;;;;;;;;;28117:21;;;;;;;;;;;;;;;;:31;:66;;;;28176:7;28152;:21;28160:9;28170:1;28160:12;;;;;;;;;;;;;;;;;;;;;;;;;28152:21;;;;;;;;;;;;;;;;:31;28117:66;28113:97;;;28193:7;;28202;;28185:25;;;;;;;;;28113:97;28235:34;28247:7;:21;28255:9;28265:1;28255:12;;;;;;;;;;;;;;;;;;;;;;;;;28247:21;;;;;;;;;;;;;;;;28235:7;:11;;:34;;;;:::i;:::-;28225:44;;28294:34;28306:7;:21;28314:9;28324:1;28314:12;;;;;;;;;;;;;;;;;;;;;;;;;28306:21;;;;;;;;;;;;;;;;28294:7;:11;;:34;;;;:::i;:::-;28284:44;;28093:3;;;;;;;28051:289;;;;28364:20;28376:7;;28364;;:11;;:20;;;;:::i;:::-;28354:7;:30;28350:61;;;28394:7;;28403;;28386:25;;;;;;;;28350:61;28430:7;28439;28422:25;;;;;;27900:555;;;:::o;6970:278::-;7056:7;7088:1;7084;:5;7091:12;7076:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7115:9;7131:1;7127;:5;;;;;;7115:17;;7239:1;7232:8;;;6970:278;;;;;:::o;26927:377::-;27020:7;27029;27038;27058:12;27073:41;27110:3;27074:30;27100:3;27075:19;27087:6;27075:7;:11;;:19;;;;:::i;:::-;27074:25;;:30;;;;:::i;:::-;27073:36;;:41;;;;:::i;:::-;27058:56;;27125:13;27141:42;27179:3;27142:31;27169:3;27143:20;27155:7;27143;:11;;:20;;;;:::i;:::-;27142:26;;:31;;;;:::i;:::-;27141:37;;:42;;;;:::i;:::-;27125:58;;27194:23;27220:28;27242:5;27220:17;27232:4;27220:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;27194:54;;27267:15;27284:4;27290:5;27259:37;;;;;;;;;26927:377;;;;;;;:::o;27312:409::-;27422:7;27431;27440;27460:15;27478:24;27490:11;27478:7;:11;;:24;;;;:::i;:::-;27460:42;;27513:12;27528:21;27537:11;27528:4;:8;;:21;;;;:::i;:::-;27513:36;;27560:13;27576:22;27586:11;27576:5;:9;;:22;;;;:::i;:::-;27560:38;;27609:23;27635:28;27657:5;27635:17;27647:4;27635:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;27609:54;;27682:7;27691:15;27708:4;27674:39;;;;;;;;;;27312:409;;;;;;;;:::o;5395:471::-;5453:7;5703:1;5698;:6;5694:47;;;5728:1;5721:8;;;;5694:47;5753:9;5769:1;5765;:5;5753:17;;5798:1;5793;5789;:5;;;;;;:10;5781:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5857:1;5850:8;;;5395:471;;;;;:::o;26169:274::-;26277:28;26299:5;26277:17;26289:4;26277:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;26267:7;:38;;;;26329:20;26344:4;26329:10;;:14;;:20;;;;:::i;:::-;26316:10;:33;;;;26374:22;26390:5;26374:11;;:15;;:22;;;;:::i;:::-;26360:11;:36;;;;26417:18;26429:5;26417:7;;:11;;:18;;;;:::i;:::-;26407:7;:28;;;;26169:274;;;;:::o
Swarm Source
ipfs://6d64975bb8ae72e3552b8fa11a1abf989618ddcec8724504b585ad2588157324