ETH Price: $2,349.29 (+0.27%)

Token

Parts of Four Coin (P4C)
 

Overview

Max Total Supply

3,999,210,562,730.936444670057925601 P4C

Holders

437 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 P4C

Value
$0.00
0xc46bc0c9bd5321c2c5babeeb8abc64a725f5062c
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The Parts of Four Coin’s (P4C) principal function is as the currency of the upcoming Parts for Four NFT platform. The Platform will be the primary ecosystem to acquire, forge, and merge Parts of Four NFTs.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
P4CToken

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-11-10
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

/// @title Parts of Four Token
contract P4CToken {
	string public constant name = "Parts of Four Coin";
	string public constant symbol = "P4C";
	uint8 public constant decimals = 18;

	event Transfer(address indexed _from, address indexed _to, uint256 _value);
	event Approval(address indexed _owner, address indexed _spender, uint256 _value);

	/// @notice The block number this contract was created in. Stored here so web3 scripts can easily access it and use
	/// @notice it to scan for InternalTransfer and NewRedistributedSupply events
	uint256 public immutable creationBlock;

	/// @notice This determines whether the 3% is deducted from transactions.
	bool public deductTaxes = true;

	/// @notice The original supply of P4C.
	uint256 public constant originalSupply = 4_000_000_000_000e18;

	/// @notice The current supply of internal P4C. This goes down when funds are burnt, as well as when supply is
	/// @notice redistributed.
	uint256 public totalInternalSupply = originalSupply;

	/// @notice This is the internal supply held in non-excluded addresses.
	uint256 public internalSupplyInNonExcludedAddresses;

	// @notice This 1e18 times a factor that adjusts internal balances to external balances. For example, if an account
	// @notice has an internal balance of 1e18 and this factor is 1.5e18, the external balance of that account will be
	// @notice 1.5e18.
	uint256 public adjustmentFactor = 1e18;

	// @notice The owner of the contract, set to the address that instantiated the contract. Only `contractOwner` may
	// @notice add or remove excluded addresses.
	address public immutable contractOwner;

	// @notice This is a list of excluded addresses. Transfers involving these addresses don't have the 3% tax taken out
	// @notice of them, and they don't receive token redistribution (ie. their balances are adjusted downwards every
	// @notice time `adjustmentFactor` is increased.
	address[] public excludedAddresses;
	// @notice A map where addresses in `excludedAddresses` map to `true`.
	mapping (address => bool) excludedAddressesMap;

	// @notice This is a mapping of addresses to the number of *internal* tokens they hold. This is *different* from the
	// @notice values that are used in contract calls, as those are adjusted by `adjustmentFactor`.
	mapping (address => uint256) public internalBalances;

	// @notice This event is emitted when tokens are transferred from `_from` to `_to`. `_internalSentValue` is the
	// @notice number of internal tokens transferred *before* any fees are deducted (ie. the recipient will actually get
	// @notice 3% less unless `_from` or `_to` is an excluded address).
	event InternalTransfer(address _from, address _to, uint256 _internalSentValue);
	// @notice This event is fired when an excluded address is added.
	event AddedExcludedAddress(address _addr);
	// @notice This event is fired when an address is removed from the excluded address list.
	event RemovedExcludedAddress(address _addr);
	// @notice Called when deduct taxes setting is changed.
	event SetDeductTaxes(bool _enabled);

	// Token authorisations. `_authorisee` can withdraw up to `allowed[_authoriser][_authroisee]` from `_authoriser`'s
	// account. Multiple transfers can be made so long as they do not cumulatively exceed the given amount. This is in
	// *EXTERNAL* tokens.
	mapping (address => mapping (address => uint256)) allowed;

	constructor() {
		creationBlock = block.number;
		contractOwner = msg.sender;
		addExcludedAddress(msg.sender);
		internalBalances[contractOwner] = originalSupply;
	}

	/// @notice Derive an external amount from an internal amount. (This will return a different result every time it's
	/// @notice called, as the amount it's being adjusted by changes when transfers are made.)
	function internalToExternalAmount(uint256 _internalAmount) view internal returns (uint256) {
		return (_internalAmount * adjustmentFactor) / 1e18;
	}

	/// @notice Derive an internal amount from an external amount. (This will return a different result every time it's
	/// @notice called, as the amount it's being adjusted by changes when transfers are made.)
	function externalToInternalAmount(uint256 _externalAmount) view internal returns (uint256) {
		return (_externalAmount * 1e18) / adjustmentFactor;
	}

	/// @notice The total external supply of the contract.
	function totalSupply() public view returns (uint256) {
		return internalToExternalAmount(totalInternalSupply);
	}

	/// @notice Designate an address as excluded. Transactions to and from excluded addresses don't incur taxes, and
	/// @notice they don't receive token redistribution either (which in practice means that their balances are adjusted
	/// @notice downwards every time `adjustmentFactor` is increased). This may only be called by `contractOwner`.
	function addExcludedAddress(address _addr) public {
		require(msg.sender == contractOwner, "This function is callable only by the contract owner.");
		require(!excludedAddressesMap[_addr], "_addr is already an excluded address.");

		internalSupplyInNonExcludedAddresses -= internalBalances[_addr];
		excludedAddressesMap[_addr] = true;
		excludedAddresses.push(_addr);

		emit AddedExcludedAddress(_addr);
	}

	/// @notice Remove the designation of excluded address from `_addr`.  Transactions to and from excluded addresses
	/// @notice don't incur taxes, and they don't receive token redistribution either (which in practice means that
	/// @notice their balances are adjusted downwards every time `adjustmentFactor` is increased). This may only be
	/// @notice called by `contractOwner`.
	function removeExcludedAddress(address _addr) public {
		require(msg.sender == contractOwner, "This function is callable only by the contract owner.");
		require(_addr != contractOwner, "contractOwner must be an excluded address for correct contract behaviour.");
		require(!!excludedAddressesMap[_addr], "_addr is not an excluded address.");

		internalSupplyInNonExcludedAddresses += internalBalances[_addr];
		excludedAddressesMap[_addr] = false;
		for (uint i; i < excludedAddresses.length; i++) {
			if (excludedAddresses[i] == _addr) {
				if (i != excludedAddresses.length-1)
					excludedAddresses[i] = excludedAddresses[excludedAddresses.length-1];

				excludedAddresses.pop();
				break;
			}
		}

		emit RemovedExcludedAddress(_addr);
	}

	/// @notice Set whether or not we deduct 3% from every transaction. This may only be called by `contractOwner`.
	function setDeductTaxes(bool _deductTaxes) public {
		require(msg.sender == contractOwner, "This function is callable only by the contract owner.");
		require(_deductTaxes != deductTaxes, "deductTaxes is already that value");
		deductTaxes = _deductTaxes;
		emit SetDeductTaxes(_deductTaxes);
	}

	/// @notice Get the external balance of `_owner`.
	function balanceOf(address _owner) public view returns (uint256 balance) {
		return internalToExternalAmount(internalBalances[_owner]);
	}

	/// @notice Approve `_spender` to remove up to `_value` in external tokens *at the time the withdraw happens* from
	/// @notice `msg.sender`'s account. Multiple withdraws may be made from a single `approve()` call so long as the
	/// @notice sum of the external values at the time of each individual call do not exceed `_value`.
	function approve(address _spender, uint256 _value) public returns (bool success) {
		allowed[msg.sender][_spender] = _value;
		emit Approval(msg.sender, _spender, _value);
		return true;
	}

	/// @notice This returns the number of external tokens `_spender` is allowed to transfer on behalf of `_owner`.
	function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
		return allowed[_owner][_spender];
	}

	/// @notice Transfer `_value` external tokens from `msg.sender`'s account to `_to`'s account. If neither
	/// @notice `msg.sender` nor `_to` are excluded addresses, `_to` will receive only 97% of `_value`. 1% will be
	/// @notice burned, 1% will be redistributed equally among non-excluded addresses, and 1% will be sent to
	/// @notice `contractOwner`.
	function transfer(address _to, uint256 _value) public returns (bool success) {
		return transferCommon(msg.sender, _to, _value);
	}

	/// @notice Transfers `_value` from `_from` to `_to`, if `_from` has previously called `approve()` with the correct
	/// @notice arguments. Transfers work in the same way as `transfer()`.
	function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
		require(allowed[_from][msg.sender] >= _value, "Sender has insufficient authorisation.");
		allowed[_from][msg.sender] -= _value;

		return transferCommon(_from, _to, _value);
	}

	/// @notice This transfers `_value` from `_from` to `_to`, WITHOUT CHECKING FOR AUTHORISATION.
	function transferCommon(address _from, address _to, uint256 _value) internal returns (bool success) {
		uint256 internalValue = externalToInternalAmount(_value);
		require(internalValue <= internalBalances[_from], "Transfer source has insufficient balance.");

		uint256 internalReceivedValue;
		if (!excludedAddressesMap[_from] && !excludedAddressesMap[_to] && deductTaxes) {
			uint256 onePercent = internalValue / 100;
			internalReceivedValue = internalValue - onePercent * 3;
			internalSupplyInNonExcludedAddresses -= onePercent * 3;

			// This is the adjustment resulting from just this transaction.
			uint256 readjustmentFactor =
				((internalSupplyInNonExcludedAddresses + onePercent) * 1e18) /
				internalSupplyInNonExcludedAddresses;
			adjustmentFactor = (adjustmentFactor * readjustmentFactor) / 1e18;

			internalBalances[contractOwner] += onePercent;

			uint256 removedFunds;
			for (uint i; i < excludedAddresses.length; i++) {
				// Because this is rounded down, excludedAddresses will slowly lose funds as more transactions are made.
				// However, due to the fact that transactions are expensive and we have such a high precision, this
				// doesn't make a difference in practice.
				uint256 oldBalance = internalBalances[excludedAddresses[i]];
				uint256 newBalance = ((oldBalance * 1e18) / readjustmentFactor);
				internalBalances[excludedAddresses[i]] = newBalance;
				removedFunds += oldBalance - newBalance;
			}

			// Decrement the total supply by 2% of the transfer amount plus the internal amount that's been taken from
			// excludedAddresses.
			totalInternalSupply -= removedFunds + onePercent*2;
		} else {
			if (excludedAddressesMap[_from] && !excludedAddressesMap[_to])
				internalSupplyInNonExcludedAddresses += internalValue;
			if (!excludedAddressesMap[_from] && excludedAddressesMap[_to])
				internalSupplyInNonExcludedAddresses -= internalValue;

			internalReceivedValue = internalValue;
		}

		internalBalances[_to] += internalReceivedValue;
		internalBalances[_from] -= internalValue;

		emit Transfer(_from, _to, _value);
		emit InternalTransfer(_from, _to, internalValue);

		return true;
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"AddedExcludedAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_internalSentValue","type":"uint256"}],"name":"InternalTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"RemovedExcludedAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetDeductTaxes","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":"_addr","type":"address"}],"name":"addExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adjustmentFactor","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":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creationBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deductTaxes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"excludedAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"internalBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"internalSupplyInNonExcludedAddresses","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"removeExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_deductTaxes","type":"bool"}],"name":"setDeductTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInternalSupply","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":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60c060405260016000806101000a81548160ff0219169083151502179055506c327cb2734119d3b7a900000000600155670de0b6b3a76400006003553480156200004857600080fd5b5043608081815250503373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200009633620000ef60201b60201c565b6c327cb2734119d3b7a9000000006006600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200055a565b60a05173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000162576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015990620003ca565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620001f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e99062000462565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254620002459190620004bd565b925050819055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fefc0f92e52264fd936456c31bdd70fde3cea024938b2898278d521210c4aa948816040516200033891906200053d565b60405180910390a150565b600082825260208201905092915050565b7f546869732066756e6374696f6e2069732063616c6c61626c65206f6e6c79206260008201527f792074686520636f6e7472616374206f776e65722e0000000000000000000000602082015250565b6000620003b260358362000343565b9150620003bf8262000354565b604082019050919050565b60006020820190508181036000830152620003e581620003a3565b9050919050565b7f5f6164647220697320616c726561647920616e206578636c756465642061646460008201527f726573732e000000000000000000000000000000000000000000000000000000602082015250565b60006200044a60258362000343565b91506200045782620003ec565b604082019050919050565b600060208201905081810360008301526200047d816200043b565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004ca8262000484565b9150620004d78362000484565b925082821015620004ed57620004ec6200048e565b5b828203905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200052582620004f8565b9050919050565b620005378162000518565b82525050565b60006020820190506200055460008301846200052c565b92915050565b60805160a05161222e620005a36000396000818161077f0152818161093e015281816109cc01528181610d8d01528181610ffb01526112cf01526000610557015261222e6000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80634b2ba0dd116100b8578063a646c35d1161007c578063a646c35d14610356578063a9059cbb14610372578063a9b54bcd146103a2578063cb6741ed146103be578063ce606ee0146103dc578063dd62ed3e146103fa57610137565b80634b2ba0dd146102b05780636215722c146102ce57806367b53108146102ec57806370a082311461030857806395d89b411461033857610137565b8063282a8708116100ff578063282a8708146101f65780632f4c467814610214578063313ce56714610244578063319ebed414610262578063451117ca1461028057610137565b806306fdde031461013c578063095ea7b31461015a578063176345141461018a57806318160ddd146101a857806323b872dd146101c6575b600080fd5b61014461042a565b6040516101519190611881565b60405180910390f35b610174600480360381019061016f919061193c565b610463565b6040516101819190611997565b60405180910390f35b610192610555565b60405161019f91906119c1565b60405180910390f35b6101b0610579565b6040516101bd91906119c1565b60405180910390f35b6101e060048036038101906101db91906119dc565b61058b565b6040516101ed9190611997565b60405180910390f35b6101fe6106f3565b60405161020b91906119c1565b60405180910390f35b61022e60048036038101906102299190611a2f565b6106f9565b60405161023b9190611a6b565b60405180910390f35b61024c610738565b6040516102599190611aa2565b60405180910390f35b61026a61073d565b60405161027791906119c1565b60405180910390f35b61029a60048036038101906102959190611abd565b610743565b6040516102a791906119c1565b60405180910390f35b6102b861075b565b6040516102c591906119c1565b60405180910390f35b6102d661076c565b6040516102e39190611997565b60405180910390f35b61030660048036038101906103019190611b16565b61077d565b005b610322600480360381019061031d9190611abd565b6108b2565b60405161032f91906119c1565b60405180910390f35b610340610903565b60405161034d9190611881565b60405180910390f35b610370600480360381019061036b9190611abd565b61093c565b005b61038c6004803603810190610387919061193c565b610d76565b6040516103999190611997565b60405180910390f35b6103bc60048036038101906103b79190611abd565b610d8b565b005b6103c6610ff3565b6040516103d391906119c1565b60405180910390f35b6103e4610ff9565b6040516103f19190611a6b565b60405180910390f35b610414600480360381019061040f9190611b43565b61101d565b60405161042191906119c1565b60405180910390f35b6040518060400160405280601281526020017f5061727473206f6620466f757220436f696e000000000000000000000000000081525081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161054391906119c1565b60405180910390a36001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006105866001546110a4565b905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390611bf5565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106d89190611c44565b925050819055506106ea8484846110ce565b90509392505050565b60015481565b6004818154811061070957600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b60025481565b60066020528060005260406000206000915090505481565b6c327cb2734119d3b7a90000000081565b60008054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290611cea565b60405180910390fd5b60008054906101000a900460ff161515811515141561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690611d7c565b60405180910390fd5b806000806101000a81548160ff0219169083151502179055507f744c6ee55b7201173cfb0b5e9c044c47efa528937eef0b86f17183a10c549f32816040516108a79190611997565b60405180910390a150565b60006108fc600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110a4565b9050919050565b6040518060400160405280600381526020017f503443000000000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c190611cea565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5090611e34565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90611ec6565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254610b369190611ee6565b925050819055506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060005b600480549050811015610d3b578173ffffffffffffffffffffffffffffffffffffffff1660048281548110610bd057610bcf611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d28576001600480549050610c299190611c44565b8114610cdc5760046001600480549050610c439190611c44565b81548110610c5457610c53611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660048281548110610c9357610c92611f3c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6004805480610cee57610ced611f6b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d3b565b8080610d3390611f9a565b915050610b98565b507f28069ef55713875d75b84b6e0f77334a31803295be41049f09a5df64cb5e552b81604051610d6b9190611a6b565b60405180910390a150565b6000610d833384846110ce565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090611cea565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d90612055565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254610ef79190611c44565b925050819055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fefc0f92e52264fd936456c31bdd70fde3cea024938b2898278d521210c4aa94881604051610fe89190611a6b565b60405180910390a150565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000670de0b6b3a7640000600354836110bd9190612075565b6110c791906120fe565b9050919050565b6000806110da836117be565b9050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561115e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611155906121a1565b60405180910390fd5b6000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112045750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561121a575060008054906101000a900460ff165b156114dd57600060648361122e91906120fe565b905060038161123d9190612075565b836112489190611c44565b91506003816112579190612075565b600260008282546112689190611c44565b925050819055506000600254670de0b6b3a76400008360025461128b9190611ee6565b6112959190612075565b61129f91906120fe565b9050670de0b6b3a7640000816003546112b89190612075565b6112c291906120fe565b60038190555081600660007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113379190611ee6565b925050819055506000805b6004805490508110156114a4576000600660006004848154811061136957611368611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600084670de0b6b3a7640000836113e89190612075565b6113f291906120fe565b905080600660006004868154811061140d5761140c611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080826114829190611c44565b8461148d9190611ee6565b93505050808061149c90611f9a565b915050611342565b506002836114b29190612075565b816114bd9190611ee6565b600160008282546114ce9190611c44565b92505081905550505050611665565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115805750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561159f5781600260008282546115979190611ee6565b925050819055505b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116425750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116615781600260008282546116599190611c44565b925050819055505b8190505b80600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116b49190611ee6565b9250508190555081600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461170a9190611c44565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161176e91906119c1565b60405180910390a37fe2080c8fc8d86c864d8dc081fadaebf2be7191086615e786f954420f13ed122a8686846040516117a9939291906121c1565b60405180910390a16001925050509392505050565b6000600354670de0b6b3a7640000836117d79190612075565b6117e191906120fe565b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611822578082015181840152602081019050611807565b83811115611831576000848401525b50505050565b6000601f19601f8301169050919050565b6000611853826117e8565b61185d81856117f3565b935061186d818560208601611804565b61187681611837565b840191505092915050565b6000602082019050818103600083015261189b8184611848565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118d3826118a8565b9050919050565b6118e3816118c8565b81146118ee57600080fd5b50565b600081359050611900816118da565b92915050565b6000819050919050565b61191981611906565b811461192457600080fd5b50565b60008135905061193681611910565b92915050565b60008060408385031215611953576119526118a3565b5b6000611961858286016118f1565b925050602061197285828601611927565b9150509250929050565b60008115159050919050565b6119918161197c565b82525050565b60006020820190506119ac6000830184611988565b92915050565b6119bb81611906565b82525050565b60006020820190506119d660008301846119b2565b92915050565b6000806000606084860312156119f5576119f46118a3565b5b6000611a03868287016118f1565b9350506020611a14868287016118f1565b9250506040611a2586828701611927565b9150509250925092565b600060208284031215611a4557611a446118a3565b5b6000611a5384828501611927565b91505092915050565b611a65816118c8565b82525050565b6000602082019050611a806000830184611a5c565b92915050565b600060ff82169050919050565b611a9c81611a86565b82525050565b6000602082019050611ab76000830184611a93565b92915050565b600060208284031215611ad357611ad26118a3565b5b6000611ae1848285016118f1565b91505092915050565b611af38161197c565b8114611afe57600080fd5b50565b600081359050611b1081611aea565b92915050565b600060208284031215611b2c57611b2b6118a3565b5b6000611b3a84828501611b01565b91505092915050565b60008060408385031215611b5a57611b596118a3565b5b6000611b68858286016118f1565b9250506020611b79858286016118f1565b9150509250929050565b7f53656e6465722068617320696e73756666696369656e7420617574686f72697360008201527f6174696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b6000611bdf6026836117f3565b9150611bea82611b83565b604082019050919050565b60006020820190508181036000830152611c0e81611bd2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c4f82611906565b9150611c5a83611906565b925082821015611c6d57611c6c611c15565b5b828203905092915050565b7f546869732066756e6374696f6e2069732063616c6c61626c65206f6e6c79206260008201527f792074686520636f6e7472616374206f776e65722e0000000000000000000000602082015250565b6000611cd46035836117f3565b9150611cdf82611c78565b604082019050919050565b60006020820190508181036000830152611d0381611cc7565b9050919050565b7f646564756374546178657320697320616c726561647920746861742076616c7560008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d666021836117f3565b9150611d7182611d0a565b604082019050919050565b60006020820190508181036000830152611d9581611d59565b9050919050565b7f636f6e74726163744f776e6572206d75737420626520616e206578636c75646560008201527f64206164647265737320666f7220636f727265637420636f6e7472616374206260208201527f65686176696f75722e0000000000000000000000000000000000000000000000604082015250565b6000611e1e6049836117f3565b9150611e2982611d9c565b606082019050919050565b60006020820190508181036000830152611e4d81611e11565b9050919050565b7f5f61646472206973206e6f7420616e206578636c75646564206164647265737360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611eb06021836117f3565b9150611ebb82611e54565b604082019050919050565b60006020820190508181036000830152611edf81611ea3565b9050919050565b6000611ef182611906565b9150611efc83611906565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f3157611f30611c15565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000611fa582611906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611fd857611fd7611c15565b5b600182019050919050565b7f5f6164647220697320616c726561647920616e206578636c756465642061646460008201527f726573732e000000000000000000000000000000000000000000000000000000602082015250565b600061203f6025836117f3565b915061204a82611fe3565b604082019050919050565b6000602082019050818103600083015261206e81612032565b9050919050565b600061208082611906565b915061208b83611906565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120c4576120c3611c15565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061210982611906565b915061211483611906565b925082612124576121236120cf565b5b828204905092915050565b7f5472616e7366657220736f757263652068617320696e73756666696369656e7460008201527f2062616c616e63652e0000000000000000000000000000000000000000000000602082015250565b600061218b6029836117f3565b91506121968261212f565b604082019050919050565b600060208201905081810360008301526121ba8161217e565b9050919050565b60006060820190506121d66000830186611a5c565b6121e36020830185611a5c565b6121f060408301846119b2565b94935050505056fea26469706673582212200f651931b1592cf7b704660139d53f526782979d2ad178c4a0ec8fb73e671a4c64736f6c63430008090033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c80634b2ba0dd116100b8578063a646c35d1161007c578063a646c35d14610356578063a9059cbb14610372578063a9b54bcd146103a2578063cb6741ed146103be578063ce606ee0146103dc578063dd62ed3e146103fa57610137565b80634b2ba0dd146102b05780636215722c146102ce57806367b53108146102ec57806370a082311461030857806395d89b411461033857610137565b8063282a8708116100ff578063282a8708146101f65780632f4c467814610214578063313ce56714610244578063319ebed414610262578063451117ca1461028057610137565b806306fdde031461013c578063095ea7b31461015a578063176345141461018a57806318160ddd146101a857806323b872dd146101c6575b600080fd5b61014461042a565b6040516101519190611881565b60405180910390f35b610174600480360381019061016f919061193c565b610463565b6040516101819190611997565b60405180910390f35b610192610555565b60405161019f91906119c1565b60405180910390f35b6101b0610579565b6040516101bd91906119c1565b60405180910390f35b6101e060048036038101906101db91906119dc565b61058b565b6040516101ed9190611997565b60405180910390f35b6101fe6106f3565b60405161020b91906119c1565b60405180910390f35b61022e60048036038101906102299190611a2f565b6106f9565b60405161023b9190611a6b565b60405180910390f35b61024c610738565b6040516102599190611aa2565b60405180910390f35b61026a61073d565b60405161027791906119c1565b60405180910390f35b61029a60048036038101906102959190611abd565b610743565b6040516102a791906119c1565b60405180910390f35b6102b861075b565b6040516102c591906119c1565b60405180910390f35b6102d661076c565b6040516102e39190611997565b60405180910390f35b61030660048036038101906103019190611b16565b61077d565b005b610322600480360381019061031d9190611abd565b6108b2565b60405161032f91906119c1565b60405180910390f35b610340610903565b60405161034d9190611881565b60405180910390f35b610370600480360381019061036b9190611abd565b61093c565b005b61038c6004803603810190610387919061193c565b610d76565b6040516103999190611997565b60405180910390f35b6103bc60048036038101906103b79190611abd565b610d8b565b005b6103c6610ff3565b6040516103d391906119c1565b60405180910390f35b6103e4610ff9565b6040516103f19190611a6b565b60405180910390f35b610414600480360381019061040f9190611b43565b61101d565b60405161042191906119c1565b60405180910390f35b6040518060400160405280601281526020017f5061727473206f6620466f757220436f696e000000000000000000000000000081525081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161054391906119c1565b60405180910390a36001905092915050565b7f0000000000000000000000000000000000000000000000000000000000cf512181565b60006105866001546110a4565b905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390611bf5565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106d89190611c44565b925050819055506106ea8484846110ce565b90509392505050565b60015481565b6004818154811061070957600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b60025481565b60066020528060005260406000206000915090505481565b6c327cb2734119d3b7a90000000081565b60008054906101000a900460ff1681565b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290611cea565b60405180910390fd5b60008054906101000a900460ff161515811515141561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690611d7c565b60405180910390fd5b806000806101000a81548160ff0219169083151502179055507f744c6ee55b7201173cfb0b5e9c044c47efa528937eef0b86f17183a10c549f32816040516108a79190611997565b60405180910390a150565b60006108fc600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110a4565b9050919050565b6040518060400160405280600381526020017f503443000000000000000000000000000000000000000000000000000000000081525081565b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c190611cea565b60405180910390fd5b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5090611e34565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90611ec6565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254610b369190611ee6565b925050819055506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060005b600480549050811015610d3b578173ffffffffffffffffffffffffffffffffffffffff1660048281548110610bd057610bcf611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d28576001600480549050610c299190611c44565b8114610cdc5760046001600480549050610c439190611c44565b81548110610c5457610c53611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660048281548110610c9357610c92611f3c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6004805480610cee57610ced611f6b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d3b565b8080610d3390611f9a565b915050610b98565b507f28069ef55713875d75b84b6e0f77334a31803295be41049f09a5df64cb5e552b81604051610d6b9190611a6b565b60405180910390a150565b6000610d833384846110ce565b905092915050565b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090611cea565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d90612055565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254610ef79190611c44565b925050819055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fefc0f92e52264fd936456c31bdd70fde3cea024938b2898278d521210c4aa94881604051610fe89190611a6b565b60405180910390a150565b60035481565b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c281565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000670de0b6b3a7640000600354836110bd9190612075565b6110c791906120fe565b9050919050565b6000806110da836117be565b9050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561115e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611155906121a1565b60405180910390fd5b6000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112045750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561121a575060008054906101000a900460ff165b156114dd57600060648361122e91906120fe565b905060038161123d9190612075565b836112489190611c44565b91506003816112579190612075565b600260008282546112689190611c44565b925050819055506000600254670de0b6b3a76400008360025461128b9190611ee6565b6112959190612075565b61129f91906120fe565b9050670de0b6b3a7640000816003546112b89190612075565b6112c291906120fe565b60038190555081600660007f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113379190611ee6565b925050819055506000805b6004805490508110156114a4576000600660006004848154811061136957611368611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600084670de0b6b3a7640000836113e89190612075565b6113f291906120fe565b905080600660006004868154811061140d5761140c611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080826114829190611c44565b8461148d9190611ee6565b93505050808061149c90611f9a565b915050611342565b506002836114b29190612075565b816114bd9190611ee6565b600160008282546114ce9190611c44565b92505081905550505050611665565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115805750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561159f5781600260008282546115979190611ee6565b925050819055505b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116425750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116615781600260008282546116599190611c44565b925050819055505b8190505b80600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116b49190611ee6565b9250508190555081600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461170a9190611c44565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161176e91906119c1565b60405180910390a37fe2080c8fc8d86c864d8dc081fadaebf2be7191086615e786f954420f13ed122a8686846040516117a9939291906121c1565b60405180910390a16001925050509392505050565b6000600354670de0b6b3a7640000836117d79190612075565b6117e191906120fe565b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611822578082015181840152602081019050611807565b83811115611831576000848401525b50505050565b6000601f19601f8301169050919050565b6000611853826117e8565b61185d81856117f3565b935061186d818560208601611804565b61187681611837565b840191505092915050565b6000602082019050818103600083015261189b8184611848565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118d3826118a8565b9050919050565b6118e3816118c8565b81146118ee57600080fd5b50565b600081359050611900816118da565b92915050565b6000819050919050565b61191981611906565b811461192457600080fd5b50565b60008135905061193681611910565b92915050565b60008060408385031215611953576119526118a3565b5b6000611961858286016118f1565b925050602061197285828601611927565b9150509250929050565b60008115159050919050565b6119918161197c565b82525050565b60006020820190506119ac6000830184611988565b92915050565b6119bb81611906565b82525050565b60006020820190506119d660008301846119b2565b92915050565b6000806000606084860312156119f5576119f46118a3565b5b6000611a03868287016118f1565b9350506020611a14868287016118f1565b9250506040611a2586828701611927565b9150509250925092565b600060208284031215611a4557611a446118a3565b5b6000611a5384828501611927565b91505092915050565b611a65816118c8565b82525050565b6000602082019050611a806000830184611a5c565b92915050565b600060ff82169050919050565b611a9c81611a86565b82525050565b6000602082019050611ab76000830184611a93565b92915050565b600060208284031215611ad357611ad26118a3565b5b6000611ae1848285016118f1565b91505092915050565b611af38161197c565b8114611afe57600080fd5b50565b600081359050611b1081611aea565b92915050565b600060208284031215611b2c57611b2b6118a3565b5b6000611b3a84828501611b01565b91505092915050565b60008060408385031215611b5a57611b596118a3565b5b6000611b68858286016118f1565b9250506020611b79858286016118f1565b9150509250929050565b7f53656e6465722068617320696e73756666696369656e7420617574686f72697360008201527f6174696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b6000611bdf6026836117f3565b9150611bea82611b83565b604082019050919050565b60006020820190508181036000830152611c0e81611bd2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c4f82611906565b9150611c5a83611906565b925082821015611c6d57611c6c611c15565b5b828203905092915050565b7f546869732066756e6374696f6e2069732063616c6c61626c65206f6e6c79206260008201527f792074686520636f6e7472616374206f776e65722e0000000000000000000000602082015250565b6000611cd46035836117f3565b9150611cdf82611c78565b604082019050919050565b60006020820190508181036000830152611d0381611cc7565b9050919050565b7f646564756374546178657320697320616c726561647920746861742076616c7560008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d666021836117f3565b9150611d7182611d0a565b604082019050919050565b60006020820190508181036000830152611d9581611d59565b9050919050565b7f636f6e74726163744f776e6572206d75737420626520616e206578636c75646560008201527f64206164647265737320666f7220636f727265637420636f6e7472616374206260208201527f65686176696f75722e0000000000000000000000000000000000000000000000604082015250565b6000611e1e6049836117f3565b9150611e2982611d9c565b606082019050919050565b60006020820190508181036000830152611e4d81611e11565b9050919050565b7f5f61646472206973206e6f7420616e206578636c75646564206164647265737360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611eb06021836117f3565b9150611ebb82611e54565b604082019050919050565b60006020820190508181036000830152611edf81611ea3565b9050919050565b6000611ef182611906565b9150611efc83611906565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f3157611f30611c15565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000611fa582611906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611fd857611fd7611c15565b5b600182019050919050565b7f5f6164647220697320616c726561647920616e206578636c756465642061646460008201527f726573732e000000000000000000000000000000000000000000000000000000602082015250565b600061203f6025836117f3565b915061204a82611fe3565b604082019050919050565b6000602082019050818103600083015261206e81612032565b9050919050565b600061208082611906565b915061208b83611906565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120c4576120c3611c15565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061210982611906565b915061211483611906565b925082612124576121236120cf565b5b828204905092915050565b7f5472616e7366657220736f757263652068617320696e73756666696369656e7460008201527f2062616c616e63652e0000000000000000000000000000000000000000000000602082015250565b600061218b6029836117f3565b91506121968261212f565b604082019050919050565b600060208201905081810360008301526121ba8161217e565b9050919050565b60006060820190506121d66000830186611a5c565b6121e36020830185611a5c565b6121f060408301846119b2565b94935050505056fea26469706673582212200f651931b1592cf7b704660139d53f526782979d2ad178c4a0ec8fb73e671a4c64736f6c63430008090033

