Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
985,565,840.297739696436115452 GOKU
Holders
95
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
67,781.616834181975062077 GOKUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GOKUSWAP
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-13 */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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); } } 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 IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { 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); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract GOKUSWAP is ERC20, Ownable { uint256 public constant _totalSupply = 1000000000 * 1e18; address private marketingWallet = 0xEb0DC271Fb73cDA4218e7e38C41EcA1A76b77325; //Router IRouter public router; address public pair; //Taxes uint256 public buyTaxes = 3; uint256 public sellTaxes = 3; bool public tradingEnabled = false; mapping (address => bool) public excludedFromFees; event TaxesUpdated(); event MarketingWalletUpdated(); event ExcludedFromFeesUpdated(); event StuckEthersCleared(); event TransferForeignToken(address token, uint256 amount); constructor() ERC20("GOKUSWAP", "GOKU") { _mint(msg.sender, _totalSupply); excludedFromFees[msg.sender] = true; router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IFactory(router.factory()).createPair( address(this), router.WETH() ); excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(sender != address(0), "transfer from address zero"); require(recipient != address(0), "transfer to address zero"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; uint256 burnAmount = 0; require(tradingEnabled, "Trading not active yet"); if (excludedFromFees[sender] || excludedFromFees[recipient]) { taxAmount = 0; burnAmount = 0; } else { if(recipient == pair) { taxAmount = amount * (sellTaxes - 1) / 100; burnAmount = amount / 100; }else if(sender == pair) { taxAmount = amount * (buyTaxes - 1) / 100; burnAmount = amount / 100; } else { taxAmount = 0; burnAmount = 0; } } super._transfer(sender, recipient, amount - taxAmount - burnAmount); if(taxAmount > 0) { super._transfer(sender, marketingWallet, taxAmount); } if(burnAmount > 0) { super._burn(marketingWallet, burnAmount); } } // OWNER function enableTrading() external onlyOwner { require(!tradingEnabled, "Trading is already enabled"); tradingEnabled = true; } function setPair(address _pair) external onlyOwner{ pair = _pair; } function setRouter(address _router) external onlyOwner{ router = IRouter(_router); } function setTaxes(uint256 _buyTax, uint256 _sellTax) external onlyOwner{ require(_buyTax <= 5, "Can not set buy fees higher than 5%"); require(_sellTax <= 5, "Can not set sell fees higher than 5%"); buyTaxes = _buyTax; sellTaxes = _sellTax; emit TaxesUpdated(); } function setMarketingWallet(address newWallet) external onlyOwner{ require(newWallet != address(0), "Marketing Wallet cannot be zero address"); excludedFromFees[marketingWallet] = false; marketingWallet = newWallet; excludedFromFees[newWallet] = true; emit MarketingWalletUpdated(); } function setExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; emit ExcludedFromFeesUpdated(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"ExcludedFromFeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketingWalletUpdated","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":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"inputs":[],"name":"_totalSupply","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":"buyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405273eb0dc271fb73cda4218e7e38c41eca1a76b77325600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036009556003600a556000600b60006101000a81548160ff0219169083151502179055503480156200008b57600080fd5b506040518060400160405280600881526020017f474f4b55535741500000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f474f4b55000000000000000000000000000000000000000000000000000000008152508160039080519060200190620001109291906200074e565b508060049080519060200190620001299291906200074e565b5050506200014c620001406200050860201b60201c565b6200051060201b60201c565b6200016a336b033b2e3c9fd0803ce8000000620005d660201b60201c565b6001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028057600080fd5b505afa15801562000295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bb919062000815565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034057600080fd5b505afa15801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b919062000815565b6040518363ffffffff1660e01b81526004016200039a929190620008a5565b602060405180830381600087803b158015620003b557600080fd5b505af1158015620003ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f0919062000815565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000a6b565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000649576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064090620008d2565b60405180910390fd5b6200065d600083836200074460201b60201c565b806002600082825462000671919062000922565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007249190620008f4565b60405180910390a362000740600083836200074960201b60201c565b5050565b505050565b505050565b8280546200075c90620009bd565b90600052602060002090601f016020900481019282620007805760008555620007cc565b82601f106200079b57805160ff1916838001178555620007cc565b82800160010185558215620007cc579182015b82811115620007cb578251825591602001919060010190620007ae565b5b509050620007db9190620007df565b5090565b5b80821115620007fa576000816000905550600101620007e0565b5090565b6000815190506200080f8162000a51565b92915050565b6000602082840312156200082857600080fd5b60006200083884828501620007fe565b91505092915050565b6200084c816200097f565b82525050565b600062000861601f8362000911565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200089f81620009b3565b82525050565b6000604082019050620008bc600083018562000841565b620008cb602083018462000841565b9392505050565b60006020820190508181036000830152620008ed8162000852565b9050919050565b60006020820190506200090b600083018462000894565b92915050565b600082825260208201905092915050565b60006200092f82620009b3565b91506200093c83620009b3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620009745762000973620009f3565b5b828201905092915050565b60006200098c8262000993565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006002820490506001821680620009d657607f821691505b60208210811415620009ed57620009ec62000a22565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b62000a5c816200097f565b811462000a6857600080fd5b50565b6128c78062000a7b6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063864701a5116100f9578063c0d7865511610097578063dd62ed3e11610071578063dd62ed3e146104ac578063f2fde38b146104dc578063f66895a3146104f8578063f887ea4014610516576101a9565b8063c0d7865514610444578063c647b20e14610460578063dbe66ca01461047c576101a9565b806395d89b41116100d357806395d89b41146103a8578063a457c2d7146103c6578063a8aa1b31146103f6578063a9059cbb14610414576101a9565b8063864701a5146103625780638a8c523c146103805780638da5cb5b1461038a576101a9565b80633eaaf86b116101665780635d098b38116101405780635d098b38146102f057806370a082311461030c578063715018a61461033c5780638187f51614610346576101a9565b80633eaaf86b146102985780634ada218b146102b6578063590ffdce146102d4576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc57806323b872dd1461021a578063313ce5671461024a5780633950935114610268575b600080fd5b6101b6610534565b6040516101c391906122e7565b60405180910390f35b6101e660048036038101906101e19190611aec565b6105c6565b6040516101f391906122b1565b60405180910390f35b6102046105e9565b6040516102119190612569565b60405180910390f35b610234600480360381019061022f9190611a61565b6105f3565b60405161024191906122b1565b60405180910390f35b610252610622565b60405161025f9190612584565b60405180910390f35b610282600480360381019061027d9190611aec565b61062b565b60405161028f91906122b1565b60405180910390f35b6102a0610662565b6040516102ad9190612569565b60405180910390f35b6102be610672565b6040516102cb91906122b1565b60405180910390f35b6102ee60048036038101906102e99190611ab0565b610685565b005b61030a600480360381019061030591906119fc565b610714565b005b610326600480360381019061032191906119fc565b6108ce565b6040516103339190612569565b60405180910390f35b610344610916565b005b610360600480360381019061035b91906119fc565b61092a565b005b61036a610976565b6040516103779190612569565b60405180910390f35b61038861097c565b005b6103926109f1565b60405161039f9190612296565b60405180910390f35b6103b0610a1b565b6040516103bd91906122e7565b60405180910390f35b6103e060048036038101906103db9190611aec565b610aad565b6040516103ed91906122b1565b60405180910390f35b6103fe610b24565b60405161040b9190612296565b60405180910390f35b61042e60048036038101906104299190611aec565b610b4a565b60405161043b91906122b1565b60405180910390f35b61045e600480360381019061045991906119fc565b610b6d565b005b61047a60048036038101906104759190611b28565b610bb9565b005b610496600480360381019061049191906119fc565b610c87565b6040516104a391906122b1565b60405180910390f35b6104c660048036038101906104c19190611a25565b610ca7565b6040516104d39190612569565b60405180910390f35b6104f660048036038101906104f191906119fc565b610d2e565b005b610500610db2565b60405161050d9190612569565b60405180910390f35b61051e610db8565b60405161052b91906122cc565b60405180910390f35b6060600380546105439061277c565b80601f016020809104026020016040519081016040528092919081815260200182805461056f9061277c565b80156105bc5780601f10610591576101008083540402835291602001916105bc565b820191906000526020600020905b81548152906001019060200180831161059f57829003601f168201915b5050505050905090565b6000806105d1610dde565b90506105de818585610de6565b600191505092915050565b6000600254905090565b6000806105fe610dde565b905061060b858285610fb1565b61061685858561103d565b60019150509392505050565b60006012905090565b600080610636610dde565b90506106578185856106488589610ca7565b61065291906125bb565b610de6565b600191505092915050565b6b033b2e3c9fd0803ce800000081565b600b60009054906101000a900460ff1681565b61068d611429565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed60405160405180910390a15050565b61071c611429565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612409565b60405180910390fd5b6000600c6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e060405160405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61091e611429565b61092860006114a7565b565b610932611429565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b610984611429565b600b60009054906101000a900460ff16156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90612509565b60405180910390fd5b6001600b60006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a2a9061277c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a569061277c565b8015610aa35780601f10610a7857610100808354040283529160200191610aa3565b820191906000526020600020905b815481529060010190602001808311610a8657829003601f168201915b5050505050905090565b600080610ab8610dde565b90506000610ac68286610ca7565b905083811015610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290612529565b60405180910390fd5b610b188286868403610de6565b60019250505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610b55610dde565b9050610b6281858561103d565b600191505092915050565b610b75611429565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bc1611429565b6005821115610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc906124e9565b60405180910390fd5b6005811115610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090612429565b60405180910390fd5b8160098190555080600a819055507faeb315627f2fde8646a784d3e17a5fe6e38d52d0ba442e41aec9f29d290601a960405160405180910390a15050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d36611429565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90612369565b60405180910390fd5b610daf816114a7565b50565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906124c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd906123a9565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fa49190612569565b60405180910390a3505050565b6000610fbd8484610ca7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110375781811015611029576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611020906123c9565b60405180910390fd5b6110368484848403610de6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a490612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490612389565b60405180910390fd5b60008111611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612469565b60405180910390fd5b600080600b60009054906101000a900460ff166111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990612349565b60405180910390fd5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806112535750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611265576000915060009050611394565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112f75760646001600a546112cc919061269c565b846112d79190612642565b6112e19190612611565b91506064836112f09190612611565b9050611393565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611389576064600160095461135e919061269c565b846113699190612642565b6113739190612611565b91506064836113829190612611565b9050611392565b60009150600090505b5b5b6113b585858385876113a6919061269c565b6113b0919061269c565b61156d565b60008211156113ec576113eb85600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461156d565b5b600081111561142257611421600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826117e5565b5b5050505050565b611431610dde565b73ffffffffffffffffffffffffffffffffffffffff1661144f6109f1565b73ffffffffffffffffffffffffffffffffffffffff16146114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612449565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d4906124a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490612309565b60405180910390fd5b6116588383836119b3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d5906123e9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117cc9190612569565b60405180910390a36117df8484846119b8565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184c90612489565b60405180910390fd5b611861826000836119b3565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612329565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161199a9190612569565b60405180910390a36119ae836000846119b8565b505050565b505050565b505050565b6000813590506119cc8161284c565b92915050565b6000813590506119e181612863565b92915050565b6000813590506119f68161287a565b92915050565b600060208284031215611a0e57600080fd5b6000611a1c848285016119bd565b91505092915050565b60008060408385031215611a3857600080fd5b6000611a46858286016119bd565b9250506020611a57858286016119bd565b9150509250929050565b600080600060608486031215611a7657600080fd5b6000611a84868287016119bd565b9350506020611a95868287016119bd565b9250506040611aa6868287016119e7565b9150509250925092565b60008060408385031215611ac357600080fd5b6000611ad1858286016119bd565b9250506020611ae2858286016119d2565b9150509250929050565b60008060408385031215611aff57600080fd5b6000611b0d858286016119bd565b9250506020611b1e858286016119e7565b9150509250929050565b60008060408385031215611b3b57600080fd5b6000611b49858286016119e7565b9250506020611b5a858286016119e7565b9150509250929050565b611b6d816126d0565b82525050565b611b7c816126e2565b82525050565b611b8b81612725565b82525050565b6000611b9c8261259f565b611ba681856125aa565b9350611bb6818560208601612749565b611bbf8161283b565b840191505092915050565b6000611bd76023836125aa565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611c3d6022836125aa565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ca36016836125aa565b91507f54726164696e67206e6f742061637469766520796574000000000000000000006000830152602082019050919050565b6000611ce36026836125aa565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611d496018836125aa565b91507f7472616e7366657220746f2061646472657373207a65726f00000000000000006000830152602082019050919050565b6000611d896022836125aa565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611def601d836125aa565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b6000611e2f6026836125aa565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e956027836125aa565b91507f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f2060008301527f61646472657373000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611efb6024836125aa565b91507f43616e206e6f74207365742073656c6c2066656573206869676865722074686160008301527f6e203525000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f616020836125aa565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611fa16029836125aa565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b60006120076021836125aa565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061206d6025836125aa565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120d36024836125aa565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121396023836125aa565b91507f43616e206e6f742073657420627579206665657320686967686572207468616e60008301527f20352500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061219f601a836125aa565b91507f54726164696e6720697320616c726561647920656e61626c65640000000000006000830152602082019050919050565b60006121df6025836125aa565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612245601a836125aa565b91507f7472616e736665722066726f6d2061646472657373207a65726f0000000000006000830152602082019050919050565b6122818161270e565b82525050565b61229081612718565b82525050565b60006020820190506122ab6000830184611b64565b92915050565b60006020820190506122c66000830184611b73565b92915050565b60006020820190506122e16000830184611b82565b92915050565b600060208201905081810360008301526123018184611b91565b905092915050565b6000602082019050818103600083015261232281611bca565b9050919050565b6000602082019050818103600083015261234281611c30565b9050919050565b6000602082019050818103600083015261236281611c96565b9050919050565b6000602082019050818103600083015261238281611cd6565b9050919050565b600060208201905081810360008301526123a281611d3c565b9050919050565b600060208201905081810360008301526123c281611d7c565b9050919050565b600060208201905081810360008301526123e281611de2565b9050919050565b6000602082019050818103600083015261240281611e22565b9050919050565b6000602082019050818103600083015261242281611e88565b9050919050565b6000602082019050818103600083015261244281611eee565b9050919050565b6000602082019050818103600083015261246281611f54565b9050919050565b6000602082019050818103600083015261248281611f94565b9050919050565b600060208201905081810360008301526124a281611ffa565b9050919050565b600060208201905081810360008301526124c281612060565b9050919050565b600060208201905081810360008301526124e2816120c6565b9050919050565b600060208201905081810360008301526125028161212c565b9050919050565b6000602082019050818103600083015261252281612192565b9050919050565b60006020820190508181036000830152612542816121d2565b9050919050565b6000602082019050818103600083015261256281612238565b9050919050565b600060208201905061257e6000830184612278565b92915050565b60006020820190506125996000830184612287565b92915050565b600081519050919050565b600082825260208201905092915050565b60006125c68261270e565b91506125d18361270e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612606576126056127ae565b5b828201905092915050565b600061261c8261270e565b91506126278361270e565b925082612637576126366127dd565b5b828204905092915050565b600061264d8261270e565b91506126588361270e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612691576126906127ae565b5b828202905092915050565b60006126a78261270e565b91506126b28361270e565b9250828210156126c5576126c46127ae565b5b828203905092915050565b60006126db826126ee565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061273082612737565b9050919050565b6000612742826126ee565b9050919050565b60005b8381101561276757808201518184015260208101905061274c565b83811115612776576000848401525b50505050565b6000600282049050600182168061279457607f821691505b602082108114156127a8576127a761280c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b612855816126d0565b811461286057600080fd5b50565b61286c816126e2565b811461287757600080fd5b50565b6128838161270e565b811461288e57600080fd5b5056fea26469706673582212203e0e64462e9ae0aa1bd96347a1d73f65f2a1b4cff1f6fd26543b8c062e9faf4064736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063864701a5116100f9578063c0d7865511610097578063dd62ed3e11610071578063dd62ed3e146104ac578063f2fde38b146104dc578063f66895a3146104f8578063f887ea4014610516576101a9565b8063c0d7865514610444578063c647b20e14610460578063dbe66ca01461047c576101a9565b806395d89b41116100d357806395d89b41146103a8578063a457c2d7146103c6578063a8aa1b31146103f6578063a9059cbb14610414576101a9565b8063864701a5146103625780638a8c523c146103805780638da5cb5b1461038a576101a9565b80633eaaf86b116101665780635d098b38116101405780635d098b38146102f057806370a082311461030c578063715018a61461033c5780638187f51614610346576101a9565b80633eaaf86b146102985780634ada218b146102b6578063590ffdce146102d4576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc57806323b872dd1461021a578063313ce5671461024a5780633950935114610268575b600080fd5b6101b6610534565b6040516101c391906122e7565b60405180910390f35b6101e660048036038101906101e19190611aec565b6105c6565b6040516101f391906122b1565b60405180910390f35b6102046105e9565b6040516102119190612569565b60405180910390f35b610234600480360381019061022f9190611a61565b6105f3565b60405161024191906122b1565b60405180910390f35b610252610622565b60405161025f9190612584565b60405180910390f35b610282600480360381019061027d9190611aec565b61062b565b60405161028f91906122b1565b60405180910390f35b6102a0610662565b6040516102ad9190612569565b60405180910390f35b6102be610672565b6040516102cb91906122b1565b60405180910390f35b6102ee60048036038101906102e99190611ab0565b610685565b005b61030a600480360381019061030591906119fc565b610714565b005b610326600480360381019061032191906119fc565b6108ce565b6040516103339190612569565b60405180910390f35b610344610916565b005b610360600480360381019061035b91906119fc565b61092a565b005b61036a610976565b6040516103779190612569565b60405180910390f35b61038861097c565b005b6103926109f1565b60405161039f9190612296565b60405180910390f35b6103b0610a1b565b6040516103bd91906122e7565b60405180910390f35b6103e060048036038101906103db9190611aec565b610aad565b6040516103ed91906122b1565b60405180910390f35b6103fe610b24565b60405161040b9190612296565b60405180910390f35b61042e60048036038101906104299190611aec565b610b4a565b60405161043b91906122b1565b60405180910390f35b61045e600480360381019061045991906119fc565b610b6d565b005b61047a60048036038101906104759190611b28565b610bb9565b005b610496600480360381019061049191906119fc565b610c87565b6040516104a391906122b1565b60405180910390f35b6104c660048036038101906104c19190611a25565b610ca7565b6040516104d39190612569565b60405180910390f35b6104f660048036038101906104f191906119fc565b610d2e565b005b610500610db2565b60405161050d9190612569565b60405180910390f35b61051e610db8565b60405161052b91906122cc565b60405180910390f35b6060600380546105439061277c565b80601f016020809104026020016040519081016040528092919081815260200182805461056f9061277c565b80156105bc5780601f10610591576101008083540402835291602001916105bc565b820191906000526020600020905b81548152906001019060200180831161059f57829003601f168201915b5050505050905090565b6000806105d1610dde565b90506105de818585610de6565b600191505092915050565b6000600254905090565b6000806105fe610dde565b905061060b858285610fb1565b61061685858561103d565b60019150509392505050565b60006012905090565b600080610636610dde565b90506106578185856106488589610ca7565b61065291906125bb565b610de6565b600191505092915050565b6b033b2e3c9fd0803ce800000081565b600b60009054906101000a900460ff1681565b61068d611429565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed60405160405180910390a15050565b61071c611429565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612409565b60405180910390fd5b6000600c6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e060405160405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61091e611429565b61092860006114a7565b565b610932611429565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b610984611429565b600b60009054906101000a900460ff16156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90612509565b60405180910390fd5b6001600b60006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a2a9061277c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a569061277c565b8015610aa35780601f10610a7857610100808354040283529160200191610aa3565b820191906000526020600020905b815481529060010190602001808311610a8657829003601f168201915b5050505050905090565b600080610ab8610dde565b90506000610ac68286610ca7565b905083811015610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290612529565b60405180910390fd5b610b188286868403610de6565b60019250505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610b55610dde565b9050610b6281858561103d565b600191505092915050565b610b75611429565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bc1611429565b6005821115610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc906124e9565b60405180910390fd5b6005811115610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090612429565b60405180910390fd5b8160098190555080600a819055507faeb315627f2fde8646a784d3e17a5fe6e38d52d0ba442e41aec9f29d290601a960405160405180910390a15050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d36611429565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90612369565b60405180910390fd5b610daf816114a7565b50565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d906124c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd906123a9565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fa49190612569565b60405180910390a3505050565b6000610fbd8484610ca7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110375781811015611029576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611020906123c9565b60405180910390fd5b6110368484848403610de6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a490612549565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490612389565b60405180910390fd5b60008111611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612469565b60405180910390fd5b600080600b60009054906101000a900460ff166111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990612349565b60405180910390fd5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806112535750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611265576000915060009050611394565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112f75760646001600a546112cc919061269c565b846112d79190612642565b6112e19190612611565b91506064836112f09190612611565b9050611393565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611389576064600160095461135e919061269c565b846113699190612642565b6113739190612611565b91506064836113829190612611565b9050611392565b60009150600090505b5b5b6113b585858385876113a6919061269c565b6113b0919061269c565b61156d565b60008211156113ec576113eb85600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461156d565b5b600081111561142257611421600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826117e5565b5b5050505050565b611431610dde565b73ffffffffffffffffffffffffffffffffffffffff1661144f6109f1565b73ffffffffffffffffffffffffffffffffffffffff16146114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612449565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d4906124a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490612309565b60405180910390fd5b6116588383836119b3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d5906123e9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117cc9190612569565b60405180910390a36117df8484846119b8565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184c90612489565b60405180910390fd5b611861826000836119b3565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90612329565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161199a9190612569565b60405180910390a36119ae836000846119b8565b505050565b505050565b505050565b6000813590506119cc8161284c565b92915050565b6000813590506119e181612863565b92915050565b6000813590506119f68161287a565b92915050565b600060208284031215611a0e57600080fd5b6000611a1c848285016119bd565b91505092915050565b60008060408385031215611a3857600080fd5b6000611a46858286016119bd565b9250506020611a57858286016119bd565b9150509250929050565b600080600060608486031215611a7657600080fd5b6000611a84868287016119bd565b9350506020611a95868287016119bd565b9250506040611aa6868287016119e7565b9150509250925092565b60008060408385031215611ac357600080fd5b6000611ad1858286016119bd565b9250506020611ae2858286016119d2565b9150509250929050565b60008060408385031215611aff57600080fd5b6000611b0d858286016119bd565b9250506020611b1e858286016119e7565b9150509250929050565b60008060408385031215611b3b57600080fd5b6000611b49858286016119e7565b9250506020611b5a858286016119e7565b9150509250929050565b611b6d816126d0565b82525050565b611b7c816126e2565b82525050565b611b8b81612725565b82525050565b6000611b9c8261259f565b611ba681856125aa565b9350611bb6818560208601612749565b611bbf8161283b565b840191505092915050565b6000611bd76023836125aa565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611c3d6022836125aa565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611ca36016836125aa565b91507f54726164696e67206e6f742061637469766520796574000000000000000000006000830152602082019050919050565b6000611ce36026836125aa565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611d496018836125aa565b91507f7472616e7366657220746f2061646472657373207a65726f00000000000000006000830152602082019050919050565b6000611d896022836125aa565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611def601d836125aa565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b6000611e2f6026836125aa565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e956027836125aa565b91507f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f2060008301527f61646472657373000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611efb6024836125aa565b91507f43616e206e6f74207365742073656c6c2066656573206869676865722074686160008301527f6e203525000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f616020836125aa565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611fa16029836125aa565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b60006120076021836125aa565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061206d6025836125aa565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120d36024836125aa565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121396023836125aa565b91507f43616e206e6f742073657420627579206665657320686967686572207468616e60008301527f20352500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061219f601a836125aa565b91507f54726164696e6720697320616c726561647920656e61626c65640000000000006000830152602082019050919050565b60006121df6025836125aa565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612245601a836125aa565b91507f7472616e736665722066726f6d2061646472657373207a65726f0000000000006000830152602082019050919050565b6122818161270e565b82525050565b61229081612718565b82525050565b60006020820190506122ab6000830184611b64565b92915050565b60006020820190506122c66000830184611b73565b92915050565b60006020820190506122e16000830184611b82565b92915050565b600060208201905081810360008301526123018184611b91565b905092915050565b6000602082019050818103600083015261232281611bca565b9050919050565b6000602082019050818103600083015261234281611c30565b9050919050565b6000602082019050818103600083015261236281611c96565b9050919050565b6000602082019050818103600083015261238281611cd6565b9050919050565b600060208201905081810360008301526123a281611d3c565b9050919050565b600060208201905081810360008301526123c281611d7c565b9050919050565b600060208201905081810360008301526123e281611de2565b9050919050565b6000602082019050818103600083015261240281611e22565b9050919050565b6000602082019050818103600083015261242281611e88565b9050919050565b6000602082019050818103600083015261244281611eee565b9050919050565b6000602082019050818103600083015261246281611f54565b9050919050565b6000602082019050818103600083015261248281611f94565b9050919050565b600060208201905081810360008301526124a281611ffa565b9050919050565b600060208201905081810360008301526124c281612060565b9050919050565b600060208201905081810360008301526124e2816120c6565b9050919050565b600060208201905081810360008301526125028161212c565b9050919050565b6000602082019050818103600083015261252281612192565b9050919050565b60006020820190508181036000830152612542816121d2565b9050919050565b6000602082019050818103600083015261256281612238565b9050919050565b600060208201905061257e6000830184612278565b92915050565b60006020820190506125996000830184612287565b92915050565b600081519050919050565b600082825260208201905092915050565b60006125c68261270e565b91506125d18361270e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612606576126056127ae565b5b828201905092915050565b600061261c8261270e565b91506126278361270e565b925082612637576126366127dd565b5b828204905092915050565b600061264d8261270e565b91506126588361270e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612691576126906127ae565b5b828202905092915050565b60006126a78261270e565b91506126b28361270e565b9250828210156126c5576126c46127ae565b5b828203905092915050565b60006126db826126ee565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061273082612737565b9050919050565b6000612742826126ee565b9050919050565b60005b8381101561276757808201518184015260208101905061274c565b83811115612776576000848401525b50505050565b6000600282049050600182168061279457607f821691505b602082108114156127a8576127a761280c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b612855816126d0565b811461286057600080fd5b50565b61286c816126e2565b811461287757600080fd5b50565b6128838161270e565b811461288e57600080fd5b5056fea26469706673582212203e0e64462e9ae0aa1bd96347a1d73f65f2a1b4cff1f6fd26543b8c062e9faf4064736f6c63430008000033
Deployed Bytecode Sourcemap
17741:3559:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6015:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8375:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7144:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9156:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6986:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9826:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17784:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18080:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21125:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20783:334;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7315:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1517:103;;;:::i;:::-;;20267:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18011:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20110:149;;;:::i;:::-;;876:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6234:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10567:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17972:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7648:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20356:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20462:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18123:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7904:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1775:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18045:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17944:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6015:100;6069:13;6102:5;6095:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6015:100;:::o;8375:201::-;8458:4;8475:13;8491:12;:10;:12::i;:::-;8475:28;;8514:32;8523:5;8530:7;8539:6;8514:8;:32::i;:::-;8564:4;8557:11;;;8375:201;;;;:::o;7144:108::-;7205:7;7232:12;;7225:19;;7144:108;:::o;9156:261::-;9253:4;9270:15;9288:12;:10;:12::i;:::-;9270:30;;9311:38;9327:4;9333:7;9342:6;9311:15;:38::i;:::-;9360:27;9370:4;9376:2;9380:6;9360:9;:27::i;:::-;9405:4;9398:11;;;9156:261;;;;;:::o;6986:93::-;7044:5;7069:2;7062:9;;6986:93;:::o;9826:238::-;9914:4;9931:13;9947:12;:10;:12::i;:::-;9931:28;;9970:64;9979:5;9986:7;10023:10;9995:25;10005:5;10012:7;9995:9;:25::i;:::-;:38;;;;:::i;:::-;9970:8;:64::i;:::-;10052:4;10045:11;;;9826:238;;;;:::o;17784:56::-;17823:17;17784:56;:::o;18080:34::-;;;;;;;;;;;;;:::o;21125:172::-;762:13;:11;:13::i;:::-;21243:5:::1;21214:16;:26;21231:8;21214:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;21264:25;;;;;;;;;;21125:172:::0;;:::o;20783:334::-;762:13;:11;:13::i;:::-;20888:1:::1;20867:23;;:9;:23;;;;20859:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;20981:5;20945:16;:33;20962:15;;;;;;;;;;;20945:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;21015:9;20997:15;;:27;;;;;;;;;;;;;;;;;;21065:4;21035:16;:27;21052:9;21035:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;21085:24;;;;;;;;;;20783:334:::0;:::o;7315:127::-;7389:7;7416:9;:18;7426:7;7416:18;;;;;;;;;;;;;;;;7409:25;;7315:127;;;:::o;1517:103::-;762:13;:11;:13::i;:::-;1582:30:::1;1609:1;1582:18;:30::i;:::-;1517:103::o:0;20267:81::-;762:13;:11;:13::i;:::-;20335:5:::1;20328:4;;:12;;;;;;;;;;;;;;;;;;20267:81:::0;:::o;18011:27::-;;;;:::o;20110:149::-;762:13;:11;:13::i;:::-;20174:14:::1;;;;;;;;;;;20173:15;20165:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20247:4;20230:14;;:21;;;;;;;;;;;;;;;;;;20110:149::o:0;876:87::-;922:7;949:6;;;;;;;;;;;942:13;;876:87;:::o;6234:104::-;6290:13;6323:7;6316:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6234:104;:::o;10567:436::-;10660:4;10677:13;10693:12;:10;:12::i;:::-;10677:28;;10716:24;10743:25;10753:5;10760:7;10743:9;:25::i;:::-;10716:52;;10807:15;10787:16;:35;;10779:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10900:60;10909:5;10916:7;10944:15;10925:16;:34;10900:8;:60::i;:::-;10991:4;10984:11;;;;10567:436;;;;:::o;17972:19::-;;;;;;;;;;;;;:::o;7648:193::-;7727:4;7744:13;7760:12;:10;:12::i;:::-;7744:28;;7783;7793:5;7800:2;7804:6;7783:9;:28::i;:::-;7829:4;7822:11;;;7648:193;;;;:::o;20356:98::-;762:13;:11;:13::i;:::-;20438:7:::1;20421:6;;:25;;;;;;;;;;;;;;;;;;20356:98:::0;:::o;20462:313::-;762:13;:11;:13::i;:::-;20563:1:::1;20552:7;:12;;20544:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20635:1;20623:8;:13;;20615:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;20699:7;20688:8;:18;;;;20729:8;20717:9;:20;;;;20753:14;;;;;;;;;;20462:313:::0;;:::o;18123:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;7904:151::-;7993:7;8020:11;:18;8032:5;8020:18;;;;;;;;;;;;;;;:27;8039:7;8020:27;;;;;;;;;;;;;;;;8013:34;;7904:151;;;;:::o;1775:201::-;762:13;:11;:13::i;:::-;1884:1:::1;1864:22;;:8;:22;;;;1856:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1940:28;1959:8;1940:18;:28::i;:::-;1775:201:::0;:::o;18045:28::-;;;;:::o;17944:21::-;;;;;;;;;;;;;:::o;92:98::-;145:7;172:10;165:17;;92:98;:::o;14560:346::-;14679:1;14662:19;;:5;:19;;;;14654:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14760:1;14741:21;;:7;:21;;;;14733:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14844:6;14814:11;:18;14826:5;14814:18;;;;;;;;;;;;;;;:27;14833:7;14814:27;;;;;;;;;;;;;;;:36;;;;14882:7;14866:32;;14875:5;14866:32;;;14891:6;14866:32;;;;;;:::i;:::-;;;;;;;;14560:346;;;:::o;15197:419::-;15298:24;15325:25;15335:5;15342:7;15325:9;:25::i;:::-;15298:52;;15385:17;15365:16;:37;15361:248;;15447:6;15427:16;:26;;15419:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15531:51;15540:5;15547:7;15575:6;15556:16;:25;15531:8;:51::i;:::-;15361:248;15197:419;;;;:::o;18819:1269::-;18944:1;18926:20;;:6;:20;;;;18918:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19017:1;18996:23;;:9;:23;;;;18988:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19076:1;19067:6;:10;19059:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19134:17;19166:18;19209:14;;;;;;;;;;;19201:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19267:16;:24;19284:6;19267:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;19295:16;:27;19312:9;19295:27;;;;;;;;;;;;;;;;;;;;;;;;;19267:55;19263:536;;;19351:1;19339:13;;19380:1;19367:14;;19263:536;;;19430:4;;;;;;;;;;;19417:17;;:9;:17;;;19414:374;;;19494:3;19489:1;19477:9;;:13;;;;:::i;:::-;19467:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;19455:42;;19538:3;19529:6;:12;;;;:::i;:::-;19516:25;;19414:374;;;19575:4;;;;;;;;;;;19565:14;;:6;:14;;;19562:226;;;19638:3;19633:1;19622:8;;:12;;;;:::i;:::-;19612:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;19600:41;;19682:3;19673:6;:12;;;;:::i;:::-;19660:25;;19562:226;;;19738:1;19726:13;;19771:1;19758:14;;19562:226;19414:374;19263:536;19811:67;19827:6;19835:9;19867:10;19855:9;19846:6;:18;;;;:::i;:::-;:31;;;;:::i;:::-;19811:15;:67::i;:::-;19904:1;19892:9;:13;19889:96;;;19922:51;19938:6;19946:15;;;;;;;;;;;19963:9;19922:15;:51::i;:::-;19889:96;20011:1;19998:10;:14;19995:86;;;20029:40;20041:15;;;;;;;;;;;20058:10;20029:11;:40::i;:::-;19995:86;18819:1269;;;;;:::o;1041:132::-;1116:12;:10;:12::i;:::-;1105:23;;:7;:5;:7::i;:::-;:23;;;1097:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1041:132::o;2136:191::-;2210:16;2229:6;;;;;;;;;;;2210:25;;2255:8;2246:6;;:17;;;;;;;;;;;;;;;;;;2310:8;2279:40;;2300:8;2279:40;;;;;;;;;;;;2136:191;;:::o;11473:806::-;11586:1;11570:18;;:4;:18;;;;11562:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11663:1;11649:16;;:2;:16;;;;11641:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11718:38;11739:4;11745:2;11749:6;11718:20;:38::i;:::-;11769:19;11791:9;:15;11801:4;11791:15;;;;;;;;;;;;;;;;11769:37;;11840:6;11825:11;:21;;11817:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11957:6;11943:11;:20;11925:9;:15;11935:4;11925:15;;;;;;;;;;;;;;;:38;;;;12160:6;12143:9;:13;12153:2;12143:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12210:2;12195:26;;12204:4;12195:26;;;12214:6;12195:26;;;;;;:::i;:::-;;;;;;;;12234:37;12254:4;12260:2;12264:6;12234:19;:37::i;:::-;11473:806;;;;:::o;13447:675::-;13550:1;13531:21;;:7;:21;;;;13523:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13603:49;13624:7;13641:1;13645:6;13603:20;:49::i;:::-;13665:22;13690:9;:18;13700:7;13690:18;;;;;;;;;;;;;;;;13665:43;;13745:6;13727:14;:24;;13719:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13864:6;13847:14;:23;13826:9;:18;13836:7;13826:18;;;;;;;;;;;;;;;:44;;;;13981:6;13965:12;;:22;;;;;;;;;;;14042:1;14016:37;;14025:7;14016:37;;;14046:6;14016:37;;;;;;:::i;:::-;;;;;;;;14066:48;14086:7;14103:1;14107:6;14066:19;:48::i;:::-;13447:675;;;:::o;16216:91::-;;;;:::o;16911:90::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:407::-;;;829:2;817:9;808:7;804:23;800:32;797:2;;;845:1;842;835:12;797:2;888:1;913:53;958:7;949:6;938:9;934:22;913:53;:::i;:::-;903:63;;859:117;1015:2;1041:53;1086:7;1077:6;1066:9;1062:22;1041:53;:::i;:::-;1031:63;;986:118;787:324;;;;;:::o;1117:552::-;;;;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1275:1;1272;1265:12;1227:2;1318:1;1343:53;1388:7;1379:6;1368:9;1364:22;1343:53;:::i;:::-;1333:63;;1289:117;1445:2;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1416:118;1573:2;1599:53;1644:7;1635:6;1624:9;1620:22;1599:53;:::i;:::-;1589:63;;1544:118;1217:452;;;;;:::o;1675:401::-;;;1797:2;1785:9;1776:7;1772:23;1768:32;1765:2;;;1813:1;1810;1803:12;1765:2;1856:1;1881:53;1926:7;1917:6;1906:9;1902:22;1881:53;:::i;:::-;1871:63;;1827:117;1983:2;2009:50;2051:7;2042:6;2031:9;2027:22;2009:50;:::i;:::-;1999:60;;1954:115;1755:321;;;;;:::o;2082:407::-;;;2207:2;2195:9;2186:7;2182:23;2178:32;2175:2;;;2223:1;2220;2213:12;2175:2;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2393:2;2419:53;2464:7;2455:6;2444:9;2440:22;2419:53;:::i;:::-;2409:63;;2364:118;2165:324;;;;;:::o;2495:407::-;;;2620:2;2608:9;2599:7;2595:23;2591:32;2588:2;;;2636:1;2633;2626:12;2588:2;2679:1;2704:53;2749:7;2740:6;2729:9;2725:22;2704:53;:::i;:::-;2694:63;;2650:117;2806:2;2832:53;2877:7;2868:6;2857:9;2853:22;2832:53;:::i;:::-;2822:63;;2777:118;2578:324;;;;;:::o;2908:118::-;2995:24;3013:5;2995:24;:::i;:::-;2990:3;2983:37;2973:53;;:::o;3032:109::-;3113:21;3128:5;3113:21;:::i;:::-;3108:3;3101:34;3091:50;;:::o;3147:161::-;3249:52;3295:5;3249:52;:::i;:::-;3244:3;3237:65;3227:81;;:::o;3314:364::-;;3430:39;3463:5;3430:39;:::i;:::-;3485:71;3549:6;3544:3;3485:71;:::i;:::-;3478:78;;3565:52;3610:6;3605:3;3598:4;3591:5;3587:16;3565:52;:::i;:::-;3642:29;3664:6;3642:29;:::i;:::-;3637:3;3633:39;3626:46;;3406:272;;;;;:::o;3684:367::-;;3847:67;3911:2;3906:3;3847:67;:::i;:::-;3840:74;;3944:34;3940:1;3935:3;3931:11;3924:55;4010:5;4005:2;4000:3;3996:12;3989:27;4042:2;4037:3;4033:12;4026:19;;3830:221;;;:::o;4057:366::-;;4220:67;4284:2;4279:3;4220:67;:::i;:::-;4213:74;;4317:34;4313:1;4308:3;4304:11;4297:55;4383:4;4378:2;4373:3;4369:12;4362:26;4414:2;4409:3;4405:12;4398:19;;4203:220;;;:::o;4429:320::-;;4592:67;4656:2;4651:3;4592:67;:::i;:::-;4585:74;;4689:24;4685:1;4680:3;4676:11;4669:45;4740:2;4735:3;4731:12;4724:19;;4575:174;;;:::o;4755:370::-;;4918:67;4982:2;4977:3;4918:67;:::i;:::-;4911:74;;5015:34;5011:1;5006:3;5002:11;4995:55;5081:8;5076:2;5071:3;5067:12;5060:30;5116:2;5111:3;5107:12;5100:19;;4901:224;;;:::o;5131:322::-;;5294:67;5358:2;5353:3;5294:67;:::i;:::-;5287:74;;5391:26;5387:1;5382:3;5378:11;5371:47;5444:2;5439:3;5435:12;5428:19;;5277:176;;;:::o;5459:366::-;;5622:67;5686:2;5681:3;5622:67;:::i;:::-;5615:74;;5719:34;5715:1;5710:3;5706:11;5699:55;5785:4;5780:2;5775:3;5771:12;5764:26;5816:2;5811:3;5807:12;5800:19;;5605:220;;;:::o;5831:327::-;;5994:67;6058:2;6053:3;5994:67;:::i;:::-;5987:74;;6091:31;6087:1;6082:3;6078:11;6071:52;6149:2;6144:3;6140:12;6133:19;;5977:181;;;:::o;6164:370::-;;6327:67;6391:2;6386:3;6327:67;:::i;:::-;6320:74;;6424:34;6420:1;6415:3;6411:11;6404:55;6490:8;6485:2;6480:3;6476:12;6469:30;6525:2;6520:3;6516:12;6509:19;;6310:224;;;:::o;6540:371::-;;6703:67;6767:2;6762:3;6703:67;:::i;:::-;6696:74;;6800:34;6796:1;6791:3;6787:11;6780:55;6866:9;6861:2;6856:3;6852:12;6845:31;6902:2;6897:3;6893:12;6886:19;;6686:225;;;:::o;6917:368::-;;7080:67;7144:2;7139:3;7080:67;:::i;:::-;7073:74;;7177:34;7173:1;7168:3;7164:11;7157:55;7243:6;7238:2;7233:3;7229:12;7222:28;7276:2;7271:3;7267:12;7260:19;;7063:222;;;:::o;7291:330::-;;7454:67;7518:2;7513:3;7454:67;:::i;:::-;7447:74;;7551:34;7547:1;7542:3;7538:11;7531:55;7612:2;7607:3;7603:12;7596:19;;7437:184;;;:::o;7627:373::-;;7790:67;7854:2;7849:3;7790:67;:::i;:::-;7783:74;;7887:34;7883:1;7878:3;7874:11;7867:55;7953:11;7948:2;7943:3;7939:12;7932:33;7991:2;7986:3;7982:12;7975:19;;7773:227;;;:::o;8006:365::-;;8169:67;8233:2;8228:3;8169:67;:::i;:::-;8162:74;;8266:34;8262:1;8257:3;8253:11;8246:55;8332:3;8327:2;8322:3;8318:12;8311:25;8362:2;8357:3;8353:12;8346:19;;8152:219;;;:::o;8377:369::-;;8540:67;8604:2;8599:3;8540:67;:::i;:::-;8533:74;;8637:34;8633:1;8628:3;8624:11;8617:55;8703:7;8698:2;8693:3;8689:12;8682:29;8737:2;8732:3;8728:12;8721:19;;8523:223;;;:::o;8752:368::-;;8915:67;8979:2;8974:3;8915:67;:::i;:::-;8908:74;;9012:34;9008:1;9003:3;8999:11;8992:55;9078:6;9073:2;9068:3;9064:12;9057:28;9111:2;9106:3;9102:12;9095:19;;8898:222;;;:::o;9126:367::-;;9289:67;9353:2;9348:3;9289:67;:::i;:::-;9282:74;;9386:34;9382:1;9377:3;9373:11;9366:55;9452:5;9447:2;9442:3;9438:12;9431:27;9484:2;9479:3;9475:12;9468:19;;9272:221;;;:::o;9499:324::-;;9662:67;9726:2;9721:3;9662:67;:::i;:::-;9655:74;;9759:28;9755:1;9750:3;9746:11;9739:49;9814:2;9809:3;9805:12;9798:19;;9645:178;;;:::o;9829:369::-;;9992:67;10056:2;10051:3;9992:67;:::i;:::-;9985:74;;10089:34;10085:1;10080:3;10076:11;10069:55;10155:7;10150:2;10145:3;10141:12;10134:29;10189:2;10184:3;10180:12;10173:19;;9975:223;;;:::o;10204:324::-;;10367:67;10431:2;10426:3;10367:67;:::i;:::-;10360:74;;10464:28;10460:1;10455:3;10451:11;10444:49;10519:2;10514:3;10510:12;10503:19;;10350:178;;;:::o;10534:118::-;10621:24;10639:5;10621:24;:::i;:::-;10616:3;10609:37;10599:53;;:::o;10658:112::-;10741:22;10757:5;10741:22;:::i;:::-;10736:3;10729:35;10719:51;;:::o;10776:222::-;;10907:2;10896:9;10892:18;10884:26;;10920:71;10988:1;10977:9;10973:17;10964:6;10920:71;:::i;:::-;10874:124;;;;:::o;11004:210::-;;11129:2;11118:9;11114:18;11106:26;;11142:65;11204:1;11193:9;11189:17;11180:6;11142:65;:::i;:::-;11096:118;;;;:::o;11220:252::-;;11366:2;11355:9;11351:18;11343:26;;11379:86;11462:1;11451:9;11447:17;11438:6;11379:86;:::i;:::-;11333:139;;;;:::o;11478:313::-;;11629:2;11618:9;11614:18;11606:26;;11678:9;11672:4;11668:20;11664:1;11653:9;11649:17;11642:47;11706:78;11779:4;11770:6;11706:78;:::i;:::-;11698:86;;11596:195;;;;:::o;11797:419::-;;12001:2;11990:9;11986:18;11978:26;;12050:9;12044:4;12040:20;12036:1;12025:9;12021:17;12014:47;12078:131;12204:4;12078:131;:::i;:::-;12070:139;;11968:248;;;:::o;12222:419::-;;12426:2;12415:9;12411:18;12403:26;;12475:9;12469:4;12465:20;12461:1;12450:9;12446:17;12439:47;12503:131;12629:4;12503:131;:::i;:::-;12495:139;;12393:248;;;:::o;12647:419::-;;12851:2;12840:9;12836:18;12828:26;;12900:9;12894:4;12890:20;12886:1;12875:9;12871:17;12864:47;12928:131;13054:4;12928:131;:::i;:::-;12920:139;;12818:248;;;:::o;13072:419::-;;13276:2;13265:9;13261:18;13253:26;;13325:9;13319:4;13315:20;13311:1;13300:9;13296:17;13289:47;13353:131;13479:4;13353:131;:::i;:::-;13345:139;;13243:248;;;:::o;13497:419::-;;13701:2;13690:9;13686:18;13678:26;;13750:9;13744:4;13740:20;13736:1;13725:9;13721:17;13714:47;13778:131;13904:4;13778:131;:::i;:::-;13770:139;;13668:248;;;:::o;13922:419::-;;14126:2;14115:9;14111:18;14103:26;;14175:9;14169:4;14165:20;14161:1;14150:9;14146:17;14139:47;14203:131;14329:4;14203:131;:::i;:::-;14195:139;;14093:248;;;:::o;14347:419::-;;14551:2;14540:9;14536:18;14528:26;;14600:9;14594:4;14590:20;14586:1;14575:9;14571:17;14564:47;14628:131;14754:4;14628:131;:::i;:::-;14620:139;;14518:248;;;:::o;14772:419::-;;14976:2;14965:9;14961:18;14953:26;;15025:9;15019:4;15015:20;15011:1;15000:9;14996:17;14989:47;15053:131;15179:4;15053:131;:::i;:::-;15045:139;;14943:248;;;:::o;15197:419::-;;15401:2;15390:9;15386:18;15378:26;;15450:9;15444:4;15440:20;15436:1;15425:9;15421:17;15414:47;15478:131;15604:4;15478:131;:::i;:::-;15470:139;;15368:248;;;:::o;15622:419::-;;15826:2;15815:9;15811:18;15803:26;;15875:9;15869:4;15865:20;15861:1;15850:9;15846:17;15839:47;15903:131;16029:4;15903:131;:::i;:::-;15895:139;;15793:248;;;:::o;16047:419::-;;16251:2;16240:9;16236:18;16228:26;;16300:9;16294:4;16290:20;16286:1;16275:9;16271:17;16264:47;16328:131;16454:4;16328:131;:::i;:::-;16320:139;;16218:248;;;:::o;16472:419::-;;16676:2;16665:9;16661:18;16653:26;;16725:9;16719:4;16715:20;16711:1;16700:9;16696:17;16689:47;16753:131;16879:4;16753:131;:::i;:::-;16745:139;;16643:248;;;:::o;16897:419::-;;17101:2;17090:9;17086:18;17078:26;;17150:9;17144:4;17140:20;17136:1;17125:9;17121:17;17114:47;17178:131;17304:4;17178:131;:::i;:::-;17170:139;;17068:248;;;:::o;17322:419::-;;17526:2;17515:9;17511:18;17503:26;;17575:9;17569:4;17565:20;17561:1;17550:9;17546:17;17539:47;17603:131;17729:4;17603:131;:::i;:::-;17595:139;;17493:248;;;:::o;17747:419::-;;17951:2;17940:9;17936:18;17928:26;;18000:9;17994:4;17990:20;17986:1;17975:9;17971:17;17964:47;18028:131;18154:4;18028:131;:::i;:::-;18020:139;;17918:248;;;:::o;18172:419::-;;18376:2;18365:9;18361:18;18353:26;;18425:9;18419:4;18415:20;18411:1;18400:9;18396:17;18389:47;18453:131;18579:4;18453:131;:::i;:::-;18445:139;;18343:248;;;:::o;18597:419::-;;18801:2;18790:9;18786:18;18778:26;;18850:9;18844:4;18840:20;18836:1;18825:9;18821:17;18814:47;18878:131;19004:4;18878:131;:::i;:::-;18870:139;;18768:248;;;:::o;19022:419::-;;19226:2;19215:9;19211:18;19203:26;;19275:9;19269:4;19265:20;19261:1;19250:9;19246:17;19239:47;19303:131;19429:4;19303:131;:::i;:::-;19295:139;;19193:248;;;:::o;19447:419::-;;19651:2;19640:9;19636:18;19628:26;;19700:9;19694:4;19690:20;19686:1;19675:9;19671:17;19664:47;19728:131;19854:4;19728:131;:::i;:::-;19720:139;;19618:248;;;:::o;19872:222::-;;20003:2;19992:9;19988:18;19980:26;;20016:71;20084:1;20073:9;20069:17;20060:6;20016:71;:::i;:::-;19970:124;;;;:::o;20100:214::-;;20227:2;20216:9;20212:18;20204:26;;20240:67;20304:1;20293:9;20289:17;20280:6;20240:67;:::i;:::-;20194:120;;;;:::o;20320:99::-;;20406:5;20400:12;20390:22;;20379:40;;;:::o;20425:169::-;;20543:6;20538:3;20531:19;20583:4;20578:3;20574:14;20559:29;;20521:73;;;;:::o;20600:305::-;;20659:20;20677:1;20659:20;:::i;:::-;20654:25;;20693:20;20711:1;20693:20;:::i;:::-;20688:25;;20847:1;20779:66;20775:74;20772:1;20769:81;20766:2;;;20853:18;;:::i;:::-;20766:2;20897:1;20894;20890:9;20883:16;;20644:261;;;;:::o;20911:185::-;;20968:20;20986:1;20968:20;:::i;:::-;20963:25;;21002:20;21020:1;21002:20;:::i;:::-;20997:25;;21041:1;21031:2;;21046:18;;:::i;:::-;21031:2;21088:1;21085;21081:9;21076:14;;20953:143;;;;:::o;21102:348::-;;21165:20;21183:1;21165:20;:::i;:::-;21160:25;;21199:20;21217:1;21199:20;:::i;:::-;21194:25;;21387:1;21319:66;21315:74;21312:1;21309:81;21304:1;21297:9;21290:17;21286:105;21283:2;;;21394:18;;:::i;:::-;21283:2;21442:1;21439;21435:9;21424:20;;21150:300;;;;:::o;21456:191::-;;21516:20;21534:1;21516:20;:::i;:::-;21511:25;;21550:20;21568:1;21550:20;:::i;:::-;21545:25;;21589:1;21586;21583:8;21580:2;;;21594:18;;:::i;:::-;21580:2;21639:1;21636;21632:9;21624:17;;21501:146;;;;:::o;21653:96::-;;21719:24;21737:5;21719:24;:::i;:::-;21708:35;;21698:51;;;:::o;21755:90::-;;21832:5;21825:13;21818:21;21807:32;;21797:48;;;:::o;21851:126::-;;21928:42;21921:5;21917:54;21906:65;;21896:81;;;:::o;21983:77::-;;22049:5;22038:16;;22028:32;;;:::o;22066:86::-;;22141:4;22134:5;22130:16;22119:27;;22109:43;;;:::o;22158:156::-;;22256:52;22302:5;22256:52;:::i;:::-;22243:65;;22233:81;;;:::o;22320:128::-;;22418:24;22436:5;22418:24;:::i;:::-;22405:37;;22395:53;;;:::o;22454:307::-;22522:1;22532:113;22546:6;22543:1;22540:13;22532:113;;;22631:1;22626:3;22622:11;22616:18;22612:1;22607:3;22603:11;22596:39;22568:2;22565:1;22561:10;22556:15;;22532:113;;;22663:6;22660:1;22657:13;22654:2;;;22743:1;22734:6;22729:3;22725:16;22718:27;22654:2;22503:258;;;;:::o;22767:320::-;;22848:1;22842:4;22838:12;22828:22;;22895:1;22889:4;22885:12;22916:18;22906:2;;22972:4;22964:6;22960:17;22950:27;;22906:2;23034;23026:6;23023:14;23003:18;23000:38;22997:2;;;23053:18;;:::i;:::-;22997:2;22818:269;;;;:::o;23093:180::-;23141:77;23138:1;23131:88;23238:4;23235:1;23228:15;23262:4;23259:1;23252:15;23279:180;23327:77;23324:1;23317:88;23424:4;23421:1;23414:15;23448:4;23445:1;23438:15;23465:180;23513:77;23510:1;23503:88;23610:4;23607:1;23600:15;23634:4;23631:1;23624:15;23651:102;;23743:2;23739:7;23734:2;23727:5;23723:14;23719:28;23709:38;;23699:54;;;:::o;23759:122::-;23832:24;23850:5;23832:24;:::i;:::-;23825:5;23822:35;23812:2;;23871:1;23868;23861:12;23812:2;23802:79;:::o;23887:116::-;23957:21;23972:5;23957:21;:::i;:::-;23950:5;23947:32;23937:2;;23993:1;23990;23983:12;23937:2;23927:76;:::o;24009:122::-;24082:24;24100:5;24082:24;:::i;:::-;24075:5;24072:35;24062:2;;24121:1;24118;24111:12;24062:2;24052:79;:::o
Swarm Source
ipfs://3e0e64462e9ae0aa1bd96347a1d73f65f2a1b4cff1f6fd26543b8c062e9faf40
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.