ETH Price: $3,634.82 (-6.41%)

Token

ERC-20: Katakuri (KATAKURI)
 

Overview

Max Total Supply

10,000,000,000 KATAKURI

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
154,791,499 KATAKURI

Value
$0.00
0x5C46C5a184E93fb7cb72f039968D05d2CCcAF117
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Katakuri

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-05
*/

// SPDX-License-Identifier: MIT
// Telegram: t.me/katakuritoken
pragma solidity ^0.8.4;

address constant WALLET_ADDRESS = 0xE54Bc4D497CAAE6285ed91F854B585b3F054c307;
uint256 constant TOTAL_SUPPLY = 10000000000;
string constant TOKEN_NAME = "Katakuri";
string constant TOKEN_SYMBOL = "KATAKURI";
uint256 constant INITIAL_TAX=8;

abstract contract Context {
	function _msgSender() internal view virtual returns (address) {
		return msg.sender;
	}
}

interface IERC20 {
	function totalSupply() external view returns (uint256);
	function balanceOf(address account) external view returns (uint256);
	function transfer(address recipient, uint256 amount) external returns (bool);
	function allowance(address owner, address spender) external view returns (uint256);
	function approve(address spender, uint256 amount) external returns (bool);
	function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
	event Transfer(address indexed from, address indexed to, uint256 value);
	event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
	function add(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a + b;
		require(c >= a, "SafeMath: addition overflow");
		return c;
	}

	function sub(uint256 a, uint256 b) internal pure returns (uint256) {
		return sub(a, b, "SafeMath: subtraction overflow");
	}

	function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
		require(b <= a, errorMessage);
		uint256 c = a - b;
		return c;
	}

	function mul(uint256 a, uint256 b) internal pure returns (uint256) {
		if (a == 0) {
			return 0;
		}
		uint256 c = a * b;
		require(c / a == b, "SafeMath: multiplication overflow");
		return c;
	}

	function div(uint256 a, uint256 b) internal pure returns (uint256) {
		return div(a, b, "SafeMath: division by zero");
	}

	function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
		require(b > 0, errorMessage);
		uint256 c = a / b;
		return c;
	}
}

contract Ownable is Context {
	address private _owner;

	event OwnershipTransferred(address indexed oldie, address indexed newbie);

	constructor () {
		address msgSender = _msgSender();
		_owner = msgSender;
		emit OwnershipTransferred(address(0), msgSender);
	}

	function owner() public view returns (address) {
		return _owner;
	}

	modifier onlyOwner() {
		require(_owner == _msgSender(), "Ownable: caller is not the owner");
		_;
	}

	function renounceOwnership() public virtual onlyOwner {
		emit OwnershipTransferred(_owner, address(0));
		_owner = address(0);
	}
}

interface IUniswapV2Factory {
	function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
	function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
	function factory() external pure returns (address);
	function WETH() external pure returns (address);
	function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Katakuri is Context, IERC20, Ownable {
	using SafeMath for uint256;
	mapping(address => uint256) private _rOwned;
	mapping(address => mapping(address => uint256)) private _allowances;

	uint256 private constant MAX = ~uint256(0);
	uint256 private _tTotal = TOTAL_SUPPLY;
	uint256 private _rTotal = (MAX - (MAX % _tTotal));
	uint256 private _tFeeTotal;
	uint256 private _rateLimit=TOTAL_SUPPLY;
	uint256 private _tax=INITIAL_TAX;
	address payable private _taxWallet= payable(WALLET_ADDRESS);

	string private constant _name = TOKEN_NAME;
	string private constant _symbol = TOKEN_SYMBOL;
	uint8 private constant _decimals = 0;

	IUniswapV2Router02 private _router= IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
	address private _pair;
	bool private tradingOpen;
	bool private inSwap = false;
	bool private swapEnabled = false;

	modifier lockTheSwap {
		inSwap = true;
		_;
		inSwap = false;
	}
	constructor () {
		_rOwned[_msgSender()] = _rTotal;
		emit Transfer(address(0), _msgSender(), _tTotal);
	}

	function name() public pure returns (string memory) {
		return _name;
	}

	function symbol() public pure returns (string memory) {
		return _symbol;
	}

	function decimals() public pure returns (uint8) {
		return _decimals;
	}

	function totalSupply() public view override returns (uint256) {
		return _tTotal;
	}

	function balanceOf(address account) public view override returns (uint256) {
		return tokenFromReflection(_rOwned[account]);
	}

	function transfer(address recipient, uint256 amount) public override returns (bool) {
		_transfer(_msgSender(), recipient, amount);
		return true;
	}

	function tax() public view returns (uint256){
		return _tax;
	}

	function allowance(address owner, address spender) public view override returns (uint256) {
		return _allowances[owner][spender];
	}

	function approve(address spender, uint256 amount) public override returns (bool) {
		_approve(_msgSender(), spender, amount);
		return true;
	}

	function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
		_transfer(sender, recipient, amount);
		_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
		return true;
	}