Deployed Bytecode Sourcemap

99:11091:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7464:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;619:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4468:115;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8604:282;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1026:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2006:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;216:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1157:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2386:52;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;817:61;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;739:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6629:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6986:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;175:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5743:767;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8275:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4935:418;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1470:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1677;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7776:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;121:50;;;;;;;;;;;;;;;;;;;:::o;7464:193::-;7531:12;7582:6;7550:7;:19;7558:10;7550:19;;;;;;;;;;;;;;;:29;7570:8;7550:29;;;;;;;;;;;;;;;:38;;;;7619:8;7598:38;;7607:10;7598:38;;;7629:6;7598:38;;;;;;:::i;:::-;;;;;;;;7648:4;7641:11;;7464:193;;;;:::o;619:38::-;;;:::o;4468:115::-;4512:7;4533:45;4558:19;;4533:24;:45::i;:::-;4526:52;;4468:115;:::o;8604:282::-;8686:12;8743:6;8713:7;:14;8721:5;8713:14;;;;;;;;;;;;;;;:26;8728:10;8713:26;;;;;;;;;;;;;;;;:36;;8705:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8827:6;8797:7;:14;8805:5;8797:14;;;;;;;;;;;;;;;:26;8812:10;8797:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;8847:34;8862:5;8869:3;8874:6;8847:14;:34::i;:::-;8840:41;;8604:282;;;;;:::o;1026:51::-;;;;:::o;2006:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;216:35::-;249:2;216:35;:::o;1157:51::-;;;;:::o;2386:52::-;;;;;;;;;;;;;;;;;:::o;817:61::-;858:20;817:61;:::o;739:30::-;;;;;;;;;;;;:::o;6629:300::-;6706:13;6692:27;;:10;:27;;;6684:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;6806:11;;;;;;;;;;6790:27;;:12;:27;;;;6782:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6874:12;6860:11;;:26;;;;;;;;;;;;;;;;;;6896:28;6911:12;6896:28;;;;;;:::i;:::-;;;;;;;;6629:300;:::o;6986:140::-;7042:15;7071:50;7096:16;:24;7113:6;7096:24;;;;;;;;;;;;;;;;7071;:50::i;:::-;7064:57;;6986:140;;;:::o;175:37::-;;;;;;;;;;;;;;;;;;;:::o;5743:767::-;5823:13;5809:27;;:10;:27;;;5801:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;5916:13;5907:22;;:5;:22;;;;5899:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;6022:20;:27;6043:5;6022:27;;;;;;;;;;;;;;;;;;;;;;;;;6012:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;6134:16;:23;6151:5;6134:23;;;;;;;;;;;;;;;;6094:36;;:63;;;;;;;:::i;:::-;;;;;;;;6192:5;6162:20;:27;6183:5;6162:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;6207:6;6202:263;6219:17;:24;;;;6215:1;:28;6202:263;;;6284:5;6260:29;;:17;6278:1;6260:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:29;;;6256:204;;;6332:1;6307:17;:24;;;;:26;;;;:::i;:::-;6302:1;:31;6298:111;;6364:17;6407:1;6382:17;:24;;;;:26;;;;:::i;:::-;6364:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6341:17;6359:1;6341:20;;;;;;;;:::i;:::-;;;;;;;;;;:68;;;;;;;;;;;;;;;;;;6298:111;6418:17;:23;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6448:5;;6256:204;6245:3;;;;;:::i;:::-;;;;6202:263;;;;6476:29;6499:5;6476:29;;;;;;:::i;:::-;;;;;;;;5743:767;:::o;8275:133::-;8338:12;8364:39;8379:10;8391:3;8396:6;8364:14;:39::i;:::-;8357:46;;8275:133;;;;:::o;4935:418::-;5012:13;4998:27;;:10;:27;;;4990:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;5097:20;:27;5118:5;5097:27;;;;;;;;;;;;;;;;;;;;;;;;;5096:28;5088:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5213:16;:23;5230:5;5213:23;;;;;;;;;;;;;;;;5173:36;;:63;;;;;;;:::i;:::-;;;;;;;;5271:4;5241:20;:27;5262:5;5241:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;5280:17;5303:5;5280:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:27;5342:5;5321:27;;;;;;:::i;:::-;;;;;;;;4935:418;:::o;1470:38::-;;;;:::o;1677:::-;;;:::o;7776:135::-;7850:17;7881:7;:15;7889:6;7881:15;;;;;;;;;;;;;;;:25;7897:8;7881:25;;;;;;;;;;;;;;;;7874:32;;7776:135;;;;:::o;3888:151::-;3970:7;4030:4;4010:16;;3992:15;:34;;;;:::i;:::-;3991:43;;;;:::i;:::-;3984:50;;3888:151;;;:::o;8988:2199::-;9074:12;9093:21;9117:32;9142:6;9117:24;:32::i;:::-;9093:56;;9179:16;:23;9196:5;9179:23;;;;;;;;;;;;;;;;9162:13;:40;;9154:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;9255:29;9294:20;:27;9315:5;9294:27;;;;;;;;;;;;;;;;;;;;;;;;;9293:28;:58;;;;;9326:20;:25;9347:3;9326:25;;;;;;;;;;;;;;;;;;;;;;;;;9325:26;9293:58;:73;;;;;9355:11;;;;;;;;;;9293:73;9289:1685;;;9374:18;9411:3;9395:13;:19;;;;:::i;:::-;9374:40;;9473:1;9460:10;:14;;;;:::i;:::-;9444:13;:30;;;;:::i;:::-;9420:54;;9533:1;9520:10;:14;;;;:::i;:::-;9480:36;;:54;;;;;;;:::i;:::-;;;;;;;;9610:26;9712:36;;9699:4;9685:10;9646:36;;:49;;;;:::i;:::-;9645:58;;;;:::i;:::-;9644:104;;;;:::i;:::-;9610:138;;9815:4;9793:18;9774:16;;:37;;;;:::i;:::-;9773:46;;;;:::i;:::-;9754:16;:65;;;;9862:10;9827:16;:31;9844:13;9827:31;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;9880:20;9911:6;9906:557;9923:17;:24;;;;9919:1;:28;9906:557;;;10223:18;10244:16;:38;10261:17;10279:1;10261:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10244:38;;;;;;;;;;;;;;;;10223:59;;10289:18;10333;10325:4;10312:10;:17;;;;:::i;:::-;10311:40;;;;:::i;:::-;10289:63;;10400:10;10359:16;:38;10376:17;10394:1;10376:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10359:38;;;;;;;;;;;;;;;:51;;;;10446:10;10433;:23;;;;:::i;:::-;10417:39;;;;;:::i;:::-;;;9954:509;;9949:3;;;;;:::i;:::-;;;;9906:557;;;;10656:1;10645:10;:12;;;;:::i;:::-;10630;:27;;;;:::i;:::-;10607:19;;:50;;;;;;;:::i;:::-;;;;;;;;9368:1295;;;9289:1685;;;10679:20;:27;10700:5;10679:27;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;;10711:20;:25;10732:3;10711:25;;;;;;;;;;;;;;;;;;;;;;;;;10710:26;10679:57;10675:121;;;10783:13;10743:36;;:53;;;;;;;:::i;:::-;;;;;;;;10675:121;10807:20;:27;10828:5;10807:27;;;;;;;;;;;;;;;;;;;;;;;;;10806:28;:57;;;;;10838:20;:25;10859:3;10838:25;;;;;;;;;;;;;;;;;;;;;;;;;10806:57;10802:121;;;10910:13;10870:36;;:53;;;;;;;:::i;:::-;;;;;;;;10802:121;10955:13;10931:37;;9289:1685;11005:21;10980:16;:21;10997:3;10980:21;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;11058:13;11031:16;:23;11048:5;11031:23;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;11099:3;11083:28;;11092:5;11083:28;;;11104:6;11083:28;;;;;;:::i;:::-;;;;;;;;11121:43;11138:5;11145:3;11150:13;11121:43;;;;;;;;:::i;:::-;;;;;;;;11178:4;11171:11;;;;8988:2199;;;;;:::o;4255:151::-;4337:7;4385:16;;4377:4;4359:15;:22;;;;:::i;:::-;4358:43;;;;:::i;:::-;4351:50;;4255:151;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:118::-;4893:24;4911:5;4893:24;:::i;:::-;4888:3;4881:37;4806:118;;:::o;4930:222::-;5023:4;5061:2;5050:9;5046:18;5038:26;;5074:71;5142:1;5131:9;5127:17;5118:6;5074:71;:::i;:::-;4930:222;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:323::-;6240:6;6289:2;6277:9;6268:7;6264:23;6260:32;6257:119;;;6295:79;;:::i;:::-;6257:119;6415:1;6440:50;6482:7;6473:6;6462:9;6458:22;6440:50;:::i;:::-;6430:60;;6386:114;6184:323;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:225::-;7133:34;7129:1;7121:6;7117:14;7110:58;7202:8;7197:2;7189:6;7185:15;7178:33;6993:225;:::o;7224:366::-;7366:3;7387:67;7451:2;7446:3;7387:67;:::i;:::-;7380:74;;7463:93;7552:3;7463:93;:::i;:::-;7581:2;7576:3;7572:12;7565:19;;7224:366;;;:::o;7596:419::-;7762:4;7800:2;7789:9;7785:18;7777:26;;7849:9;7843:4;7839:20;7835:1;7824:9;7820:17;7813:47;7877:131;8003:4;7877:131;:::i;:::-;7869:139;;7596:419;;;:::o;8021:180::-;8069:77;8066:1;8059:88;8166:4;8163:1;8156:15;8190:4;8187:1;8180:15;8207:191;8247:4;8267:20;8285:1;8267:20;:::i;:::-;8262:25;;8301:20;8319:1;8301:20;:::i;:::-;8296:25;;8340:1;8337;8334:8;8331:34;;;8345:18;;:::i;:::-;8331:34;8390:1;8387;8383:9;8375:17;;8207:191;;;;:::o;8404:240::-;8544:34;8540:1;8532:6;8528:14;8521:58;8613:23;8608:2;8600:6;8596:15;8589:48;8404:240;:::o;8650:366::-;8792:3;8813:67;8877:2;8872:3;8813:67;:::i;:::-;8806:74;;8889:93;8978:3;8889:93;:::i;:::-;9007:2;9002:3;8998:12;8991:19;;8650:366;;;:::o;9022:419::-;9188:4;9226:2;9215:9;9211:18;9203:26;;9275:9;9269:4;9265:20;9261:1;9250:9;9246:17;9239:47;9303:131;9429:4;9303:131;:::i;:::-;9295:139;;9022:419;;;:::o;9447:220::-;9587:34;9583:1;9575:6;9571:14;9564:58;9656:3;9651:2;9643:6;9639:15;9632:28;9447:220;:::o;9673:366::-;9815:3;9836:67;9900:2;9895:3;9836:67;:::i;:::-;9829:74;;9912:93;10001:3;9912:93;:::i;:::-;10030:2;10025:3;10021:12;10014:19;;9673:366;;;:::o;10045:419::-;10211:4;10249:2;10238:9;10234:18;10226:26;;10298:9;10292:4;10288:20;10284:1;10273:9;10269:17;10262:47;10326:131;10452:4;10326:131;:::i;:::-;10318:139;;10045:419;;;:::o;10470:297::-;10610:34;10606:1;10598:6;10594:14;10587:58;10679:34;10674:2;10666:6;10662:15;10655:59;10748:11;10743:2;10735:6;10731:15;10724:36;10470:297;:::o;10773:366::-;10915:3;10936:67;11000:2;10995:3;10936:67;:::i;:::-;10929:74;;11012:93;11101:3;11012:93;:::i;:::-;11130:2;11125:3;11121:12;11114:19;;10773:366;;;:::o;11145:419::-;11311:4;11349:2;11338:9;11334:18;11326:26;;11398:9;11392:4;11388:20;11384:1;11373:9;11369:17;11362:47;11426:131;11552:4;11426:131;:::i;:::-;11418:139;;11145:419;;;:::o;11570:220::-;11710:34;11706:1;11698:6;11694:14;11687:58;11779:3;11774:2;11766:6;11762:15;11755:28;11570:220;:::o;11796:366::-;11938:3;11959:67;12023:2;12018:3;11959:67;:::i;:::-;11952:74;;12035:93;12124:3;12035:93;:::i;:::-;12153:2;12148:3;12144:12;12137:19;;11796:366;;;:::o;12168:419::-;12334:4;12372:2;12361:9;12357:18;12349:26;;12421:9;12415:4;12411:20;12407:1;12396:9;12392:17;12385:47;12449:131;12575:4;12449:131;:::i;:::-;12441:139;;12168:419;;;:::o;12593:305::-;12633:3;12652:20;12670:1;12652:20;:::i;:::-;12647:25;;12686:20;12704:1;12686:20;:::i;:::-;12681:25;;12840:1;12772:66;12768:74;12765:1;12762:81;12759:107;;;12846:18;;:::i;:::-;12759:107;12890:1;12887;12883:9;12876:16;;12593:305;;;;:::o;12904:180::-;12952:77;12949:1;12942:88;13049:4;13046:1;13039:15;13073:4;13070:1;13063:15;13090:180;13138:77;13135:1;13128:88;13235:4;13232:1;13225:15;13259:4;13256:1;13249:15;13276:233;13315:3;13338:24;13356:5;13338:24;:::i;:::-;13329:33;;13384:66;13377:5;13374:77;13371:103;;;13454:18;;:::i;:::-;13371:103;13501:1;13494:5;13490:13;13483:20;;13276:233;;;:::o;13515:224::-;13655:34;13651:1;13643:6;13639:14;13632:58;13724:7;13719:2;13711:6;13707:15;13700:32;13515:224;:::o;13745:366::-;13887:3;13908:67;13972:2;13967:3;13908:67;:::i;:::-;13901:74;;13984:93;14073:3;13984:93;:::i;:::-;14102:2;14097:3;14093:12;14086:19;;13745:366;;;:::o;14117:419::-;14283:4;14321:2;14310:9;14306:18;14298:26;;14370:9;14364:4;14360:20;14356:1;14345:9;14341:17;14334:47;14398:131;14524:4;14398:131;:::i;:::-;14390:139;;14117:419;;;:::o;14542:348::-;14582:7;14605:20;14623:1;14605:20;:::i;:::-;14600:25;;14639:20;14657:1;14639:20;:::i;:::-;14634:25;;14827:1;14759:66;14755:74;14752:1;14749:81;14744:1;14737:9;14730:17;14726:105;14723:131;;;14834:18;;:::i;:::-;14723:131;14882:1;14879;14875:9;14864:20;;14542:348;;;;:::o;14896:180::-;14944:77;14941:1;14934:88;15041:4;15038:1;15031:15;15065:4;15062:1;15055:15;15082:185;15122:1;15139:20;15157:1;15139:20;:::i;:::-;15134:25;;15173:20;15191:1;15173:20;:::i;:::-;15168:25;;15212:1;15202:35;;15217:18;;:::i;:::-;15202:35;15259:1;15256;15252:9;15247:14;;15082:185;;;;:::o;15273:228::-;15413:34;15409:1;15401:6;15397:14;15390:58;15482:11;15477:2;15469:6;15465:15;15458:36;15273:228;:::o;15507:366::-;15649:3;15670:67;15734:2;15729:3;15670:67;:::i;:::-;15663:74;;15746:93;15835:3;15746:93;:::i;:::-;15864:2;15859:3;15855:12;15848:19;;15507:366;;;:::o;15879:419::-;16045:4;16083:2;16072:9;16068:18;16060:26;;16132:9;16126:4;16122:20;16118:1;16107:9;16103:17;16096:47;16160:131;16286:4;16160:131;:::i;:::-;16152:139;;15879:419;;;:::o;16304:442::-;16453:4;16491:2;16480:9;16476:18;16468:26;;16504:71;16572:1;16561:9;16557:17;16548:6;16504:71;:::i;:::-;16585:72;16653:2;16642:9;16638:18;16629:6;16585:72;:::i;:::-;16667;16735:2;16724:9;16720:18;16711:6;16667:72;:::i;:::-;16304:442;;;;;;:::o

Swarm Source

ipfs://0f651931b1592cf7b704660139d53f526782979d2ad178c4a0ec8fb73e671a4c
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.