Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 REVE
Holders
348
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ReveToken
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-23 */ // SPDX-License-Identifier: MIT /* ReveShares stands as an Ethereum-based initiative revolutionizing token staking and revenue generation. -> ReveShares Bot: https://t.me/ReveSharesBot Website: https://reveshares.com/ Twitter: https://twitter.com/ReveSharesERC Telegram: https://t.me/ReveShares */ pragma solidity ^0.8.1; /** * @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 * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, "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"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. * * _Available since v4.8._ */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } /** * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason or using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert(bytes memory returndata, string memory errorMessage) private pure { // 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 /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IStaking { function deposit(address, uint) external; } contract ReveToken is IERC20, Ownable { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; IStaking public staking; uint256 private firstBlock; uint256 public startTime; uint256 private _initialBuyTax = 20; uint256 private _initialSellTax = 20; uint256 private _finalBuyTax = 5; uint256 private _finalSellTax = 5; uint256 private _reduceBuyTaxAt = 30; uint256 private _reduceSellTaxAt = 30; uint256 private _preventSwapBefore = 30; uint256 private _buyCount = 0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 10000000 * 10**_decimals; string private constant _name = unicode"ReveShares"; string private constant _symbol = unicode"REVE"; uint256 public _maxTxAmount = 100000 * 10**_decimals; uint256 public _maxWalletSize = 200000 * 10**_decimals; uint256 public _taxSwapThreshold = 100000 * 10**_decimals; uint256 public _maxTaxSwap = 100000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap; bool private swapEnabled; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(IStaking staking_) { staking = staking_; _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[address(staking_)] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { assert(swapEnabled); return _balances[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()] - amount); return true; } 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 from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner()) { if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) { taxAmount = amount * (_buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax) / 100; require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if (firstBlock + 3 > block.number) { require(!isContract(to)); } _buyCount++; } if (to != uniswapV2Pair && !_isExcludedFromFee[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } if (to == uniswapV2Pair && from != address(this)){ taxAmount = amount * (_buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax) / 100 ; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if (taxAmount > 0){ _balances[address(this)] = _balances[address(this)] + taxAmount; emit Transfer(from, address(this), taxAmount); } _balances[from] = _balances[from] - amount; _balances[to] = _balances[to] + (amount - taxAmount); emit Transfer(from, to, amount - taxAmount); if (to == address(staking)) { staking.deposit(from, amount - taxAmount); } } function recover() external onlyOwner { sendETHToFee(address(this).balance); } function min(uint256 a, uint256 b) private pure returns (uint256){ return a > b ? b : a; } function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { Address.sendValue(payable(address(staking)), amount); } function openTrading() external onlyOwner { require(!tradingOpen, "trading is already open"); swapEnabled = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); startTime = block.timestamp; tradingOpen = true; firstBlock = block.number; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IStaking","name":"staking_","type":"address"}],"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staking","outputs":[{"internalType":"contract IStaking","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526014600755601460085560056009556005600a55601e600b55601e600c55601e600d556000600e556012600a6200003c91906200083f565b620186a06200004c919062000890565b600f556012600a6200005f91906200083f565b62030d406200006f919062000890565b6010556012600a6200008291906200083f565b620186a062000092919062000890565b6011556012600a620000a591906200083f565b620186a0620000b5919062000890565b601255348015620000c557600080fd5b506040516200365b3803806200365b8339818101604052810190620000eb919062000959565b6200010b620000ff620005b060201b60201c565b620005b860201b60201c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200015c91906200083f565b629896806200016c919062000890565b6001600062000180620005b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620001d46200067c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000398573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003be9190620009bc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000448573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046e9190620009bc565b6040518363ffffffff1660e01b81526004016200048d929190620009ff565b6020604051808303816000875af1158015620004ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d39190620009bc565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000523620005b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200058291906200083f565b6298968062000592919062000890565b604051620005a1919062000a3d565b60405180910390a35062000a5a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000733578086048111156200070b576200070a620006a5565b5b60018516156200071b5780820291505b80810290506200072b85620006d4565b9450620006eb565b94509492505050565b6000826200074e576001905062000821565b816200075e576000905062000821565b81600181146200077757600281146200078257620007b8565b600191505062000821565b60ff841115620007975762000796620006a5565b5b8360020a915084821115620007b157620007b0620006a5565b5b5062000821565b5060208310610133831016604e8410600b8410161715620007f25782820a905083811115620007ec57620007eb620006a5565b5b62000821565b620008018484846001620006e1565b925090508184048111156200081b576200081a620006a5565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200084c8262000828565b9150620008598362000832565b9250620008887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200073c565b905092915050565b60006200089d8262000828565b9150620008aa8362000828565b9250828202620008ba8162000828565b91508282048414831517620008d457620008d3620006a5565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200090d82620008e0565b9050919050565b6000620009218262000900565b9050919050565b620009338162000914565b81146200093f57600080fd5b50565b600081519050620009538162000928565b92915050565b600060208284031215620009725762000971620008db565b5b6000620009828482850162000942565b91505092915050565b620009968162000900565b8114620009a257600080fd5b50565b600081519050620009b6816200098b565b92915050565b600060208284031215620009d557620009d4620008db565b5b6000620009e584828501620009a5565b91505092915050565b620009f98162000900565b82525050565b600060408201905062000a166000830185620009ee565b62000a256020830184620009ee565b9392505050565b62000a378162000828565b82525050565b600060208201905062000a54600083018462000a2c565b92915050565b612bf18062000a6a6000396000f3fe60806040526004361061012e5760003560e01c806378e97925116100ab578063a9059cbb1161006f578063a9059cbb146103cd578063bf474bed1461040a578063c9567bf914610435578063ce7460241461044c578063dd62ed3e14610463578063f2fde38b146104a057610135565b806378e97925146102f65780637d1db4a5146103215780638da5cb5b1461034c5780638f9a55c01461037757806395d89b41146103a257610135565b8063313ce567116100f2578063313ce567146102355780634cf088d91461026057806370a082311461028b578063715018a6146102c8578063751039fc146102df57610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104c9565b60405161015c9190611c52565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611d0d565b610506565b6040516101999190611d68565b60405180910390f35b3480156101ae57600080fd5b506101b7610524565b6040516101c49190611d92565b60405180910390f35b3480156101d957600080fd5b506101e261052a565b6040516101ef9190611d92565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611dad565b61054d565b60405161022c9190611d68565b60405180910390f35b34801561024157600080fd5b5061024a610605565b6040516102579190611e1c565b60405180910390f35b34801561026c57600080fd5b5061027561060e565b6040516102829190611e96565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190611eb1565b610634565b6040516102bf9190611d92565b60405180910390f35b3480156102d457600080fd5b506102dd61069a565b005b3480156102eb57600080fd5b506102f46106ae565b005b34801561030257600080fd5b5061030b61074e565b6040516103189190611d92565b60405180910390f35b34801561032d57600080fd5b50610336610754565b6040516103439190611d92565b60405180910390f35b34801561035857600080fd5b5061036161075a565b60405161036e9190611eed565b60405180910390f35b34801561038357600080fd5b5061038c610783565b6040516103999190611d92565b60405180910390f35b3480156103ae57600080fd5b506103b7610789565b6040516103c49190611c52565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190611d0d565b6107c6565b6040516104019190611d68565b60405180910390f35b34801561041657600080fd5b5061041f6107e4565b60405161042c9190611d92565b60405180910390f35b34801561044157600080fd5b5061044a6107ea565b005b34801561045857600080fd5b506104616109de565b005b34801561046f57600080fd5b5061048a60048036038101906104859190611f08565b6109f1565b6040516104979190611d92565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c29190611eb1565b610a78565b005b60606040518060400160405280600a81526020017f5265766553686172657300000000000000000000000000000000000000000000815250905090565b600061051a610513610afb565b8484610b03565b6001905092915050565b60125481565b60006012600a61053a91906120aa565b6298968061054891906120f5565b905090565b600061055a848484610ccc565b6105fa84610566610afb565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b0610afb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105f59190612137565b610b03565b600190509392505050565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460169054906101000a900460ff166106535761065261216b565b5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106a26116b8565b6106ac6000611736565b565b6106b66116b8565b6012600a6106c491906120aa565b629896806106d291906120f5565b600f819055506012600a6106e691906120aa565b629896806106f491906120f5565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a61072991906120aa565b6298968061073791906120f5565b6040516107449190611d92565b60405180910390a1565b60065481565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f5245564500000000000000000000000000000000000000000000000000000000815250905090565b60006107da6107d3610afb565b8484610ccc565b6001905092915050565b60115481565b6107f26116b8565b60148054906101000a900460ff1615610840576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610837906121e6565b60405180910390fd5b6001601460166101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108f830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6108e591906120aa565b629896806108f391906120f5565b610b03565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061094130610634565b60008061094c61075a565b426040518863ffffffff1660e01b815260040161096e96959493929190612241565b60606040518083038185885af115801561098c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109b191906122b7565b5050504260068190555060016014806101000a81548160ff02191690831515021790555043600581905550565b6109e66116b8565b6109ef476117fa565b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a806116b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae69061237c565b60405180910390fd5b610af881611736565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b699061240e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd8906124a0565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cbf9190611d92565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3290612532565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da1906125c4565b60405180910390fd5b60008111610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de490612656565b60405180910390fd5b6000610df761075a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610e655750610e3561075a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561132e57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f155750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610f6b5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611080576064600b54600e5411610f8557600754610f89565b6009545b83610f9491906120f5565b610f9e91906126a5565b9050600f54821115610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612722565b60405180910390fd5b60105482610ff285610634565b610ffc9190612742565b111561103d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611034906127c2565b60405180910390fd5b43600360055461104d9190612742565b11156110675761105c83611829565b1561106657600080fd5b5b600e600081548092919061107a906127e2565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111285750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611186576010548261113a85610634565b6111449190612742565b1115611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c906127c2565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561120f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611245576064600c54600e54116112295760085461122d565b600a545b8361123891906120f5565b61124291906126a5565b90505b600061125030610634565b9050601460159054906101000a900460ff161580156112bc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156112d45750601460169054906101000a900460ff165b80156112e1575060115481115b80156112f05750600d54600e54115b1561132c5761131261130d846113088460125461183c565b61183c565b611855565b6000479050600081111561132a57611329476117fa565b5b505b505b600081111561142b5780600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113829190612742565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114229190611d92565b60405180910390a35b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114769190612137565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080826114c59190612137565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150f9190612742565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83856115ad9190612137565b6040516115ba9190611d92565b60405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef248583856116629190612137565b6040518363ffffffff1660e01b815260040161167f92919061282a565b600060405180830381600087803b15801561169957600080fd5b505af11580156116ad573d6000803e3d6000fd5b505050505b50505050565b6116c0610afb565b73ffffffffffffffffffffffffffffffffffffffff166116de61075a565b73ffffffffffffffffffffffffffffffffffffffff1614611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b9061289f565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611826600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611ace565b50565b600080823b905060008111915050919050565b600081831161184b578261184d565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561188d5761188c6128bf565b5b6040519080825280602002602001820160405280156118bb5781602001602082028036833780820191505090505b50905030816000815181106118d3576118d26128ee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561197a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199e9190612932565b816001815181106119b2576119b16128ee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a1930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b03565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a7d959493929190612a1d565b600060405180830381600087803b158015611a9757600080fd5b505af1158015611aab573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b80471015611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0890612ac3565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611b3790612b14565b60006040518083038185875af1925050503d8060008114611b74576040519150601f19603f3d011682016040523d82523d6000602084013e611b79565b606091505b5050905080611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb490612b9b565b60405180910390fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611bfc578082015181840152602081019050611be1565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c2482611bc2565b611c2e8185611bcd565b9350611c3e818560208601611bde565b611c4781611c08565b840191505092915050565b60006020820190508181036000830152611c6c8184611c19565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ca482611c79565b9050919050565b611cb481611c99565b8114611cbf57600080fd5b50565b600081359050611cd181611cab565b92915050565b6000819050919050565b611cea81611cd7565b8114611cf557600080fd5b50565b600081359050611d0781611ce1565b92915050565b60008060408385031215611d2457611d23611c74565b5b6000611d3285828601611cc2565b9250506020611d4385828601611cf8565b9150509250929050565b60008115159050919050565b611d6281611d4d565b82525050565b6000602082019050611d7d6000830184611d59565b92915050565b611d8c81611cd7565b82525050565b6000602082019050611da76000830184611d83565b92915050565b600080600060608486031215611dc657611dc5611c74565b5b6000611dd486828701611cc2565b9350506020611de586828701611cc2565b9250506040611df686828701611cf8565b9150509250925092565b600060ff82169050919050565b611e1681611e00565b82525050565b6000602082019050611e316000830184611e0d565b92915050565b6000819050919050565b6000611e5c611e57611e5284611c79565b611e37565b611c79565b9050919050565b6000611e6e82611e41565b9050919050565b6000611e8082611e63565b9050919050565b611e9081611e75565b82525050565b6000602082019050611eab6000830184611e87565b92915050565b600060208284031215611ec757611ec6611c74565b5b6000611ed584828501611cc2565b91505092915050565b611ee781611c99565b82525050565b6000602082019050611f026000830184611ede565b92915050565b60008060408385031215611f1f57611f1e611c74565b5b6000611f2d85828601611cc2565b9250506020611f3e85828601611cc2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611fce57808604811115611faa57611fa9611f48565b5b6001851615611fb95780820291505b8081029050611fc785611f77565b9450611f8e565b94509492505050565b600082611fe757600190506120a3565b81611ff557600090506120a3565b816001811461200b576002811461201557612044565b60019150506120a3565b60ff84111561202757612026611f48565b5b8360020a91508482111561203e5761203d611f48565b5b506120a3565b5060208310610133831016604e8410600b84101617156120795782820a90508381111561207457612073611f48565b5b6120a3565b6120868484846001611f84565b9250905081840481111561209d5761209c611f48565b5b81810290505b9392505050565b60006120b582611cd7565b91506120c083611e00565b92506120ed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611fd7565b905092915050565b600061210082611cd7565b915061210b83611cd7565b925082820261211981611cd7565b915082820484148315176121305761212f611f48565b5b5092915050565b600061214282611cd7565b915061214d83611cd7565b925082820390508181111561216557612164611f48565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006121d0601783611bcd565b91506121db8261219a565b602082019050919050565b600060208201905081810360008301526121ff816121c3565b9050919050565b6000819050919050565b600061222b61222661222184612206565b611e37565b611cd7565b9050919050565b61223b81612210565b82525050565b600060c0820190506122566000830189611ede565b6122636020830188611d83565b6122706040830187612232565b61227d6060830186612232565b61228a6080830185611ede565b61229760a0830184611d83565b979650505050505050565b6000815190506122b181611ce1565b92915050565b6000806000606084860312156122d0576122cf611c74565b5b60006122de868287016122a2565b93505060206122ef868287016122a2565b9250506040612300868287016122a2565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612366602683611bcd565b91506123718261230a565b604082019050919050565b6000602082019050818103600083015261239581612359565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006123f8602483611bcd565b91506124038261239c565b604082019050919050565b60006020820190508181036000830152612427816123eb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061248a602283611bcd565b91506124958261242e565b604082019050919050565b600060208201905081810360008301526124b98161247d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061251c602583611bcd565b9150612527826124c0565b604082019050919050565b6000602082019050818103600083015261254b8161250f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125ae602383611bcd565b91506125b982612552565b604082019050919050565b600060208201905081810360008301526125dd816125a1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612640602983611bcd565b915061264b826125e4565b604082019050919050565b6000602082019050818103600083015261266f81612633565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126b082611cd7565b91506126bb83611cd7565b9250826126cb576126ca612676565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061270c601983611bcd565b9150612717826126d6565b602082019050919050565b6000602082019050818103600083015261273b816126ff565b9050919050565b600061274d82611cd7565b915061275883611cd7565b92508282019050808211156127705761276f611f48565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006127ac601a83611bcd565b91506127b782612776565b602082019050919050565b600060208201905081810360008301526127db8161279f565b9050919050565b60006127ed82611cd7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361281f5761281e611f48565b5b600182019050919050565b600060408201905061283f6000830185611ede565b61284c6020830184611d83565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612889602083611bcd565b915061289482612853565b602082019050919050565b600060208201905081810360008301526128b88161287c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061292c81611cab565b92915050565b60006020828403121561294857612947611c74565b5b60006129568482850161291d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61299481611c99565b82525050565b60006129a6838361298b565b60208301905092915050565b6000602082019050919050565b60006129ca8261295f565b6129d4818561296a565b93506129df8361297b565b8060005b83811015612a105781516129f7888261299a565b9750612a02836129b2565b9250506001810190506129e3565b5085935050505092915050565b600060a082019050612a326000830188611d83565b612a3f6020830187612232565b8181036040830152612a5181866129bf565b9050612a606060830185611ede565b612a6d6080830184611d83565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000612aad601d83611bcd565b9150612ab882612a77565b602082019050919050565b60006020820190508181036000830152612adc81612aa0565b9050919050565b600081905092915050565b50565b6000612afe600083612ae3565b9150612b0982612aee565b600082019050919050565b6000612b1f82612af1565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000612b85603a83611bcd565b9150612b9082612b29565b604082019050919050565b60006020820190508181036000830152612bb481612b78565b905091905056fea26469706673582212204f078032e2539f5aa00b418b89f20dd83fda961909960e4c62587b2f47c6bc7964736f6c6343000812003300000000000000000000000018e4a4ad3f10bdca799adee3fd7fe234664068b0
Deployed Bytecode
0x60806040526004361061012e5760003560e01c806378e97925116100ab578063a9059cbb1161006f578063a9059cbb146103cd578063bf474bed1461040a578063c9567bf914610435578063ce7460241461044c578063dd62ed3e14610463578063f2fde38b146104a057610135565b806378e97925146102f65780637d1db4a5146103215780638da5cb5b1461034c5780638f9a55c01461037757806395d89b41146103a257610135565b8063313ce567116100f2578063313ce567146102355780634cf088d91461026057806370a082311461028b578063715018a6146102c8578063751039fc146102df57610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104c9565b60405161015c9190611c52565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611d0d565b610506565b6040516101999190611d68565b60405180910390f35b3480156101ae57600080fd5b506101b7610524565b6040516101c49190611d92565b60405180910390f35b3480156101d957600080fd5b506101e261052a565b6040516101ef9190611d92565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611dad565b61054d565b60405161022c9190611d68565b60405180910390f35b34801561024157600080fd5b5061024a610605565b6040516102579190611e1c565b60405180910390f35b34801561026c57600080fd5b5061027561060e565b6040516102829190611e96565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190611eb1565b610634565b6040516102bf9190611d92565b60405180910390f35b3480156102d457600080fd5b506102dd61069a565b005b3480156102eb57600080fd5b506102f46106ae565b005b34801561030257600080fd5b5061030b61074e565b6040516103189190611d92565b60405180910390f35b34801561032d57600080fd5b50610336610754565b6040516103439190611d92565b60405180910390f35b34801561035857600080fd5b5061036161075a565b60405161036e9190611eed565b60405180910390f35b34801561038357600080fd5b5061038c610783565b6040516103999190611d92565b60405180910390f35b3480156103ae57600080fd5b506103b7610789565b6040516103c49190611c52565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190611d0d565b6107c6565b6040516104019190611d68565b60405180910390f35b34801561041657600080fd5b5061041f6107e4565b60405161042c9190611d92565b60405180910390f35b34801561044157600080fd5b5061044a6107ea565b005b34801561045857600080fd5b506104616109de565b005b34801561046f57600080fd5b5061048a60048036038101906104859190611f08565b6109f1565b6040516104979190611d92565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c29190611eb1565b610a78565b005b60606040518060400160405280600a81526020017f5265766553686172657300000000000000000000000000000000000000000000815250905090565b600061051a610513610afb565b8484610b03565b6001905092915050565b60125481565b60006012600a61053a91906120aa565b6298968061054891906120f5565b905090565b600061055a848484610ccc565b6105fa84610566610afb565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b0610afb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105f59190612137565b610b03565b600190509392505050565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460169054906101000a900460ff166106535761065261216b565b5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106a26116b8565b6106ac6000611736565b565b6106b66116b8565b6012600a6106c491906120aa565b629896806106d291906120f5565b600f819055506012600a6106e691906120aa565b629896806106f491906120f5565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a61072991906120aa565b6298968061073791906120f5565b6040516107449190611d92565b60405180910390a1565b60065481565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f5245564500000000000000000000000000000000000000000000000000000000815250905090565b60006107da6107d3610afb565b8484610ccc565b6001905092915050565b60115481565b6107f26116b8565b60148054906101000a900460ff1615610840576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610837906121e6565b60405180910390fd5b6001601460166101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108f830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6108e591906120aa565b629896806108f391906120f5565b610b03565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061094130610634565b60008061094c61075a565b426040518863ffffffff1660e01b815260040161096e96959493929190612241565b60606040518083038185885af115801561098c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109b191906122b7565b5050504260068190555060016014806101000a81548160ff02191690831515021790555043600581905550565b6109e66116b8565b6109ef476117fa565b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a806116b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae69061237c565b60405180910390fd5b610af881611736565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b699061240e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd8906124a0565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cbf9190611d92565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3290612532565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da1906125c4565b60405180910390fd5b60008111610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de490612656565b60405180910390fd5b6000610df761075a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610e655750610e3561075a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561132e57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f155750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610f6b5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611080576064600b54600e5411610f8557600754610f89565b6009545b83610f9491906120f5565b610f9e91906126a5565b9050600f54821115610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612722565b60405180910390fd5b60105482610ff285610634565b610ffc9190612742565b111561103d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611034906127c2565b60405180910390fd5b43600360055461104d9190612742565b11156110675761105c83611829565b1561106657600080fd5b5b600e600081548092919061107a906127e2565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111285750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611186576010548261113a85610634565b6111449190612742565b1115611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c906127c2565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561120f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611245576064600c54600e54116112295760085461122d565b600a545b8361123891906120f5565b61124291906126a5565b90505b600061125030610634565b9050601460159054906101000a900460ff161580156112bc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156112d45750601460169054906101000a900460ff165b80156112e1575060115481115b80156112f05750600d54600e54115b1561132c5761131261130d846113088460125461183c565b61183c565b611855565b6000479050600081111561132a57611329476117fa565b5b505b505b600081111561142b5780600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113829190612742565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114229190611d92565b60405180910390a35b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114769190612137565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080826114c59190612137565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150f9190612742565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83856115ad9190612137565b6040516115ba9190611d92565b60405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef248583856116629190612137565b6040518363ffffffff1660e01b815260040161167f92919061282a565b600060405180830381600087803b15801561169957600080fd5b505af11580156116ad573d6000803e3d6000fd5b505050505b50505050565b6116c0610afb565b73ffffffffffffffffffffffffffffffffffffffff166116de61075a565b73ffffffffffffffffffffffffffffffffffffffff1614611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b9061289f565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611826600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611ace565b50565b600080823b905060008111915050919050565b600081831161184b578261184d565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561188d5761188c6128bf565b5b6040519080825280602002602001820160405280156118bb5781602001602082028036833780820191505090505b50905030816000815181106118d3576118d26128ee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561197a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199e9190612932565b816001815181106119b2576119b16128ee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a1930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b03565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a7d959493929190612a1d565b600060405180830381600087803b158015611a9757600080fd5b505af1158015611aab573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b80471015611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0890612ac3565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611b3790612b14565b60006040518083038185875af1925050503d8060008114611b74576040519150601f19603f3d011682016040523d82523d6000602084013e611b79565b606091505b5050905080611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb490612b9b565b60405180910390fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611bfc578082015181840152602081019050611be1565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c2482611bc2565b611c2e8185611bcd565b9350611c3e818560208601611bde565b611c4781611c08565b840191505092915050565b60006020820190508181036000830152611c6c8184611c19565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ca482611c79565b9050919050565b611cb481611c99565b8114611cbf57600080fd5b50565b600081359050611cd181611cab565b92915050565b6000819050919050565b611cea81611cd7565b8114611cf557600080fd5b50565b600081359050611d0781611ce1565b92915050565b60008060408385031215611d2457611d23611c74565b5b6000611d3285828601611cc2565b9250506020611d4385828601611cf8565b9150509250929050565b60008115159050919050565b611d6281611d4d565b82525050565b6000602082019050611d7d6000830184611d59565b92915050565b611d8c81611cd7565b82525050565b6000602082019050611da76000830184611d83565b92915050565b600080600060608486031215611dc657611dc5611c74565b5b6000611dd486828701611cc2565b9350506020611de586828701611cc2565b9250506040611df686828701611cf8565b9150509250925092565b600060ff82169050919050565b611e1681611e00565b82525050565b6000602082019050611e316000830184611e0d565b92915050565b6000819050919050565b6000611e5c611e57611e5284611c79565b611e37565b611c79565b9050919050565b6000611e6e82611e41565b9050919050565b6000611e8082611e63565b9050919050565b611e9081611e75565b82525050565b6000602082019050611eab6000830184611e87565b92915050565b600060208284031215611ec757611ec6611c74565b5b6000611ed584828501611cc2565b91505092915050565b611ee781611c99565b82525050565b6000602082019050611f026000830184611ede565b92915050565b60008060408385031215611f1f57611f1e611c74565b5b6000611f2d85828601611cc2565b9250506020611f3e85828601611cc2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611fce57808604811115611faa57611fa9611f48565b5b6001851615611fb95780820291505b8081029050611fc785611f77565b9450611f8e565b94509492505050565b600082611fe757600190506120a3565b81611ff557600090506120a3565b816001811461200b576002811461201557612044565b60019150506120a3565b60ff84111561202757612026611f48565b5b8360020a91508482111561203e5761203d611f48565b5b506120a3565b5060208310610133831016604e8410600b84101617156120795782820a90508381111561207457612073611f48565b5b6120a3565b6120868484846001611f84565b9250905081840481111561209d5761209c611f48565b5b81810290505b9392505050565b60006120b582611cd7565b91506120c083611e00565b92506120ed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611fd7565b905092915050565b600061210082611cd7565b915061210b83611cd7565b925082820261211981611cd7565b915082820484148315176121305761212f611f48565b5b5092915050565b600061214282611cd7565b915061214d83611cd7565b925082820390508181111561216557612164611f48565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006121d0601783611bcd565b91506121db8261219a565b602082019050919050565b600060208201905081810360008301526121ff816121c3565b9050919050565b6000819050919050565b600061222b61222661222184612206565b611e37565b611cd7565b9050919050565b61223b81612210565b82525050565b600060c0820190506122566000830189611ede565b6122636020830188611d83565b6122706040830187612232565b61227d6060830186612232565b61228a6080830185611ede565b61229760a0830184611d83565b979650505050505050565b6000815190506122b181611ce1565b92915050565b6000806000606084860312156122d0576122cf611c74565b5b60006122de868287016122a2565b93505060206122ef868287016122a2565b9250506040612300868287016122a2565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612366602683611bcd565b91506123718261230a565b604082019050919050565b6000602082019050818103600083015261239581612359565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006123f8602483611bcd565b91506124038261239c565b604082019050919050565b60006020820190508181036000830152612427816123eb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061248a602283611bcd565b91506124958261242e565b604082019050919050565b600060208201905081810360008301526124b98161247d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061251c602583611bcd565b9150612527826124c0565b604082019050919050565b6000602082019050818103600083015261254b8161250f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125ae602383611bcd565b91506125b982612552565b604082019050919050565b600060208201905081810360008301526125dd816125a1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612640602983611bcd565b915061264b826125e4565b604082019050919050565b6000602082019050818103600083015261266f81612633565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126b082611cd7565b91506126bb83611cd7565b9250826126cb576126ca612676565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061270c601983611bcd565b9150612717826126d6565b602082019050919050565b6000602082019050818103600083015261273b816126ff565b9050919050565b600061274d82611cd7565b915061275883611cd7565b92508282019050808211156127705761276f611f48565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006127ac601a83611bcd565b91506127b782612776565b602082019050919050565b600060208201905081810360008301526127db8161279f565b9050919050565b60006127ed82611cd7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361281f5761281e611f48565b5b600182019050919050565b600060408201905061283f6000830185611ede565b61284c6020830184611d83565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612889602083611bcd565b915061289482612853565b602082019050919050565b600060208201905081810360008301526128b88161287c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061292c81611cab565b92915050565b60006020828403121561294857612947611c74565b5b60006129568482850161291d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61299481611c99565b82525050565b60006129a6838361298b565b60208301905092915050565b6000602082019050919050565b60006129ca8261295f565b6129d4818561296a565b93506129df8361297b565b8060005b83811015612a105781516129f7888261299a565b9750612a02836129b2565b9250506001810190506129e3565b5085935050505092915050565b600060a082019050612a326000830188611d83565b612a3f6020830187612232565b8181036040830152612a5181866129bf565b9050612a606060830185611ede565b612a6d6080830184611d83565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000612aad601d83611bcd565b9150612ab882612a77565b602082019050919050565b60006020820190508181036000830152612adc81612aa0565b9050919050565b600081905092915050565b50565b6000612afe600083612ae3565b9150612b0982612aee565b600082019050919050565b6000612b1f82612af1565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000612b85603a83611bcd565b9150612b9082612b29565b604082019050919050565b60006020820190508181036000830152612bb481612b78565b905091905056fea26469706673582212204f078032e2539f5aa00b418b89f20dd83fda961909960e4c62587b2f47c6bc7964736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000018e4a4ad3f10bdca799adee3fd7fe234664068b0
-----Decoded View---------------
Arg [0] : staking_ (address): 0x18E4A4ad3f10bdCA799AdEe3Fd7FE234664068b0
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000018e4a4ad3f10bdca799adee3fd7fe234664068b0
Deployed Bytecode Sourcemap
16479:7700:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18470:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19327:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17543:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18747:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19496:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18656:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16709:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18850:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12090:103;;;;;;;;;;;;;:::i;:::-;;23290:159;;;;;;;;;;;;;:::i;:::-;;16769:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17359:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11442:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17418:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18561:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19001:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17479:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23576:563;;;;;;;;;;;;;:::i;:::-;;22395:83;;;;;;;;;;;;;:::i;:::-;;19176:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12348:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18470:83;18507:13;18540:5;;;;;;;;;;;;;;;;;18533:12;;18470:83;:::o;19327:161::-;19402:4;19419:39;19428:12;:10;:12::i;:::-;19442:7;19451:6;19419:8;:39::i;:::-;19476:4;19469:11;;19327:161;;;;:::o;17543:51::-;;;;:::o;18747:95::-;18800:7;17172:2;17227;:13;;;;:::i;:::-;17216:8;:24;;;;:::i;:::-;18820:14;;18747:95;:::o;19496:266::-;19594:4;19611:36;19621:6;19629:9;19640:6;19611:9;:36::i;:::-;19658:74;19667:6;19675:12;:10;:12::i;:::-;19725:6;19689:11;:19;19701:6;19689:19;;;;;;;;;;;;;;;:33;19709:12;:10;:12::i;:::-;19689:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;19658:8;:74::i;:::-;19750:4;19743:11;;19496:266;;;;;:::o;18656:83::-;18697:5;17172:2;18715:16;;18656:83;:::o;16709:23::-;;;;;;;;;;;;;:::o;18850:143::-;18916:7;18937:11;;;;;;;;;;;18930:19;;;;:::i;:::-;;18967:9;:18;18977:7;18967:18;;;;;;;;;;;;;;;;18960:25;;18850:143;;;:::o;12090:103::-;11328:13;:11;:13::i;:::-;12155:30:::1;12182:1;12155:18;:30::i;:::-;12090:103::o:0;23290:159::-;11328:13;:11;:13::i;:::-;17172:2:::1;17227;:13;;;;:::i;:::-;17216:8;:24;;;;:::i;:::-;23343:12;:22;;;;17172:2;17227;:13;;;;:::i;:::-;17216:8;:24;;;;:::i;:::-;23376:14;:22;;;;23414:27;17172:2;17227;:13;;;;:::i;:::-;17216:8;:24;;;;:::i;:::-;23414:27;;;;;;:::i;:::-;;;;;;;;23290:159::o:0;16769:24::-;;;;:::o;17359:52::-;;;;:::o;11442:87::-;11488:7;11515:6;;;;;;;;;;;11508:13;;11442:87;:::o;17418:54::-;;;;:::o;18561:87::-;18600:13;18633:7;;;;;;;;;;;;;;;;;18626:14;;18561:87;:::o;19001:167::-;19079:4;19096:42;19106:12;:10;:12::i;:::-;19120:9;19131:6;19096:9;:42::i;:::-;19156:4;19149:11;;19001:167;;;;:::o;17479:57::-;;;;:::o;23576:563::-;11328:13;:11;:13::i;:::-;23638:11:::1;::::0;::::1;;;;;;;;23637:12;23629:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23702:4;23688:11;;:18;;;;;;;;;;;;;;;;;;23754:42;23717:15;;:80;;;;;;;;;;;;;;;;;;23808:58;23825:4;23840:15;;;;;;;;;;;17172:2;17227;:13;;;;:::i;:::-;17216:8;:24;;;;:::i;:::-;23808:8;:58::i;:::-;23877:15;;;;;;;;;;;:31;;;23916:21;23952:4;23963:24;23981:4;23963:9;:24::i;:::-;23993:1;24000::::0;24007:7:::1;:5;:7::i;:::-;24020:15;23877:163;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24057:15;24045:9;:27;;;;24091:4;24077:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;24119:12;24106:10;:25;;;;23576:563::o:0;22395:83::-;11328:13;:11;:13::i;:::-;22438:35:::1;22451:21;22438:12;:35::i;:::-;22395:83::o:0;19176:143::-;19257:7;19284:11;:18;19296:5;19284:18;;;;;;;;;;;;;;;:27;19303:7;19284:27;;;;;;;;;;;;;;;;19277:34;;19176:143;;;;:::o;12348:201::-;11328:13;:11;:13::i;:::-;12457:1:::1;12437:22;;:8;:22;;::::0;12429:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12513:28;12532:8;12513:18;:28::i;:::-;12348:201:::0;:::o;10151:98::-;10204:7;10231:10;10224:17;;10151:98;:::o;19770:335::-;19880:1;19863:19;;:5;:19;;;19855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19961:1;19942:21;;:7;:21;;;19934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20043:6;20013:11;:18;20025:5;20013:18;;;;;;;;;;;;;;;:27;20032:7;20013:27;;;;;;;;;;;;;;;:36;;;;20081:7;20065:32;;20074:5;20065:32;;;20090:6;20065:32;;;;;;:::i;:::-;;;;;;;;19770:335;;;:::o;20113:2277::-;20217:1;20201:18;;:4;:18;;;20193:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20294:1;20280:16;;:2;:16;;;20272:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20364:1;20355:6;:10;20347:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20422:17;20468:7;:5;:7::i;:::-;20460:15;;:4;:15;;;;:32;;;;;20485:7;:5;:7::i;:::-;20479:13;;:2;:13;;;;20460:32;20456:1492;;;20521:13;;;;;;;;;;;20513:21;;:4;:21;;;:55;;;;;20552:15;;;;;;;;;;;20538:30;;:2;:30;;;;20513:55;:82;;;;;20573:18;:22;20592:2;20573:22;;;;;;;;;;;;;;;;;;;;;;;;;20572:23;20513:82;20509:542;;;20699:3;20648:15;;20636:9;;:27;:59;;20681:14;;20636:59;;;20666:12;;20636:59;20626:6;:70;;;;:::i;:::-;:76;;;;:::i;:::-;20614:88;;20741:12;;20731:6;:22;;20723:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20836:14;;20826:6;20810:13;20820:2;20810:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;20802:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;20923:12;20919:1;20906:10;;:14;;;;:::i;:::-;:29;20902:102;;;20969:14;20980:2;20969:10;:14::i;:::-;20968:15;20960:24;;;;;;20902:102;21024:9;;:11;;;;;;;;;:::i;:::-;;;;;;20509:542;21077:13;;;;;;;;;;;21071:19;;:2;:19;;;;:46;;;;;21095:18;:22;21114:2;21095:22;;;;;;;;;;;;;;;;;;;;;;;;;21094:23;21071:46;21067:166;;;21172:14;;21162:6;21146:13;21156:2;21146:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;21138:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;21067:166;21259:13;;;;;;;;;;;21253:19;;:2;:19;;;:44;;;;;21292:4;21276:21;;:4;:21;;;;21253:44;21249:176;;;21405:3;21351:16;;21339:9;;:28;:62;;21386:15;;21339:62;;;21370:13;;21339:62;21329:6;:73;;;;:::i;:::-;:79;;;;:::i;:::-;21317:91;;21249:176;21441:28;21472:24;21490:4;21472:9;:24::i;:::-;21441:55;;21516:6;;;;;;;;;;;21515:7;:30;;;;;21532:13;;;;;;;;;;;21526:19;;:2;:19;;;21515:30;:45;;;;;21549:11;;;;;;;;;;;21515:45;:89;;;;;21587:17;;21564:20;:40;21515:89;:123;;;;;21620:18;;21608:9;;:30;21515:123;21511:426;;;21659:69;21676:51;21680:6;21688:38;21692:20;21714:11;;21688:3;:38::i;:::-;21676:3;:51::i;:::-;21659:16;:69::i;:::-;21747:26;21776:21;21747:50;;21841:1;21820:18;:22;21816:106;;;21867:35;21880:21;21867:12;:35::i;:::-;21816:106;21640:297;21511:426;20494:1454;20456:1492;21976:1;21964:9;:13;21960:164;;;22045:9;22018;:24;22036:4;22018:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;21991:9;:24;22009:4;21991:24;;;;;;;;;;;;;;;:63;;;;22095:4;22072:40;;22081:4;22072:40;;;22102:9;22072:40;;;;;;:::i;:::-;;;;;;;;21960:164;22172:6;22154:9;:15;22164:4;22154:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;22136:9;:15;22146:4;22136:15;;;;;;;;;;;;;;;:42;;;;22231:9;22222:6;:18;;;;:::i;:::-;22205:9;:13;22215:2;22205:13;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;22189:9;:13;22199:2;22189:13;;;;;;;;;;;;;;;:52;;;;22272:2;22257:38;;22266:4;22257:38;;;22285:9;22276:6;:18;;;;:::i;:::-;22257:38;;;;;;:::i;:::-;;;;;;;;22320:7;;;;;;;;;;;22306:22;;:2;:22;;;22302:81;;22336:7;;;;;;;;;;;:15;;;22352:4;22367:9;22358:6;:18;;;;:::i;:::-;22336:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22302:81;20182:2208;20113:2277;;;:::o;11607:132::-;11682:12;:10;:12::i;:::-;11671:23;;:7;:5;:7::i;:::-;:23;;;11663:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11607:132::o;12709:191::-;12783:16;12802:6;;;;;;;;;;;12783:25;;12828:8;12819:6;;:17;;;;;;;;;;;;;;;;;;12883:8;12852:40;;12873:8;12852:40;;;;;;;;;;;;12772:128;12709:191;:::o;23457:111::-;23508:52;23542:7;;;;;;;;;;;23553:6;23508:17;:52::i;:::-;23457:111;:::o;22596:195::-;22655:4;22672:12;22739:7;22727:20;22719:28;;22782:1;22775:4;:8;22768:15;;;22596:195;;;:::o;22486:102::-;22543:7;22571:1;22567;:5;:13;;22579:1;22567:13;;;22575:1;22567:13;22560:20;;22486:102;;;;:::o;22799:483::-;17871:4;17862:6;;:13;;;;;;;;;;;;;;;;;;22877:21:::1;22915:1;22901:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22877:40;;22946:4;22928;22933:1;22928:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;22972:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22962:4;22967:1;22962:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;23005:62;23022:4;23037:15;;;;;;;;;;;23055:11;23005:8;:62::i;:::-;23078:15;;;;;;;;;;;:66;;;23159:11;23185:1;23201:4;23228;23248:15;23078:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22866:416;17907:5:::0;17898:6;;:14;;;;;;;;;;;;;;;;;;22799:483;:::o;2677:317::-;2792:6;2767:21;:31;;2759:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2846:12;2864:9;:14;;2886:6;2864:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2845:52;;;2916:7;2908:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2748:246;2677:317;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:60::-;4881:3;4902:5;4895:12;;4853:60;;;:::o;4919:142::-;4969:9;5002:53;5020:34;5029:24;5047:5;5029:24;:::i;:::-;5020:34;:::i;:::-;5002:53;:::i;:::-;4989:66;;4919:142;;;:::o;5067:126::-;5117:9;5150:37;5181:5;5150:37;:::i;:::-;5137:50;;5067:126;;;:::o;5199:142::-;5265:9;5298:37;5329:5;5298:37;:::i;:::-;5285:50;;5199:142;;;:::o;5347:163::-;5450:53;5497:5;5450:53;:::i;:::-;5445:3;5438:66;5347:163;;:::o;5516:254::-;5625:4;5663:2;5652:9;5648:18;5640:26;;5676:87;5760:1;5749:9;5745:17;5736:6;5676:87;:::i;:::-;5516:254;;;;:::o;5776:329::-;5835:6;5884:2;5872:9;5863:7;5859:23;5855:32;5852:119;;;5890:79;;:::i;:::-;5852:119;6010:1;6035:53;6080:7;6071:6;6060:9;6056:22;6035:53;:::i;:::-;6025:63;;5981:117;5776:329;;;;:::o;6111:118::-;6198:24;6216:5;6198:24;:::i;:::-;6193:3;6186:37;6111:118;;:::o;6235:222::-;6328:4;6366:2;6355:9;6351:18;6343:26;;6379:71;6447:1;6436:9;6432:17;6423:6;6379:71;:::i;:::-;6235:222;;;;:::o;6463:474::-;6531:6;6539;6588:2;6576:9;6567:7;6563:23;6559:32;6556:119;;;6594:79;;:::i;:::-;6556:119;6714:1;6739:53;6784:7;6775:6;6764:9;6760:22;6739:53;:::i;:::-;6729:63;;6685:117;6841:2;6867:53;6912:7;6903:6;6892:9;6888:22;6867:53;:::i;:::-;6857:63;;6812:118;6463:474;;;;;:::o;6943:180::-;6991:77;6988:1;6981:88;7088:4;7085:1;7078:15;7112:4;7109:1;7102:15;7129:102;7171:8;7218:5;7215:1;7211:13;7190:34;;7129:102;;;:::o;7237:848::-;7298:5;7305:4;7329:6;7320:15;;7353:5;7344:14;;7367:712;7388:1;7378:8;7375:15;7367:712;;;7483:4;7478:3;7474:14;7468:4;7465:24;7462:50;;;7492:18;;:::i;:::-;7462:50;7542:1;7532:8;7528:16;7525:451;;;7957:4;7950:5;7946:16;7937:25;;7525:451;8007:4;8001;7997:15;7989:23;;8037:32;8060:8;8037:32;:::i;:::-;8025:44;;7367:712;;;7237:848;;;;;;;:::o;8091:1073::-;8145:5;8336:8;8326:40;;8357:1;8348:10;;8359:5;;8326:40;8385:4;8375:36;;8402:1;8393:10;;8404:5;;8375:36;8471:4;8519:1;8514:27;;;;8555:1;8550:191;;;;8464:277;;8514:27;8532:1;8523:10;;8534:5;;;8550:191;8595:3;8585:8;8582:17;8579:43;;;8602:18;;:::i;:::-;8579:43;8651:8;8648:1;8644:16;8635:25;;8686:3;8679:5;8676:14;8673:40;;;8693:18;;:::i;:::-;8673:40;8726:5;;;8464:277;;8850:2;8840:8;8837:16;8831:3;8825:4;8822:13;8818:36;8800:2;8790:8;8787:16;8782:2;8776:4;8773:12;8769:35;8753:111;8750:246;;;8906:8;8900:4;8896:19;8887:28;;8941:3;8934:5;8931:14;8928:40;;;8948:18;;:::i;:::-;8928:40;8981:5;;8750:246;9021:42;9059:3;9049:8;9043:4;9040:1;9021:42;:::i;:::-;9006:57;;;;9095:4;9090:3;9086:14;9079:5;9076:25;9073:51;;;9104:18;;:::i;:::-;9073:51;9153:4;9146:5;9142:16;9133:25;;8091:1073;;;;;;:::o;9170:281::-;9228:5;9252:23;9270:4;9252:23;:::i;:::-;9244:31;;9296:25;9312:8;9296:25;:::i;:::-;9284:37;;9340:104;9377:66;9367:8;9361:4;9340:104;:::i;:::-;9331:113;;9170:281;;;;:::o;9457:410::-;9497:7;9520:20;9538:1;9520:20;:::i;:::-;9515:25;;9554:20;9572:1;9554:20;:::i;:::-;9549:25;;9609:1;9606;9602:9;9631:30;9649:11;9631:30;:::i;:::-;9620:41;;9810:1;9801:7;9797:15;9794:1;9791:22;9771:1;9764:9;9744:83;9721:139;;9840:18;;:::i;:::-;9721:139;9505:362;9457:410;;;;:::o;9873:194::-;9913:4;9933:20;9951:1;9933:20;:::i;:::-;9928:25;;9967:20;9985:1;9967:20;:::i;:::-;9962:25;;10011:1;10008;10004:9;9996:17;;10035:1;10029:4;10026:11;10023:37;;;10040:18;;:::i;:::-;10023:37;9873:194;;;;:::o;10073:180::-;10121:77;10118:1;10111:88;10218:4;10215:1;10208:15;10242:4;10239:1;10232:15;10259:173;10399:25;10395:1;10387:6;10383:14;10376:49;10259:173;:::o;10438:366::-;10580:3;10601:67;10665:2;10660:3;10601:67;:::i;:::-;10594:74;;10677:93;10766:3;10677:93;:::i;:::-;10795:2;10790:3;10786:12;10779:19;;10438:366;;;:::o;10810:419::-;10976:4;11014:2;11003:9;10999:18;10991:26;;11063:9;11057:4;11053:20;11049:1;11038:9;11034:17;11027:47;11091:131;11217:4;11091:131;:::i;:::-;11083:139;;10810:419;;;:::o;11235:85::-;11280:7;11309:5;11298:16;;11235:85;;;:::o;11326:158::-;11384:9;11417:61;11435:42;11444:32;11470:5;11444:32;:::i;:::-;11435:42;:::i;:::-;11417:61;:::i;:::-;11404:74;;11326:158;;;:::o;11490:147::-;11585:45;11624:5;11585:45;:::i;:::-;11580:3;11573:58;11490:147;;:::o;11643:807::-;11892:4;11930:3;11919:9;11915:19;11907:27;;11944:71;12012:1;12001:9;11997:17;11988:6;11944:71;:::i;:::-;12025:72;12093:2;12082:9;12078:18;12069:6;12025:72;:::i;:::-;12107:80;12183:2;12172:9;12168:18;12159:6;12107:80;:::i;:::-;12197;12273:2;12262:9;12258:18;12249:6;12197:80;:::i;:::-;12287:73;12355:3;12344:9;12340:19;12331:6;12287:73;:::i;:::-;12370;12438:3;12427:9;12423:19;12414:6;12370:73;:::i;:::-;11643:807;;;;;;;;;:::o;12456:143::-;12513:5;12544:6;12538:13;12529:22;;12560:33;12587:5;12560:33;:::i;:::-;12456:143;;;;:::o;12605:663::-;12693:6;12701;12709;12758:2;12746:9;12737:7;12733:23;12729:32;12726:119;;;12764:79;;:::i;:::-;12726:119;12884:1;12909:64;12965:7;12956:6;12945:9;12941:22;12909:64;:::i;:::-;12899:74;;12855:128;13022:2;13048:64;13104:7;13095:6;13084:9;13080:22;13048:64;:::i;:::-;13038:74;;12993:129;13161:2;13187:64;13243:7;13234:6;13223:9;13219:22;13187:64;:::i;:::-;13177:74;;13132:129;12605:663;;;;;:::o;13274:225::-;13414:34;13410:1;13402:6;13398:14;13391:58;13483:8;13478:2;13470:6;13466:15;13459:33;13274:225;:::o;13505:366::-;13647:3;13668:67;13732:2;13727:3;13668:67;:::i;:::-;13661:74;;13744:93;13833:3;13744:93;:::i;:::-;13862:2;13857:3;13853:12;13846:19;;13505:366;;;:::o;13877:419::-;14043:4;14081:2;14070:9;14066:18;14058:26;;14130:9;14124:4;14120:20;14116:1;14105:9;14101:17;14094:47;14158:131;14284:4;14158:131;:::i;:::-;14150:139;;13877:419;;;:::o;14302:223::-;14442:34;14438:1;14430:6;14426:14;14419:58;14511:6;14506:2;14498:6;14494:15;14487:31;14302:223;:::o;14531:366::-;14673:3;14694:67;14758:2;14753:3;14694:67;:::i;:::-;14687:74;;14770:93;14859:3;14770:93;:::i;:::-;14888:2;14883:3;14879:12;14872:19;;14531:366;;;:::o;14903:419::-;15069:4;15107:2;15096:9;15092:18;15084:26;;15156:9;15150:4;15146:20;15142:1;15131:9;15127:17;15120:47;15184:131;15310:4;15184:131;:::i;:::-;15176:139;;14903:419;;;:::o;15328:221::-;15468:34;15464:1;15456:6;15452:14;15445:58;15537:4;15532:2;15524:6;15520:15;15513:29;15328:221;:::o;15555:366::-;15697:3;15718:67;15782:2;15777:3;15718:67;:::i;:::-;15711:74;;15794:93;15883:3;15794:93;:::i;:::-;15912:2;15907:3;15903:12;15896:19;;15555:366;;;:::o;15927:419::-;16093:4;16131:2;16120:9;16116:18;16108:26;;16180:9;16174:4;16170:20;16166:1;16155:9;16151:17;16144:47;16208:131;16334:4;16208:131;:::i;:::-;16200:139;;15927:419;;;:::o;16352:224::-;16492:34;16488:1;16480:6;16476:14;16469:58;16561:7;16556:2;16548:6;16544:15;16537:32;16352:224;:::o;16582:366::-;16724:3;16745:67;16809:2;16804:3;16745:67;:::i;:::-;16738:74;;16821:93;16910:3;16821:93;:::i;:::-;16939:2;16934:3;16930:12;16923:19;;16582:366;;;:::o;16954:419::-;17120:4;17158:2;17147:9;17143:18;17135:26;;17207:9;17201:4;17197:20;17193:1;17182:9;17178:17;17171:47;17235:131;17361:4;17235:131;:::i;:::-;17227:139;;16954:419;;;:::o;17379:222::-;17519:34;17515:1;17507:6;17503:14;17496:58;17588:5;17583:2;17575:6;17571:15;17564:30;17379:222;:::o;17607:366::-;17749:3;17770:67;17834:2;17829:3;17770:67;:::i;:::-;17763:74;;17846:93;17935:3;17846:93;:::i;:::-;17964:2;17959:3;17955:12;17948:19;;17607:366;;;:::o;17979:419::-;18145:4;18183:2;18172:9;18168:18;18160:26;;18232:9;18226:4;18222:20;18218:1;18207:9;18203:17;18196:47;18260:131;18386:4;18260:131;:::i;:::-;18252:139;;17979:419;;;:::o;18404:228::-;18544:34;18540:1;18532:6;18528:14;18521:58;18613:11;18608:2;18600:6;18596:15;18589:36;18404:228;:::o;18638:366::-;18780:3;18801:67;18865:2;18860:3;18801:67;:::i;:::-;18794:74;;18877:93;18966:3;18877:93;:::i;:::-;18995:2;18990:3;18986:12;18979:19;;18638:366;;;:::o;19010:419::-;19176:4;19214:2;19203:9;19199:18;19191:26;;19263:9;19257:4;19253:20;19249:1;19238:9;19234:17;19227:47;19291:131;19417:4;19291:131;:::i;:::-;19283:139;;19010:419;;;:::o;19435:180::-;19483:77;19480:1;19473:88;19580:4;19577:1;19570:15;19604:4;19601:1;19594:15;19621:185;19661:1;19678:20;19696:1;19678:20;:::i;:::-;19673:25;;19712:20;19730:1;19712:20;:::i;:::-;19707:25;;19751:1;19741:35;;19756:18;;:::i;:::-;19741:35;19798:1;19795;19791:9;19786:14;;19621:185;;;;:::o;19812:175::-;19952:27;19948:1;19940:6;19936:14;19929:51;19812:175;:::o;19993:366::-;20135:3;20156:67;20220:2;20215:3;20156:67;:::i;:::-;20149:74;;20232:93;20321:3;20232:93;:::i;:::-;20350:2;20345:3;20341:12;20334:19;;19993:366;;;:::o;20365:419::-;20531:4;20569:2;20558:9;20554:18;20546:26;;20618:9;20612:4;20608:20;20604:1;20593:9;20589:17;20582:47;20646:131;20772:4;20646:131;:::i;:::-;20638:139;;20365:419;;;:::o;20790:191::-;20830:3;20849:20;20867:1;20849:20;:::i;:::-;20844:25;;20883:20;20901:1;20883:20;:::i;:::-;20878:25;;20926:1;20923;20919:9;20912:16;;20947:3;20944:1;20941:10;20938:36;;;20954:18;;:::i;:::-;20938:36;20790:191;;;;:::o;20987:176::-;21127:28;21123:1;21115:6;21111:14;21104:52;20987:176;:::o;21169:366::-;21311:3;21332:67;21396:2;21391:3;21332:67;:::i;:::-;21325:74;;21408:93;21497:3;21408:93;:::i;:::-;21526:2;21521:3;21517:12;21510:19;;21169:366;;;:::o;21541:419::-;21707:4;21745:2;21734:9;21730:18;21722:26;;21794:9;21788:4;21784:20;21780:1;21769:9;21765:17;21758:47;21822:131;21948:4;21822:131;:::i;:::-;21814:139;;21541:419;;;:::o;21966:233::-;22005:3;22028:24;22046:5;22028:24;:::i;:::-;22019:33;;22074:66;22067:5;22064:77;22061:103;;22144:18;;:::i;:::-;22061:103;22191:1;22184:5;22180:13;22173:20;;21966:233;;;:::o;22205:332::-;22326:4;22364:2;22353:9;22349:18;22341:26;;22377:71;22445:1;22434:9;22430:17;22421:6;22377:71;:::i;:::-;22458:72;22526:2;22515:9;22511:18;22502:6;22458:72;:::i;:::-;22205:332;;;;;:::o;22543:182::-;22683:34;22679:1;22671:6;22667:14;22660:58;22543:182;:::o;22731:366::-;22873:3;22894:67;22958:2;22953:3;22894:67;:::i;:::-;22887:74;;22970:93;23059:3;22970:93;:::i;:::-;23088:2;23083:3;23079:12;23072:19;;22731:366;;;:::o;23103:419::-;23269:4;23307:2;23296:9;23292:18;23284:26;;23356:9;23350:4;23346:20;23342:1;23331:9;23327:17;23320:47;23384:131;23510:4;23384:131;:::i;:::-;23376:139;;23103:419;;;:::o;23528:180::-;23576:77;23573:1;23566:88;23673:4;23670:1;23663:15;23697:4;23694:1;23687:15;23714:180;23762:77;23759:1;23752:88;23859:4;23856:1;23849:15;23883:4;23880:1;23873:15;23900:143;23957:5;23988:6;23982:13;23973:22;;24004:33;24031:5;24004:33;:::i;:::-;23900:143;;;;:::o;24049:351::-;24119:6;24168:2;24156:9;24147:7;24143:23;24139:32;24136:119;;;24174:79;;:::i;:::-;24136:119;24294:1;24319:64;24375:7;24366:6;24355:9;24351:22;24319:64;:::i;:::-;24309:74;;24265:128;24049:351;;;;:::o;24406:114::-;24473:6;24507:5;24501:12;24491:22;;24406:114;;;:::o;24526:184::-;24625:11;24659:6;24654:3;24647:19;24699:4;24694:3;24690:14;24675:29;;24526:184;;;;:::o;24716:132::-;24783:4;24806:3;24798:11;;24836:4;24831:3;24827:14;24819:22;;24716:132;;;:::o;24854:108::-;24931:24;24949:5;24931:24;:::i;:::-;24926:3;24919:37;24854:108;;:::o;24968:179::-;25037:10;25058:46;25100:3;25092:6;25058:46;:::i;:::-;25136:4;25131:3;25127:14;25113:28;;24968:179;;;;:::o;25153:113::-;25223:4;25255;25250:3;25246:14;25238:22;;25153:113;;;:::o;25302:732::-;25421:3;25450:54;25498:5;25450:54;:::i;:::-;25520:86;25599:6;25594:3;25520:86;:::i;:::-;25513:93;;25630:56;25680:5;25630:56;:::i;:::-;25709:7;25740:1;25725:284;25750:6;25747:1;25744:13;25725:284;;;25826:6;25820:13;25853:63;25912:3;25897:13;25853:63;:::i;:::-;25846:70;;25939:60;25992:6;25939:60;:::i;:::-;25929:70;;25785:224;25772:1;25769;25765:9;25760:14;;25725:284;;;25729:14;26025:3;26018:10;;25426:608;;;25302:732;;;;:::o;26040:831::-;26303:4;26341:3;26330:9;26326:19;26318:27;;26355:71;26423:1;26412:9;26408:17;26399:6;26355:71;:::i;:::-;26436:80;26512:2;26501:9;26497:18;26488:6;26436:80;:::i;:::-;26563:9;26557:4;26553:20;26548:2;26537:9;26533:18;26526:48;26591:108;26694:4;26685:6;26591:108;:::i;:::-;26583:116;;26709:72;26777:2;26766:9;26762:18;26753:6;26709:72;:::i;:::-;26791:73;26859:3;26848:9;26844:19;26835:6;26791:73;:::i;:::-;26040:831;;;;;;;;:::o;26877:179::-;27017:31;27013:1;27005:6;27001:14;26994:55;26877:179;:::o;27062:366::-;27204:3;27225:67;27289:2;27284:3;27225:67;:::i;:::-;27218:74;;27301:93;27390:3;27301:93;:::i;:::-;27419:2;27414:3;27410:12;27403:19;;27062:366;;;:::o;27434:419::-;27600:4;27638:2;27627:9;27623:18;27615:26;;27687:9;27681:4;27677:20;27673:1;27662:9;27658:17;27651:47;27715:131;27841:4;27715:131;:::i;:::-;27707:139;;27434:419;;;:::o;27859:147::-;27960:11;27997:3;27982:18;;27859:147;;;;:::o;28012:114::-;;:::o;28132:398::-;28291:3;28312:83;28393:1;28388:3;28312:83;:::i;:::-;28305:90;;28404:93;28493:3;28404:93;:::i;:::-;28522:1;28517:3;28513:11;28506:18;;28132:398;;;:::o;28536:379::-;28720:3;28742:147;28885:3;28742:147;:::i;:::-;28735:154;;28906:3;28899:10;;28536:379;;;:::o;28921:245::-;29061:34;29057:1;29049:6;29045:14;29038:58;29130:28;29125:2;29117:6;29113:15;29106:53;28921:245;:::o;29172:366::-;29314:3;29335:67;29399:2;29394:3;29335:67;:::i;:::-;29328:74;;29411:93;29500:3;29411:93;:::i;:::-;29529:2;29524:3;29520:12;29513:19;;29172:366;;;:::o;29544:419::-;29710:4;29748:2;29737:9;29733:18;29725:26;;29797:9;29791:4;29787:20;29783:1;29772:9;29768:17;29761:47;29825:131;29951:4;29825:131;:::i;:::-;29817:139;;29544:419;;;:::o
Swarm Source
ipfs://4f078032e2539f5aa00b418b89f20dd83fda961909960e4c62587b2f47c6bc79
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.