	function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
		require(rAmount <= _rTotal, "Amount must be less than total reflections");
		uint256 currentRate = _getRate();
		return rAmount.div(currentRate);
	}

	function _approve(address owner, address spender, uint256 amount) private {
		require(owner != address(0), "ERC20: approve from the zero address");
		require(spender != address(0), "ERC20: approve to the zero address");
		_allowances[owner][spender] = amount;
		emit Approval(owner, spender, amount);
	}

	function _transfer(address from, address to, uint256 amount) private {
		require(from != address(0), "ERC20: transfer from the zero address");
		require(to != address(0), "ERC20: transfer to the zero address");
		require(amount > 0, "Transfer amount must be greater than zero");

		if (from != owner() && to != owner()) {
			if (!inSwap && from != _pair && swapEnabled) {
				_swapTokensForEth(balanceOf(address(this)));
				uint256 contractETHBalance = address(this).balance;
				if (contractETHBalance > 0) {
					_sendETHToFee(address(this).balance);
				}
			}
		}
		_tokenTransfer(from, to, amount);
	}

	function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
		address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = _router.WETH();
		_approve(address(this), address(_router), tokenAmount);
		_router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
	}

	function _sendETHToFee(uint256 amount) private {
		_taxWallet.transfer(amount);
	}

	function openTrading() external onlyOwner() {
		require(!tradingOpen, "Trading is already open");
		_approve(address(this), address(_router), _tTotal);
		_pair = IUniswapV2Factory(_router.factory()).createPair(address(this), _router.WETH());
		_router.addLiquidityETH{value : address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
		swapEnabled = true;
		tradingOpen = true;
		IERC20(_pair).approve(address(_router), type(uint).max);
	}

	function _tokenTransfer(address sender, address recipient, uint256 amount) private {
		_transferStandard(sender, recipient, amount);
	}


	function _transferStandard(address sender, address recipient, uint256 tAmount) private {
		(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
		_rOwned[sender] = _rOwned[sender].sub(rAmount);
		_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
		_takeTeam(tTeam);
		_reflectFee(rFee, tFee);
		emit Transfer(sender, recipient, tTransferAmount);
	}

	function _takeTeam(uint256 tTeam) private {
		uint256 currentRate = _getRate();
		uint256 rTeam = tTeam.mul(currentRate);
		_rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
	}

	function _reflectFee(uint256 rFee, uint256 tFee) private {
		_rTotal = _rTotal.sub(rFee);
		_tFeeTotal = _tFeeTotal.add(tFee);
	}

	receive() external payable {}

	function manualSwap() external {
		require(_msgSender() == _taxWallet);
		uint256 contractBalance = balanceOf(address(this));
		_swapTokensForEth(contractBalance);
	}

	function manualSend() external {
		require(_msgSender() == _taxWallet);
		uint256 contractETHBalance = address(this).balance;
		_sendETHToFee(contractETHBalance);
	}

	function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
		(uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTransferAmounts(tAmount, _tax);
		uint256 currentRate = _getRate();
		(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getReceiveAmounts(tAmount, tFee, tTeam, currentRate);
		return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
	}

	function _getTransferAmounts(uint256 tAmount, uint256 taxFee) private pure returns (uint256, uint256, uint256) {
		uint256 tFee = tAmount.mul(2).div(100);
		uint256 tTeam = tAmount.mul(taxFee).div(100);
		uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
		return (tTransferAmount, tFee, tTeam);
	}

	function _getReceiveAmounts(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
		uint256 rAmount = tAmount.mul(currentRate);
		uint256 rFee = tFee.mul(currentRate);
		uint256 rTeam = tTeam.mul(currentRate);
		uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
		return (rAmount, rTransferAmount, rFee);
	}

	function _getRate() private view returns (uint256) {
		(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
		return rSupply.div(tSupply);
	}

	function _getCurrentSupply() private view returns (uint256, uint256) {
		uint256 rSupply = _rTotal;
		uint256 tSupply = _tTotal;
		if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
		return (rSupply, tSupply);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldie","type":"address"},{"indexed":true,"internalType":"address","name":"newbie","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526402540be4006003556003546000196200001f91906200032c565b6000196200002e9190620002e7565b6004556402540be400600655600860075573e54bc4d497caae6285ed91f854b585b3f054c307600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60156101000a81548160ff0219169083151502179055506000600a60166101000a81548160ff0219169083151502179055503480156200012c57600080fd5b5060006200013f620002b160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060045460016000620001f4620002b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000242620002b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620002a39190620002ca565b60405180910390a3620003c2565b600033905090565b620002c48162000322565b82525050565b6000602082019050620002e16000830184620002b9565b92915050565b6000620002f48262000322565b9150620003018362000322565b92508282101562000317576200031662000364565b5b828203905092915050565b6000819050919050565b6000620003398262000322565b9150620003468362000322565b92508262000359576200035862000393565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61299080620003d26000396000f3fe6080604052600436106100ec5760003560e01c8063715018a61161008a578063a9059cbb11610059578063a9059cbb146102df578063c9567bf91461031c578063dd62ed3e14610333578063f429389014610370576100f3565b8063715018a6146102475780638da5cb5b1461025e57806395d89b411461028957806399c8d556146102b4576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c857806351bc3c85146101f357806370a082311461020a576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d610387565b60405161011a9190612181565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190611d71565b6103c4565b6040516101579190612166565b60405180910390f35b34801561016c57600080fd5b506101756103e2565b60405161018291906122e3565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad9190611d1e565b6103ec565b6040516101bf9190612166565b60405180910390f35b3480156101d457600080fd5b506101dd6104c5565b6040516101ea9190612358565b60405180910390f35b3480156101ff57600080fd5b506102086104ca565b005b34801561021657600080fd5b50610231600480360381019061022c9190611c84565b610544565b60405161023e91906122e3565b60405180910390f35b34801561025357600080fd5b5061025c610595565b005b34801561026a57600080fd5b506102736106e8565b6040516102809190612098565b60405180910390f35b34801561029557600080fd5b5061029e610711565b6040516102ab9190612181565b60405180910390f35b3480156102c057600080fd5b506102c961074e565b6040516102d691906122e3565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190611d71565b610758565b6040516103139190612166565b60405180910390f35b34801561032857600080fd5b50610331610776565b005b34801561033f57600080fd5b5061035a60048036038101906103559190611cde565b610c8a565b60405161036791906122e3565b60405180910390f35b34801561037c57600080fd5b50610385610d11565b005b60606040518060400160405280600881526020017f4b6174616b757269000000000000000000000000000000000000000000000000815250905090565b60006103d86103d1610d83565b8484610d8b565b6001905092915050565b6000600354905090565b60006103f9848484610f56565b6104ba84610405610d83565b6104b58560405180606001604052806028815260200161293360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061046b610d83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111b89092919063ffffffff16565b610d8b565b600190509392505050565b600090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661050b610d83565b73ffffffffffffffffffffffffffffffffffffffff161461052b57600080fd5b600061053630610544565b90506105418161121c565b50565b600061058e600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114a4565b9050919050565b61059d610d83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190612263565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4b4154414b555249000000000000000000000000000000000000000000000000815250905090565b6000600754905090565b600061076c610765610d83565b8484610f56565b6001905092915050565b61077e610d83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612263565b60405180910390fd5b600a60149054906101000a900460ff161561085b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085290612203565b60405180910390fd5b61088a30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600354610d8b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a9190611cb1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ae57600080fd5b505afa1580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e69190611cb1565b6040518363ffffffff1660e01b8152600401610a039291906120b3565b602060405180830381600087803b158015610a1d57600080fd5b505af1158015610a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a559190611cb1565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ade30610544565b600080610ae96106e8565b426040518863ffffffff1660e01b8152600401610b0b96959493929190612105565b6060604051808303818588803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b5d9190611dde565b5050506001600a60166101000a81548160ff0219169083151502179055506001600a60146101000a81548160ff021916908315150217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c359291906120dc565b602060405180830381600087803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c879190611db1565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d52610d83565b73ffffffffffffffffffffffffffffffffffffffff1614610d7257600080fd5b6000479050610d8081611512565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df2906122c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e62906121e3565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f4991906122e3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd906122a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d906121a3565b60405180910390fd5b60008111611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090612283565b60405180910390fd5b6110816106e8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110ef57506110bf6106e8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111a857600a60159054906101000a900460ff1615801561115f5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111775750600a60169054906101000a900460ff165b156111a75761118d61118830610544565b61121c565b600047905060008111156111a5576111a447611512565b5b505b5b6111b383838361157e565b505050565b6000838311158290611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f79190612181565b60405180910390fd5b506000838561120f91906124a9565b9050809150509392505050565b6001600a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561125457611253612604565b5b6040519080825280602002602001820160405280156112825781602001602082028036833780820191505090505b509050308160008151811061129a576112996125d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561133c57600080fd5b505afa158015611350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113749190611cb1565b81600181518110611388576113876125d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506113ef30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d8b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016114539594939291906122fe565b600060405180830381600087803b15801561146d57600080fd5b505af1158015611481573d6000803e3d6000fd5b50505050506000600a60156101000a81548160ff02191690831515021790555050565b60006004548211156114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e2906121c3565b60405180910390fd5b60006114f561158e565b905061150a81846115b990919063ffffffff16565b915050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561157a573d6000803e3d6000fd5b5050565b611589838383611603565b505050565b600080600061159b6117ce565b915091506115b281836115b990919063ffffffff16565b9250505090565b60006115fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061181b565b905092915050565b6000806000806000806116158761187e565b95509550955095509550955061167386600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e390919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061170885600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117548161198b565b61175e8483611a48565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117bb91906122e3565b60405180910390a3505050505050505050565b60008060006004549050600060035490506117f66003546004546115b990919063ffffffff16565b82101561180e57600454600354935093505050611817565b81819350935050505b9091565b60008083118290611862576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118599190612181565b60405180910390fd5b5060008385611871919061241e565b9050809150509392505050565b60008060008060008060008060006118988a600754611a82565b92509250925060006118a861158e565b905060008060006118bb8e878787611b17565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061192583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b8565b905092915050565b600080828461193c91906123c8565b905083811015611981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197890612223565b60405180910390fd5b8091505092915050565b600061199561158e565b905060006119ac8284611ba090919063ffffffff16565b9050611a0081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192d90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611a5d826004546118e390919063ffffffff16565b600481905550611a788160055461192d90919063ffffffff16565b6005819055505050565b600080600080611aaf6064611aa1600289611ba090919063ffffffff16565b6115b990919063ffffffff16565b90506000611ad96064611acb888a611ba090919063ffffffff16565b6115b990919063ffffffff16565b90506000611b0282611af4858b6118e390919063ffffffff16565b6118e390919063ffffffff16565b90508083839550955095505050509250925092565b600080600080611b308589611ba090919063ffffffff16565b90506000611b478689611ba090919063ffffffff16565b90506000611b5e8789611ba090919063ffffffff16565b90506000611b8782611b7985876118e390919063ffffffff16565b6118e390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611bb35760009050611c15565b60008284611bc1919061244f565b9050828482611bd0919061241e565b14611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790612243565b60405180910390fd5b809150505b92915050565b600081359050611c2a816128ed565b92915050565b600081519050611c3f816128ed565b92915050565b600081519050611c5481612904565b92915050565b600081359050611c698161291b565b92915050565b600081519050611c7e8161291b565b92915050565b600060208284031215611c9a57611c99612633565b5b6000611ca884828501611c1b565b91505092915050565b600060208284031215611cc757611cc6612633565b5b6000611cd584828501611c30565b91505092915050565b60008060408385031215611cf557611cf4612633565b5b6000611d0385828601611c1b565b9250506020611d1485828601611c1b565b9150509250929050565b600080600060608486031215611d3757611d36612633565b5b6000611d4586828701611c1b565b9350506020611d5686828701611c1b565b9250506040611d6786828701611c5a565b9150509250925092565b60008060408385031215611d8857611d87612633565b5b6000611d9685828601611c1b565b9250506020611da785828601611c5a565b9150509250929050565b600060208284031215611dc757611dc6612633565b5b6000611dd584828501611c45565b91505092915050565b600080600060608486031215611df757611df6612633565b5b6000611e0586828701611c6f565b9350506020611e1686828701611c6f565b9250506040611e2786828701611c6f565b9150509250925092565b6000611e3d8383611e49565b60208301905092915050565b611e52816124dd565b82525050565b611e61816124dd565b82525050565b6000611e7282612383565b611e7c81856123a6565b9350611e8783612373565b8060005b83811015611eb8578151611e9f8882611e31565b9750611eaa83612399565b925050600181019050611e8b565b5085935050505092915050565b611ece816124ef565b82525050565b611edd81612532565b82525050565b6000611eee8261238e565b611ef881856123b7565b9350611f08818560208601612544565b611f1181612638565b840191505092915050565b6000611f296023836123b7565b9150611f3482612649565b604082019050919050565b6000611f4c602a836123b7565b9150611f5782612698565b604082019050919050565b6000611f6f6022836123b7565b9150611f7a826126e7565b604082019050919050565b6000611f926017836123b7565b9150611f9d82612736565b602082019050919050565b6000611fb5601b836123b7565b9150611fc08261275f565b602082019050919050565b6000611fd86021836123b7565b9150611fe382612788565b604082019050919050565b6000611ffb6020836123b7565b9150612006826127d7565b602082019050919050565b600061201e6029836123b7565b915061202982612800565b604082019050919050565b60006120416025836123b7565b915061204c8261284f565b604082019050919050565b60006120646024836123b7565b915061206f8261289e565b604082019050919050565b6120838161251b565b82525050565b61209281612525565b82525050565b60006020820190506120ad6000830184611e58565b92915050565b60006040820190506120c86000830185611e58565b6120d56020830184611e58565b9392505050565b60006040820190506120f16000830185611e58565b6120fe602083018461207a565b9392505050565b600060c08201905061211a6000830189611e58565b612127602083018861207a565b6121346040830187611ed4565b6121416060830186611ed4565b61214e6080830185611e58565b61215b60a083018461207a565b979650505050505050565b600060208201905061217b6000830184611ec5565b92915050565b6000602082019050818103600083015261219b8184611ee3565b905092915050565b600060208201905081810360008301526121bc81611f1c565b9050919050565b600060208201905081810360008301526121dc81611f3f565b9050919050565b600060208201905081810360008301526121fc81611f62565b9050919050565b6000602082019050818103600083015261221c81611f85565b9050919050565b6000602082019050818103600083015261223c81611fa8565b9050919050565b6000602082019050818103600083015261225c81611fcb565b9050919050565b6000602082019050818103600083015261227c81611fee565b9050919050565b6000602082019050818103600083015261229c81612011565b9050919050565b600060208201905081810360008301526122bc81612034565b9050919050565b600060208201905081810360008301526122dc81612057565b9050919050565b60006020820190506122f8600083018461207a565b92915050565b600060a082019050612313600083018861207a565b6123206020830187611ed4565b81810360408301526123328186611e67565b90506123416060830185611e58565b61234e608083018461207a565b9695505050505050565b600060208201905061236d6000830184612089565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006123d38261251b565b91506123de8361251b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561241357612412612577565b5b828201905092915050565b60006124298261251b565b91506124348361251b565b925082612444576124436125a6565b5b828204905092915050565b600061245a8261251b565b91506124658361251b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561249e5761249d612577565b5b828202905092915050565b60006124b48261251b565b91506124bf8361251b565b9250828210156124d2576124d1612577565b5b828203905092915050565b60006124e8826124fb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061253d8261251b565b9050919050565b60005b83811015612562578082015181840152602081019050612547565b83811115612571576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6128f6816124dd565b811461290157600080fd5b50565b61290d816124ef565b811461291857600080fd5b50565b6129248161251b565b811461292f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220645e6750961f5c618ec6da4fc37dd3c63ca4d35b97fc6790ab82a1892d971c4564736f6c63430008070033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c8063715018a61161008a578063a9059cbb11610059578063a9059cbb146102df578063c9567bf91461031c578063dd62ed3e14610333578063f429389014610370576100f3565b8063715018a6146102475780638da5cb5b1461025e57806395d89b411461028957806399c8d556146102b4576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c857806351bc3c85146101f357806370a082311461020a576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d610387565b60405161011a9190612181565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190611d71565b6103c4565b6040516101579190612166565b60405180910390f35b34801561016c57600080fd5b506101756103e2565b60405161018291906122e3565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad9190611d1e565b6103ec565b6040516101bf9190612166565b60405180910390f35b3480156101d457600080fd5b506101dd6104c5565b6040516101ea9190612358565b60405180910390f35b3480156101ff57600080fd5b506102086104ca565b005b34801561021657600080fd5b50610231600480360381019061022c9190611c84565b610544565b60405161023e91906122e3565b60405180910390f35b34801561025357600080fd5b5061025c610595565b005b34801561026a57600080fd5b506102736106e8565b6040516102809190612098565b60405180910390f35b34801561029557600080fd5b5061029e610711565b6040516102ab9190612181565b60405180910390f35b3480156102c057600080fd5b506102c961074e565b6040516102d691906122e3565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190611d71565b610758565b6040516103139190612166565b60405180910390f35b34801561032857600080fd5b50610331610776565b005b34801561033f57600080fd5b5061035a60048036038101906103559190611cde565b610c8a565b60405161036791906122e3565b60405180910390f35b34801561037c57600080fd5b50610385610d11565b005b60606040518060400160405280600881526020017f4b6174616b757269000000000000000000000000000000000000000000000000815250905090565b60006103d86103d1610d83565b8484610d8b565b6001905092915050565b6000600354905090565b60006103f9848484610f56565b6104ba84610405610d83565b6104b58560405180606001604052806028815260200161293360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061046b610d83565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111b89092919063ffffffff16565b610d8b565b600190509392505050565b600090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661050b610d83565b73ffffffffffffffffffffffffffffffffffffffff161461052b57600080fd5b600061053630610544565b90506105418161121c565b50565b600061058e600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114a4565b9050919050565b61059d610d83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190612263565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4b4154414b555249000000000000000000000000000000000000000000000000815250905090565b6000600754905090565b600061076c610765610d83565b8484610f56565b6001905092915050565b61077e610d83565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612263565b60405180910390fd5b600a60149054906101000a900460ff161561085b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085290612203565b60405180910390fd5b61088a30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600354610d8b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a9190611cb1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ae57600080fd5b505afa1580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e69190611cb1565b6040518363ffffffff1660e01b8152600401610a039291906120b3565b602060405180830381600087803b158015610a1d57600080fd5b505af1158015610a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a559190611cb1565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ade30610544565b600080610ae96106e8565b426040518863ffffffff1660e01b8152600401610b0b96959493929190612105565b6060604051808303818588803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b5d9190611dde565b5050506001600a60166101000a81548160ff0219169083151502179055506001600a60146101000a81548160ff021916908315150217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c359291906120dc565b602060405180830381600087803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c879190611db1565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d52610d83565b73ffffffffffffffffffffffffffffffffffffffff1614610d7257600080fd5b6000479050610d8081611512565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df2906122c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e62906121e3565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f4991906122e3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd906122a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d906121a3565b60405180910390fd5b60008111611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090612283565b60405180910390fd5b6110816106e8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110ef57506110bf6106e8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111a857600a60159054906101000a900460ff1615801561115f5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111775750600a60169054906101000a900460ff165b156111a75761118d61118830610544565b61121c565b600047905060008111156111a5576111a447611512565b5b505b5b6111b383838361157e565b505050565b6000838311158290611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f79190612181565b60405180910390fd5b506000838561120f91906124a9565b9050809150509392505050565b6001600a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561125457611253612604565b5b6040519080825280602002602001820160405280156112825781602001602082028036833780820191505090505b509050308160008151811061129a576112996125d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561133c57600080fd5b505afa158015611350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113749190611cb1565b81600181518110611388576113876125d5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506113ef30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d8b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016114539594939291906122fe565b600060405180830381600087803b15801561146d57600080fd5b505af1158015611481573d6000803e3d6000fd5b50505050506000600a60156101000a81548160ff02191690831515021790555050565b60006004548211156114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e2906121c3565b60405180910390fd5b60006114f561158e565b905061150a81846115b990919063ffffffff16565b915050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561157a573d6000803e3d6000fd5b5050565b611589838383611603565b505050565b600080600061159b6117ce565b915091506115b281836115b990919063ffffffff16565b9250505090565b60006115fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061181b565b905092915050565b6000806000806000806116158761187e565b95509550955095509550955061167386600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e390919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061170885600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117548161198b565b61175e8483611a48565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117bb91906122e3565b60405180910390a3505050505050505050565b60008060006004549050600060035490506117f66003546004546115b990919063ffffffff16565b82101561180e57600454600354935093505050611817565b81819350935050505b9091565b60008083118290611862576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118599190612181565b60405180910390fd5b5060008385611871919061241e565b9050809150509392505050565b60008060008060008060008060006118988a600754611a82565b92509250925060006118a861158e565b905060008060006118bb8e878787611b17565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061192583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111b8565b905092915050565b600080828461193c91906123c8565b905083811015611981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197890612223565b60405180910390fd5b8091505092915050565b600061199561158e565b905060006119ac8284611ba090919063ffffffff16565b9050611a0081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192d90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611a5d826004546118e390919063ffffffff16565b600481905550611a788160055461192d90919063ffffffff16565b6005819055505050565b600080600080611aaf6064611aa1600289611ba090919063ffffffff16565b6115b990919063ffffffff16565b90506000611ad96064611acb888a611ba090919063ffffffff16565b6115b990919063ffffffff16565b90506000611b0282611af4858b6118e390919063ffffffff16565b6118e390919063ffffffff16565b90508083839550955095505050509250925092565b600080600080611b308589611ba090919063ffffffff16565b90506000611b478689611ba090919063ffffffff16565b90506000611b5e8789611ba090919063ffffffff16565b90506000611b8782611b7985876118e390919063ffffffff16565b6118e390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611bb35760009050611c15565b60008284611bc1919061244f565b9050828482611bd0919061241e565b14611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0790612243565b60405180910390fd5b809150505b92915050565b600081359050611c2a816128ed565b92915050565b600081519050611c3f816128ed565b92915050565b600081519050611c5481612904565b92915050565b600081359050611c698161291b565b92915050565b600081519050611c7e8161291b565b92915050565b600060208284031215611c9a57611c99612633565b5b6000611ca884828501611c1b565b91505092915050565b600060208284031215611cc757611cc6612633565b5b6000611cd584828501611c30565b91505092915050565b60008060408385031215611cf557611cf4612633565b5b6000611d0385828601611c1b565b9250506020611d1485828601611c1b565b9150509250929050565b600080600060608486031215611d3757611d36612633565b5b6000611d4586828701611c1b565b9350506020611d5686828701611c1b565b9250506040611d6786828701611c5a565b9150509250925092565b60008060408385031215611d8857611d87612633565b5b6000611d9685828601611c1b565b9250506020611da785828601611c5a565b9150509250929050565b600060208284031215611dc757611dc6612633565b5b6000611dd584828501611c45565b91505092915050565b600080600060608486031215611df757611df6612633565b5b6000611e0586828701611c6f565b9350506020611e1686828701611c6f565b9250506040611e2786828701611c6f565b9150509250925092565b6000611e3d8383611e49565b60208301905092915050565b611e52816124dd565b82525050565b611e61816124dd565b82525050565b6000611e7282612383565b611e7c81856123a6565b9350611e8783612373565b8060005b83811015611eb8578151611e9f8882611e31565b9750611eaa83612399565b925050600181019050611e8b565b5085935050505092915050565b611ece816124ef565b82525050565b611edd81612532565b82525050565b6000611eee8261238e565b611ef881856123b7565b9350611f08818560208601612544565b611f1181612638565b840191505092915050565b6000611f296023836123b7565b9150611f3482612649565b604082019050919050565b6000611f4c602a836123b7565b9150611f5782612698565b604082019050919050565b6000611f6f6022836123b7565b9150611f7a826126e7565b604082019050919050565b6000611f926017836123b7565b9150611f9d82612736565b602082019050919050565b6000611fb5601b836123b7565b9150611fc08261275f565b602082019050919050565b6000611fd86021836123b7565b9150611fe382612788565b604082019050919050565b6000611ffb6020836123b7565b9150612006826127d7565b602082019050919050565b600061201e6029836123b7565b915061202982612800565b604082019050919050565b60006120416025836123b7565b915061204c8261284f565b604082019050919050565b60006120646024836123b7565b915061206f8261289e565b604082019050919050565b6120838161251b565b82525050565b61209281612525565b82525050565b60006020820190506120ad6000830184611e58565b92915050565b60006040820190506120c86000830185611e58565b6120d56020830184611e58565b9392505050565b60006040820190506120f16000830185611e58565b6120fe602083018461207a565b9392505050565b600060c08201905061211a6000830189611e58565b612127602083018861207a565b6121346040830187611ed4565b6121416060830186611ed4565b61214e6080830185611e58565b61215b60a083018461207a565b979650505050505050565b600060208201905061217b6000830184611ec5565b92915050565b6000602082019050818103600083015261219b8184611ee3565b905092915050565b600060208201905081810360008301526121bc81611f1c565b9050919050565b600060208201905081810360008301526121dc81611f3f565b9050919050565b600060208201905081810360008301526121fc81611f62565b9050919050565b6000602082019050818103600083015261221c81611f85565b9050919050565b6000602082019050818103600083015261223c81611fa8565b9050919050565b6000602082019050818103600083015261225c81611fcb565b9050919050565b6000602082019050818103600083015261227c81611fee565b9050919050565b6000602082019050818103600083015261229c81612011565b9050919050565b600060208201905081810360008301526122bc81612034565b9050919050565b600060208201905081810360008301526122dc81612057565b9050919050565b60006020820190506122f8600083018461207a565b92915050565b600060a082019050612313600083018861207a565b6123206020830187611ed4565b81810360408301526123328186611e67565b90506123416060830185611e58565b61234e608083018461207a565b9695505050505050565b600060208201905061236d6000830184612089565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006123d38261251b565b91506123de8361251b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561241357612412612577565b5b828201905092915050565b60006124298261251b565b91506124348361251b565b925082612444576124436125a6565b5b828204905092915050565b600061245a8261251b565b91506124658361251b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561249e5761249d612577565b5b828202905092915050565b60006124b48261251b565b91506124bf8361251b565b9250828210156124d2576124d1612577565b5b828203905092915050565b60006124e8826124fb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061253d8261251b565b9050919050565b60005b83811015612562578082015181840152602081019050612547565b83811115612571576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6128f6816124dd565b811461290157600080fd5b50565b61290d816124ef565b811461291857600080fd5b50565b6129248161251b565b811461292f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220645e6750961f5c618ec6da4fc37dd3c63ca4d35b97fc6790ab82a1892d971c4564736f6c63430008070033

Deployed Bytecode Sourcemap

3355:7305:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4418:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5250:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4659:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5401:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4580:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8775:170;;;;;;;;;;;;;:::i;:::-;;4750:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2581:133;;;;;;;;;;;;;:::i;:::-;;2397:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4497:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5041:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4884:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7321:486;;;;;;;;;;;;;:::i;:::-;;5111:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8950:169;;;;;;;;;;;;;:::i;:::-;;4418:74;4455:13;3902:10;;;;;;;;;;;;;;;;;4475:12;;4418:74;:::o;5250:146::-;5325:4;5336:39;5345:12;:10;:12::i;:::-;5359:7;5368:6;5336:8;:39::i;:::-;5387:4;5380:11;;5250:146;;;;:::o;4659:86::-;4712:7;4733;;4726:14;;4659:86;:::o;5401:292::-;5499:4;5510:36;5520:6;5528:9;5539:6;5510:9;:36::i;:::-;5551:121;5560:6;5568:12;:10;:12::i;:::-;5582:89;5620:6;5582:89;;;;;;;;;;;;;;;;;:11;:19;5594:6;5582:19;;;;;;;;;;;;;;;:33;5602:12;:10;:12::i;:::-;5582:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5551:8;:121::i;:::-;5684:4;5677:11;;5401:292;;;;;:::o;4580:74::-;4621:5;4580:74;:::o;8775:170::-;8835:10;;;;;;;;;;;8819:26;;:12;:10;:12::i;:::-;:26;;;8811:35;;;;;;8851:23;8877:24;8895:4;8877:9;:24::i;:::-;8851:50;;8906:34;8924:15;8906:17;:34::i;:::-;8806:139;8775:170::o;4750:129::-;4816:7;4837:37;4857:7;:16;4865:7;4857:16;;;;;;;;;;;;;;;;4837:19;:37::i;:::-;4830:44;;4750:129;;;:::o;2581:133::-;2516:12;:10;:12::i;:::-;2506:22;;:6;;;;;;;;;;:22;;;2498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2682:1:::1;2645:40;;2666:6;::::0;::::1;;;;;;;;2645:40;;;;;;;;;;;;2707:1;2690:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2581:133::o:0;2397:70::-;2435:7;2456:6;;;;;;;;;;;2449:13;;2397:70;:::o;4497:78::-;4536:13;3950:12;;;;;;;;;;;;;;;;;4556:14;;4497:78;:::o;5041:65::-;5077:7;5097:4;;5090:11;;5041:65;:::o;4884:152::-;4962:4;4973:42;4983:12;:10;:12::i;:::-;4997:9;5008:6;4973:9;:42::i;:::-;5027:4;5020:11;;4884:152;;;;:::o;7321:486::-;2516:12;:10;:12::i;:::-;2506:22;;:6;;;;;;;;;;:22;;;2498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7379:11:::1;;;;;;;;;;;7378:12;7370:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;7423:50;7440:4;7455:7;;;;;;;;;;;7465;;7423:8;:50::i;:::-;7504:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7486:47;;;7542:4;7549:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7486:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7478:5;;:86;;;;;;;;;;;;;;;;;;7569:7;;;;;;;;;;;:23;;;7601:21;7632:4;7639:24;7657:4;7639:9;:24::i;:::-;7665:1;7668::::0;7671:7:::1;:5;:7::i;:::-;7680:15;7569:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7715:4;7701:11;;:18;;;;;;;;;;;;;;;;;;7738:4;7724:11;;:18;;;;;;;;;;;;;;;;;;7754:5;;;;;;;;;;;7747:21;;;7777:7;;;;;;;;;;;7787:14;7747:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7321:486::o:0;5111:134::-;5192:7;5213:11;:18;5225:5;5213:18;;;;;;;;;;;;;;;:27;5232:7;5213:27;;;;;;;;;;;;;;;;5206:34;;5111:134;;;;:::o;8950:169::-;9010:10;;;;;;;;;;;8994:26;;:12;:10;:12::i;:::-;:26;;;8986:35;;;;;;9026:26;9055:21;9026:50;;9081:33;9095:18;9081:13;:33::i;:::-;8981:138;8950:169::o;369:89::-;422:7;443:10;436:17;;369:89;:::o;5936:308::-;6040:1;6023:19;;:5;:19;;;;6015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6115:1;6096:21;;:7;:21;;;;6088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6191:6;6161:11;:18;6173:5;6161:18;;;;;;;;;;;;;;;:27;6180:7;6161:27;;;;;;;;;;;;;;;:36;;;;6223:7;6207:32;;6216:5;6207:32;;;6232:6;6207:32;;;;;;:::i;:::-;;;;;;;;5936:308;;;:::o;6249:622::-;6347:1;6331:18;;:4;:18;;;;6323:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6418:1;6404:16;;:2;:16;;;;6396:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6482:1;6473:6;:10;6465:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6548:7;:5;:7::i;:::-;6540:15;;:4;:15;;;;:32;;;;;6565:7;:5;:7::i;:::-;6559:13;;:2;:13;;;;6540:32;6536:294;;;6585:6;;;;;;;;;;;6584:7;:24;;;;;6603:5;;;;;;;;;;;6595:13;;:4;:13;;;;6584:24;:39;;;;;6612:11;;;;;;;;;;;6584:39;6580:245;;;6632:43;6650:24;6668:4;6650:9;:24::i;:::-;6632:17;:43::i;:::-;6682:26;6711:21;6682:50;;6764:1;6743:18;:22;6739:80;;;6775:36;6789:21;6775:13;:36::i;:::-;6739:80;6625:200;6580:245;6536:294;6834:32;6849:4;6855:2;6859:6;6834:14;:32::i;:::-;6249:622;;;:::o;1434:169::-;1520:7;1547:1;1542;:6;;1550:12;1534:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1568:9;1584:1;1580;:5;;;;:::i;:::-;1568:17;;1597:1;1590:8;;;1434:169;;;;;:::o;6876:351::-;4267:4;4258:6;;:13;;;;;;;;;;;;;;;;;;6949:21:::1;6987:1;6973:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6949:40;;7012:4;6994;6999:1;6994:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7032:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7022:4;7027:1;7022:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;::::0;::::1;7051:54;7068:4;7083:7;;;;;;;;;;;7093:11;7051:8;:54::i;:::-;7110:7;;;;;;;;;;;:58;;;7169:11;7182:1;7185:4;7199;7206:15;7110:112;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6944:283;4291:5:::0;4282:6;;:14;;;;;;;;;;;;;;;;;;6876:351;:::o;5698:233::-;5766:7;5799;;5788;:18;;5780:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5858:19;5880:10;:8;:10::i;:::-;5858:32;;5902:24;5914:11;5902:7;:11;;:24;;;;:::i;:::-;5895:31;;;5698:233;;;:::o;7232:84::-;7284:10;;;;;;;;;;;:19;;:27;7304:6;7284:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7232:84;:::o;7812:137::-;7900:44;7918:6;7926:9;7937:6;7900:17;:44::i;:::-;7812:137;;;:::o;10273:149::-;10315:7;10330:15;10347;10366:19;:17;:19::i;:::-;10329:56;;;;10397:20;10409:7;10397;:11;;:20;;;;:::i;:::-;10390:27;;;;10273:149;:::o;1817:123::-;1875:7;1896:39;1900:1;1903;1896:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1889:46;;1817:123;;;;:::o;7956:448::-;8049:15;8066:23;8091:12;8105:23;8130:12;8144:13;8161:19;8172:7;8161:10;:19::i;:::-;8048:132;;;;;;;;;;;;8203:28;8223:7;8203;:15;8211:6;8203:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;8185:7;:15;8193:6;8185:15;;;;;;;;;;;;;;;:46;;;;8257:39;8280:15;8257:7;:18;8265:9;8257:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;8236:7;:18;8244:9;8236:18;;;;;;;;;;;;;;;:60;;;;8301:16;8311:5;8301:9;:16::i;:::-;8322:23;8334:4;8340;8322:11;:23::i;:::-;8372:9;8355:44;;8364:6;8355:44;;;8383:15;8355:44;;;;;;:::i;:::-;;;;;;;;8043:361;;;;;;7956:448;;;:::o;10427:230::-;10478:7;10487;10501:15;10519:7;;10501:25;;10531:15;10549:7;;10531:25;;10575:20;10587:7;;10575;;:11;;:20;;;;:::i;:::-;10565:7;:30;10561:61;;;10605:7;;10614;;10597:25;;;;;;;;10561:61;10635:7;10644;10627:25;;;;;;10427:230;;;:::o;1945:168::-;2031:7;2057:1;2053;:5;2060:12;2045:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2078:9;2094:1;2090;:5;;;;:::i;:::-;2078:17;;2107:1;2100:8;;;1945:168;;;;;:::o;9124:442::-;9183:7;9192;9201;9210;9219;9228;9243:23;9268:12;9282:13;9299:34;9319:7;9328:4;;9299:19;:34::i;:::-;9242:91;;;;;;9338:19;9360:10;:8;:10::i;:::-;9338:32;;9376:15;9393:23;9418:12;9434:53;9453:7;9462:4;9468:5;9475:11;9434:18;:53::i;:::-;9375:112;;;;;;9500:7;9509:15;9526:4;9532:15;9549:4;9555:5;9492:69;;;;;;;;;;;;;;;;;;;9124:442;;;;;;;:::o;1302:127::-;1360:7;1381:43;1385:1;1388;1381:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1374:50;;1302:127;;;;:::o;1139:158::-;1197:7;1211:9;1227:1;1223;:5;;;;:::i;:::-;1211:17;;1246:1;1241;:6;;1233:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1291:1;1284:8;;;1139:158;;;;:::o;8409:190::-;8456:19;8478:10;:8;:10::i;:::-;8456:32;;8493:13;8509:22;8519:11;8509:5;:9;;:22;;;;:::i;:::-;8493:38;;8561:33;8588:5;8561:7;:22;8577:4;8561:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;8536:7;:22;8552:4;8536:22;;;;;;;;;;;;;;;:58;;;;8451:148;;8409:190;:::o;8604:132::-;8676:17;8688:4;8676:7;;:11;;:17;;;;:::i;:::-;8666:7;:27;;;;8711:20;8726:4;8711:10;;:14;;:20;;;;:::i;:::-;8698:10;:33;;;;8604:132;;:::o;9571:309::-;9655:7;9664;9673;9687:12;9702:23;9721:3;9702:14;9714:1;9702:7;:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;9687:38;;9730:13;9746:28;9770:3;9746:19;9758:6;9746:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;9730:44;;9779:23;9805:28;9827:5;9805:17;9817:4;9805:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;9779:54;;9846:15;9863:4;9869:5;9838:37;;;;;;;;;9571:309;;;;;:::o;9885:383::-;10002:7;10011;10020;10034:15;10052:24;10064:11;10052:7;:11;;:24;;;;:::i;:::-;10034:42;;10081:12;10096:21;10105:11;10096:4;:8;;:21;;;;:::i;:::-;10081:36;;10122:13;10138:22;10148:11;10138:5;:9;;:22;;;;:::i;:::-;10122:38;;10165:23;10191:28;10213:5;10191:17;10203:4;10191:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;10165:54;;10232:7;10241:15;10258:4;10224:39;;;;;;;;;;9885:383;;;;;;;;:::o;1608:204::-;1666:7;1689:1;1684;:6;1680:32;;;1705:1;1698:8;;;;1680:32;1716:9;1732:1;1728;:5;;;;:::i;:::-;1716:17;;1755:1;1750;1746;:5;;;;:::i;:::-;:10;1738:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1806:1;1799:8;;;1608:204;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;301:137;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;444:139;;;;:::o;589:143::-;646:5;677:6;671:13;662:22;;693:33;720:5;693:33;:::i;:::-;589:143;;;;:::o;738:329::-;797:6;846:2;834:9;825:7;821:23;817:32;814:119;;;852:79;;:::i;:::-;814:119;972:1;997:53;1042:7;1033:6;1022:9;1018:22;997:53;:::i;:::-;987:63;;943:117;738:329;;;;:::o;1073:351::-;1143:6;1192:2;1180:9;1171:7;1167:23;1163:32;1160:119;;;1198:79;;:::i;:::-;1160:119;1318:1;1343:64;1399:7;1390:6;1379:9;1375:22;1343:64;:::i;:::-;1333:74;;1289:128;1073:351;;;;:::o;1430:474::-;1498:6;1506;1555:2;1543:9;1534:7;1530:23;1526:32;1523:119;;;1561:79;;:::i;:::-;1523:119;1681:1;1706:53;1751:7;1742:6;1731:9;1727:22;1706:53;:::i;:::-;1696:63;;1652:117;1808:2;1834:53;1879:7;1870:6;1859:9;1855:22;1834:53;:::i;:::-;1824:63;;1779:118;1430:474;;;;;:::o;1910:619::-;1987:6;1995;2003;2052:2;2040:9;2031:7;2027:23;2023:32;2020:119;;;2058:79;;:::i;:::-;2020:119;2178:1;2203:53;2248:7;2239:6;2228:9;2224:22;2203:53;:::i;:::-;2193:63;;2149:117;2305:2;2331:53;2376:7;2367:6;2356:9;2352:22;2331:53;:::i;:::-;2321:63;;2276:118;2433:2;2459:53;2504:7;2495:6;2484:9;2480:22;2459:53;:::i;:::-;2449:63;;2404:118;1910:619;;;;;:::o;2535:474::-;2603:6;2611;2660:2;2648:9;2639:7;2635:23;2631:32;2628:119;;;2666:79;;:::i;:::-;2628:119;2786:1;2811:53;2856:7;2847:6;2836:9;2832:22;2811:53;:::i;:::-;2801:63;;2757:117;2913:2;2939:53;2984:7;2975:6;2964:9;2960:22;2939:53;:::i;:::-;2929:63;;2884:118;2535:474;;;;;:::o;3015:345::-;3082:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:119;;;3137:79;;:::i;:::-;3099:119;3257:1;3282:61;3335:7;3326:6;3315:9;3311:22;3282:61;:::i;:::-;3272:71;;3228:125;3015:345;;;;:::o;3366:663::-;3454:6;3462;3470;3519:2;3507:9;3498:7;3494:23;3490:32;3487:119;;;3525:79;;:::i;:::-;3487:119;3645:1;3670:64;3726:7;3717:6;3706:9;3702:22;3670:64;:::i;:::-;3660:74;;3616:128;3783:2;3809:64;3865:7;3856:6;3845:9;3841:22;3809:64;:::i;:::-;3799:74;;3754:129;3922:2;3948:64;4004:7;3995:6;3984:9;3980:22;3948:64;:::i;:::-;3938:74;;3893:129;3366:663;;;;;:::o;4035:179::-;4104:10;4125:46;4167:3;4159:6;4125:46;:::i;:::-;4203:4;4198:3;4194:14;4180:28;;4035:179;;;;:::o;4220:108::-;4297:24;4315:5;4297:24;:::i;:::-;4292:3;4285:37;4220:108;;:::o;4334:118::-;4421:24;4439:5;4421:24;:::i;:::-;4416:3;4409:37;4334:118;;:::o;4488:732::-;4607:3;4636:54;4684:5;4636:54;:::i;:::-;4706:86;4785:6;4780:3;4706:86;:::i;:::-;4699:93;;4816:56;4866:5;4816:56;:::i;:::-;4895:7;4926:1;4911:284;4936:6;4933:1;4930:13;4911:284;;;5012:6;5006:13;5039:63;5098:3;5083:13;5039:63;:::i;:::-;5032:70;;5125:60;5178:6;5125:60;:::i;:::-;5115:70;;4971:224;4958:1;4955;4951:9;4946:14;;4911:284;;;4915:14;5211:3;5204:10;;4612:608;;;4488:732;;;;:::o;5226:109::-;5307:21;5322:5;5307:21;:::i;:::-;5302:3;5295:34;5226:109;;:::o;5341:147::-;5436:45;5475:5;5436:45;:::i;:::-;5431:3;5424:58;5341:147;;:::o;5494:364::-;5582:3;5610:39;5643:5;5610:39;:::i;:::-;5665:71;5729:6;5724:3;5665:71;:::i;:::-;5658:78;;5745:52;5790:6;5785:3;5778:4;5771:5;5767:16;5745:52;:::i;:::-;5822:29;5844:6;5822:29;:::i;:::-;5817:3;5813:39;5806:46;;5586:272;5494:364;;;;:::o;5864:366::-;6006:3;6027:67;6091:2;6086:3;6027:67;:::i;:::-;6020:74;;6103:93;6192:3;6103:93;:::i;:::-;6221:2;6216:3;6212:12;6205:19;;5864:366;;;:::o;6236:::-;6378:3;6399:67;6463:2;6458:3;6399:67;:::i;:::-;6392:74;;6475:93;6564:3;6475:93;:::i;:::-;6593:2;6588:3;6584:12;6577:19;;6236:366;;;:::o;6608:::-;6750:3;6771:67;6835:2;6830:3;6771:67;:::i;:::-;6764:74;;6847:93;6936:3;6847:93;:::i;:::-;6965:2;6960:3;6956:12;6949:19;;6608:366;;;:::o;6980:::-;7122:3;7143:67;7207:2;7202:3;7143:67;:::i;:::-;7136:74;;7219:93;7308:3;7219:93;:::i;:::-;7337:2;7332:3;7328:12;7321:19;;6980:366;;;:::o;7352:::-;7494:3;7515:67;7579:2;7574:3;7515:67;:::i;:::-;7508:74;;7591:93;7680:3;7591:93;:::i;:::-;7709:2;7704:3;7700:12;7693:19;;7352:366;;;:::o;7724:::-;7866:3;7887:67;7951:2;7946:3;7887:67;:::i;:::-;7880:74;;7963:93;8052:3;7963:93;:::i;:::-;8081:2;8076:3;8072:12;8065:19;;7724:366;;;:::o;8096:::-;8238:3;8259:67;8323:2;8318:3;8259:67;:::i;:::-;8252:74;;8335:93;8424:3;8335:93;:::i;:::-;8453:2;8448:3;8444:12;8437:19;;8096:366;;;:::o;8468:::-;8610:3;8631:67;8695:2;8690:3;8631:67;:::i;:::-;8624:74;;8707:93;8796:3;8707:93;:::i;:::-;8825:2;8820:3;8816:12;8809:19;;8468:366;;;:::o;8840:::-;8982:3;9003:67;9067:2;9062:3;9003:67;:::i;:::-;8996:74;;9079:93;9168:3;9079:93;:::i;:::-;9197:2;9192:3;9188:12;9181:19;;8840:366;;;:::o;9212:::-;9354:3;9375:67;9439:2;9434:3;9375:67;:::i;:::-;9368:74;;9451:93;9540:3;9451:93;:::i;:::-;9569:2;9564:3;9560:12;9553:19;;9212:366;;;:::o;9584:118::-;9671:24;9689:5;9671:24;:::i;:::-;9666:3;9659:37;9584:118;;:::o;9708:112::-;9791:22;9807:5;9791:22;:::i;:::-;9786:3;9779:35;9708:112;;:::o;9826:222::-;9919:4;9957:2;9946:9;9942:18;9934:26;;9970:71;10038:1;10027:9;10023:17;10014:6;9970:71;:::i;:::-;9826:222;;;;:::o;10054:332::-;10175:4;10213:2;10202:9;10198:18;10190:26;;10226:71;10294:1;10283:9;10279:17;10270:6;10226:71;:::i;:::-;10307:72;10375:2;10364:9;10360:18;10351:6;10307:72;:::i;:::-;10054:332;;;;;:::o;10392:::-;10513:4;10551:2;10540:9;10536:18;10528:26;;10564:71;10632:1;10621:9;10617:17;10608:6;10564:71;:::i;:::-;10645:72;10713:2;10702:9;10698:18;10689:6;10645:72;:::i;:::-;10392:332;;;;;:::o;10730:807::-;10979:4;11017:3;11006:9;11002:19;10994:27;;11031:71;11099:1;11088:9;11084:17;11075:6;11031:71;:::i;:::-;11112:72;11180:2;11169:9;11165:18;11156:6;11112:72;:::i;:::-;11194:80;11270:2;11259:9;11255:18;11246:6;11194:80;:::i;:::-;11284;11360:2;11349:9;11345:18;11336:6;11284:80;:::i;:::-;11374:73;11442:3;11431:9;11427:19;11418:6;11374:73;:::i;:::-;11457;11525:3;11514:9;11510:19;11501:6;11457:73;:::i;:::-;10730:807;;;;;;;;;:::o;11543:210::-;11630:4;11668:2;11657:9;11653:18;11645:26;;11681:65;11743:1;11732:9;11728:17;11719:6;11681:65;:::i;:::-;11543:210;;;;:::o;11759:313::-;11872:4;11910:2;11899:9;11895:18;11887:26;;11959:9;11953:4;11949:20;11945:1;11934:9;11930:17;11923:47;11987:78;12060:4;12051:6;11987:78;:::i;:::-;11979:86;;11759:313;;;;:::o;12078:419::-;12244:4;12282:2;12271:9;12267:18;12259:26;;12331:9;12325:4;12321:20;12317:1;12306:9;12302:17;12295:47;12359:131;12485:4;12359:131;:::i;:::-;12351:139;;12078:419;;;:::o;12503:::-;12669:4;12707:2;12696:9;12692:18;12684:26;;12756:9;12750:4;12746:20;12742:1;12731:9;12727:17;12720:47;12784:131;12910:4;12784:131;:::i;:::-;12776:139;;12503:419;;;:::o;12928:::-;13094:4;13132:2;13121:9;13117:18;13109:26;;13181:9;13175:4;13171:20;13167:1;13156:9;13152:17;13145:47;13209:131;13335:4;13209:131;:::i;:::-;13201:139;;12928:419;;;:::o;13353:::-;13519:4;13557:2;13546:9;13542:18;13534:26;;13606:9;13600:4;13596:20;13592:1;13581:9;13577:17;13570:47;13634:131;13760:4;13634:131;:::i;:::-;13626:139;;13353:419;;;:::o;13778:::-;13944:4;13982:2;13971:9;13967:18;13959:26;;14031:9;14025:4;14021:20;14017:1;14006:9;14002:17;13995:47;14059:131;14185:4;14059:131;:::i;:::-;14051:139;;13778:419;;;:::o;14203:::-;14369:4;14407:2;14396:9;14392:18;14384:26;;14456:9;14450:4;14446:20;14442:1;14431:9;14427:17;14420:47;14484:131;14610:4;14484:131;:::i;:::-;14476:139;;14203:419;;;:::o;14628:::-;14794:4;14832:2;14821:9;14817:18;14809:26;;14881:9;14875:4;14871:20;14867:1;14856:9;14852:17;14845:47;14909:131;15035:4;14909:131;:::i;:::-;14901:139;;14628:419;;;:::o;15053:::-;15219:4;15257:2;15246:9;15242:18;15234:26;;15306:9;15300:4;15296:20;15292:1;15281:9;15277:17;15270:47;15334:131;15460:4;15334:131;:::i;:::-;15326:139;;15053:419;;;:::o;15478:::-;15644:4;15682:2;15671:9;15667:18;15659:26;;15731:9;15725:4;15721:20;15717:1;15706:9;15702:17;15695:47;15759:131;15885:4;15759:131;:::i;:::-;15751:139;;15478:419;;;:::o;15903:::-;16069:4;16107:2;16096:9;16092:18;16084:26;;16156:9;16150:4;16146:20;16142:1;16131:9;16127:17;16120:47;16184:131;16310:4;16184:131;:::i;:::-;16176:139;;15903:419;;;:::o;16328:222::-;16421:4;16459:2;16448:9;16444:18;16436:26;;16472:71;16540:1;16529:9;16525:17;16516:6;16472:71;:::i;:::-;16328:222;;;;:::o;16556:831::-;16819:4;16857:3;16846:9;16842:19;16834:27;;16871:71;16939:1;16928:9;16924:17;16915:6;16871:71;:::i;:::-;16952:80;17028:2;17017:9;17013:18;17004:6;16952:80;:::i;:::-;17079:9;17073:4;17069:20;17064:2;17053:9;17049:18;17042:48;17107:108;17210:4;17201:6;17107:108;:::i;:::-;17099:116;;17225:72;17293:2;17282:9;17278:18;17269:6;17225:72;:::i;:::-;17307:73;17375:3;17364:9;17360:19;17351:6;17307:73;:::i;:::-;16556:831;;;;;;;;:::o;17393:214::-;17482:4;17520:2;17509:9;17505:18;17497:26;;17533:67;17597:1;17586:9;17582:17;17573:6;17533:67;:::i;:::-;17393:214;;;;:::o;17694:132::-;17761:4;17784:3;17776:11;;17814:4;17809:3;17805:14;17797:22;;17694:132;;;:::o;17832:114::-;17899:6;17933:5;17927:12;17917:22;;17832:114;;;:::o;17952:99::-;18004:6;18038:5;18032:12;18022:22;;17952:99;;;:::o;18057:113::-;18127:4;18159;18154:3;18150:14;18142:22;;18057:113;;;:::o;18176:184::-;18275:11;18309:6;18304:3;18297:19;18349:4;18344:3;18340:14;18325:29;;18176:184;;;;:::o;18366:169::-;18450:11;18484:6;18479:3;18472:19;18524:4;18519:3;18515:14;18500:29;;18366:169;;;;:::o;18541:305::-;18581:3;18600:20;18618:1;18600:20;:::i;:::-;18595:25;;18634:20;18652:1;18634:20;:::i;:::-;18629:25;;18788:1;18720:66;18716:74;18713:1;18710:81;18707:107;;;18794:18;;:::i;:::-;18707:107;18838:1;18835;18831:9;18824:16;;18541:305;;;;:::o;18852:185::-;18892:1;18909:20;18927:1;18909:20;:::i;:::-;18904:25;;18943:20;18961:1;18943:20;:::i;:::-;18938:25;;18982:1;18972:35;;18987:18;;:::i;:::-;18972:35;19029:1;19026;19022:9;19017:14;;18852:185;;;;:::o;19043:348::-;19083:7;19106:20;19124:1;19106:20;:::i;:::-;19101:25;;19140:20;19158:1;19140:20;:::i;:::-;19135:25;;19328:1;19260:66;19256:74;19253:1;19250:81;19245:1;19238:9;19231:17;19227:105;19224:131;;;19335:18;;:::i;:::-;19224:131;19383:1;19380;19376:9;19365:20;;19043:348;;;;:::o;19397:191::-;19437:4;19457:20;19475:1;19457:20;:::i;:::-;19452:25;;19491:20;19509:1;19491:20;:::i;:::-;19486:25;;19530:1;19527;19524:8;19521:34;;;19535:18;;:::i;:::-;19521:34;19580:1;19577;19573:9;19565:17;;19397:191;;;;:::o;19594:96::-;19631:7;19660:24;19678:5;19660:24;:::i;:::-;19649:35;;19594:96;;;:::o;19696:90::-;19730:7;19773:5;19766:13;19759:21;19748:32;;19696:90;;;:::o;19792:126::-;19829:7;19869:42;19862:5;19858:54;19847:65;;19792:126;;;:::o;19924:77::-;19961:7;19990:5;19979:16;;19924:77;;;:::o;20007:86::-;20042:7;20082:4;20075:5;20071:16;20060:27;;20007:86;;;:::o;20099:121::-;20157:9;20190:24;20208:5;20190:24;:::i;:::-;20177:37;;20099:121;;;:::o;20226:307::-;20294:1;20304:113;20318:6;20315:1;20312:13;20304:113;;;20403:1;20398:3;20394:11;20388:18;20384:1;20379:3;20375:11;20368:39;20340:2;20337:1;20333:10;20328:15;;20304:113;;;20435:6;20432:1;20429:13;20426:101;;;20515:1;20506:6;20501:3;20497:16;20490:27;20426:101;20275:258;20226:307;;;:::o;20539:180::-;20587:77;20584:1;20577:88;20684:4;20681:1;20674:15;20708:4;20705:1;20698:15;20725:180;20773:77;20770:1;20763:88;20870:4;20867:1;20860:15;20894:4;20891:1;20884:15;20911:180;20959:77;20956:1;20949:88;21056:4;21053:1;21046:15;21080:4;21077:1;21070:15;21097:180;21145:77;21142:1;21135:88;21242:4;21239:1;21232:15;21266:4;21263:1;21256:15;21406:117;21515:1;21512;21505:12;21529:102;21570:6;21621:2;21617:7;21612:2;21605:5;21601:14;21597:28;21587:38;;21529:102;;;:::o;21637:222::-;21777:34;21773:1;21765:6;21761:14;21754:58;21846:5;21841:2;21833:6;21829:15;21822:30;21637:222;:::o;21865:229::-;22005:34;22001:1;21993:6;21989:14;21982:58;22074:12;22069:2;22061:6;22057:15;22050:37;21865:229;:::o;22100:221::-;22240:34;22236:1;22228:6;22224:14;22217:58;22309:4;22304:2;22296:6;22292:15;22285:29;22100:221;:::o;22327:173::-;22467:25;22463:1;22455:6;22451:14;22444:49;22327:173;:::o;22506:177::-;22646:29;22642:1;22634:6;22630:14;22623:53;22506:177;:::o;22689:220::-;22829:34;22825:1;22817:6;22813:14;22806:58;22898:3;22893:2;22885:6;22881:15;22874:28;22689:220;:::o;22915:182::-;23055:34;23051:1;23043:6;23039:14;23032:58;22915:182;:::o;23103:228::-;23243:34;23239:1;23231:6;23227:14;23220:58;23312:11;23307:2;23299:6;23295:15;23288:36;23103:228;:::o;23337:224::-;23477:34;23473:1;23465:6;23461:14;23454:58;23546:7;23541:2;23533:6;23529:15;23522:32;23337:224;:::o;23567:223::-;23707:34;23703:1;23695:6;23691:14;23684:58;23776:6;23771:2;23763:6;23759:15;23752:31;23567:223;:::o;23796:122::-;23869:24;23887:5;23869:24;:::i;:::-;23862:5;23859:35;23849:63;;23908:1;23905;23898:12;23849:63;23796:122;:::o;23924:116::-;23994:21;24009:5;23994:21;:::i;:::-;23987:5;23984:32;23974:60;;24030:1;24027;24020:12;23974:60;23924:116;:::o;24046:122::-;24119:24;24137:5;24119:24;:::i;:::-;24112:5;24109:35;24099:63;;24158:1;24155;24148:12;24099:63;24046:122;:::o

Swarm Source

ipfs://645e6750961f5c618ec6da4fc37dd3c63ca4d35b97fc6790ab82a1892d971c45
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.