ERC-20
Source Code
Overview
Max Total Supply
10,000,000,000 QLIFE
Holders
3,630
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
SimpleToken
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/**
*Submitted for verification at Arbiscan.io on 2024-03-22
*/
// SPDX-License-Identifier: MIT
/**
* VladimirGav
* GitHub Website: https://vladimirgav.github.io/
* GitHub: https://github.com/VladimirGav
*/
/**
* It is example of a Token Buy, Sell, Transfer Tax from VladimirGav
*/
pragma solidity >=0.8.19;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function allowance(address owner, address spender) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
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);
}
// @dev Wrappers over Solidity's arithmetic operations with added overflow * checks.
library SafeMath {
// Counterpart to Solidity's `+` operator.
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
// Counterpart to Solidity's `-` operator.
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
// Counterpart to Solidity's `-` operator.
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
// Counterpart to Solidity's `*` operator.
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
// Counterpart to Solidity's `/` operator.
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
// Counterpart to Solidity's `/` operator.
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
// Counterpart to Solidity's `%` operator.
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
// Counterpart to Solidity's `%` operator.
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
constructor () { }
function _msgSender() internal view returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "onlyOwner");
_;
}
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
contract SwapBlock is Ownable {
using SafeMath for uint256;
mapping(address=>bool) addressesLiquidity;
mapping(address=>bool) addressesIgnoreTax;
uint256[] private percentsTaxBuy;
uint256[] private percentsTaxSell;
uint256[] private percentsTaxTransfer;
address[] private addressesTaxBuy;
address[] private addressesTaxSell;
address[] private addressesTaxTransfer;
function getTaxSum(uint256[] memory _percentsTax) internal pure returns (uint256) {
uint256 TaxSum = 0;
for (uint i; i < _percentsTax.length; i++) {
TaxSum = TaxSum.add(_percentsTax[i]);
}
return TaxSum;
}
function getPercentsTaxBuy() public view returns (uint256[] memory) {
return percentsTaxBuy;
}
function getPercentsTaxSell() public view returns (uint256[] memory) {
return percentsTaxSell;
}
function getPercentsTaxTransfer() public view returns (uint256[] memory) {
return percentsTaxTransfer;
}
function getAddressesTaxBuy() public view returns (address[] memory) {
return addressesTaxBuy;
}
function getAddressesTaxSell() public view returns (address[] memory) {
return addressesTaxSell;
}
function getAddressesTaxTransfer() public view returns (address[] memory) {
return addressesTaxTransfer;
}
function checkAddressLiquidity(address _addressLiquidity) external view returns (bool) {
return addressesLiquidity[_addressLiquidity];
}
function addAddressLiquidity(address _addressLiquidity) public onlyOwner {
addressesLiquidity[_addressLiquidity] = true;
}
function removeAddressLiquidity (address _addressLiquidity) public onlyOwner {
addressesLiquidity[_addressLiquidity] = false;
}
function checkAddressIgnoreTax(address _addressIgnoreTax) external view returns (bool) {
return addressesIgnoreTax[_addressIgnoreTax];
}
function addAddressIgnoreTax(address _addressIgnoreTax) public onlyOwner {
addressesIgnoreTax[_addressIgnoreTax] = true;
}
function removeAddressIgnoreTax (address _addressIgnoreTax) public onlyOwner {
addressesIgnoreTax[_addressIgnoreTax] = false;
}
function setTaxBuy(uint256[] memory _percentsTaxBuy, address[] memory _addressesTaxBuy) public onlyOwner {
require(_percentsTaxBuy.length == _addressesTaxBuy.length, "_percentsTaxBuy.length != _addressesTaxBuy.length");
uint256 TaxSum = getTaxSum(_percentsTaxBuy);
require(TaxSum <= 1, "TaxSum > 1"); // Set the maximum tax limit
percentsTaxBuy = _percentsTaxBuy;
addressesTaxBuy = _addressesTaxBuy;
}
function setTaxSell(uint256[] memory _percentsTaxSell, address[] memory _addressesTaxSell) public onlyOwner {
require(_percentsTaxSell.length == _addressesTaxSell.length, "_percentsTaxSell.length != _addressesTaxSell.length");
uint256 TaxSum = getTaxSum(_percentsTaxSell);
require(TaxSum <= 1, "TaxSum > 1"); // Set the maximum tax limit
percentsTaxSell = _percentsTaxSell;
addressesTaxSell = _addressesTaxSell;
}
function setTaxTransfer(uint256[] memory _percentsTaxTransfer, address[] memory _addressesTaxTransfer) public onlyOwner {
require(_percentsTaxTransfer.length == _addressesTaxTransfer.length, "_percentsTaxTransfer.length != _addressesTaxTransfer.length");
uint256 TaxSum = getTaxSum(_percentsTaxTransfer);
require(TaxSum <= 1, "TaxSum > 1"); // Set the maximum tax limit
percentsTaxTransfer = _percentsTaxTransfer;
addressesTaxTransfer = _addressesTaxTransfer;
}
function showTaxBuy() public view returns (uint[] memory, address[] memory) {
return (percentsTaxBuy, addressesTaxBuy);
}
function showTaxSell() public view returns (uint[] memory, address[] memory) {
return (percentsTaxSell, addressesTaxSell);
}
function showTaxTransfer() public view returns (uint[] memory, address[] memory) {
return (percentsTaxTransfer, addressesTaxTransfer);
}
function showTaxBuySum() public view returns (uint) {
return getTaxSum(percentsTaxBuy);
}
function showTaxSellSum() public view returns (uint) {
return getTaxSum(percentsTaxSell);
}
function showTaxTransferSum() public view returns (uint) {
return getTaxSum(percentsTaxTransfer);
}
}
contract SimpleToken is Context, Ownable, IERC20, SwapBlock {
using SafeMath for uint256;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
uint8 public _decimals;
string public _symbol;
string public _name;
constructor() {
_name = "QuestLife";
_symbol = "QLIFE";
_decimals = 18;
_totalSupply = 10000000000 * 1000000000000000000;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
function getOwner() external view returns (address) {
return owner();
}
function decimals() external view returns (uint8) {
return _decimals;
}
function symbol() external view returns (string memory) {
return _symbol;
}
function name() external view returns (string memory) {
return _name;
}
function totalSupply() external view returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) external view returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) external returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function allowance(address addressOwner, address spender) external view returns (uint256) {
return _allowances[addressOwner][spender];
}
function approve(address spender, uint256 amount) external returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "Transfer amount exceeds allowance"));
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
_approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
_approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "Decreased allowance below zero"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) internal {
require(sender != address(0), "Transfer from the zero address");
require(recipient != address(0), "Transfer to the zero address");
require(amount <= _balances[sender], "Transfer amount exceeds balance");
_balances[sender] = _balances[sender].sub(amount);
if (addressesIgnoreTax[sender] || addressesIgnoreTax[recipient]) {
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
} else {
uint256 amountRecipient = amount;
uint256 amountTax = 0;
// checkAddressIgnoreTax
if (addressesLiquidity[sender] && SwapBlock.getPercentsTaxBuy().length > 0) {
for (uint i; i < SwapBlock.getPercentsTaxBuy().length; i++) {
amountTax = amount.div(100).mul(SwapBlock.getPercentsTaxBuy()[i]);
amountRecipient = amountRecipient.sub(amountTax);
_balances[SwapBlock.getAddressesTaxBuy()[i]] = SafeMath.add(_balances[SwapBlock.getAddressesTaxBuy()[i]], amountTax);
emit Transfer(sender, SwapBlock.getAddressesTaxBuy()[i], amountTax);
}
_balances[recipient] = _balances[recipient].add(amountRecipient);
emit Transfer(sender, recipient, amountRecipient);
} else if (addressesLiquidity[recipient] && SwapBlock.getPercentsTaxSell().length > 0) {
for (uint i; i < SwapBlock.getPercentsTaxSell().length; i++) {
amountTax = amount.div(100).mul(SwapBlock.getPercentsTaxSell()[i]);
amountRecipient = amountRecipient.sub(amountTax);
_balances[SwapBlock.getAddressesTaxSell()[i]] = SafeMath.add(_balances[SwapBlock.getAddressesTaxSell()[i]], amountTax);
emit Transfer(sender, SwapBlock.getAddressesTaxSell()[i], amountTax);
}
_balances[recipient] = _balances[recipient].add(amountRecipient);
emit Transfer(sender, recipient, amountRecipient);
} else if (SwapBlock.getPercentsTaxTransfer().length > 0) {
for (uint i; i < SwapBlock.getPercentsTaxTransfer().length; i++) {
amountTax = amount.div(100).mul(SwapBlock.getPercentsTaxTransfer()[i]);
amountRecipient = amountRecipient.sub(amountTax);
_balances[SwapBlock.getAddressesTaxTransfer()[i]] = SafeMath.add(_balances[SwapBlock.getAddressesTaxTransfer()[i]], amountTax);
emit Transfer(sender, SwapBlock.getAddressesTaxTransfer()[i], amountTax);
}
_balances[recipient] = _balances[recipient].add(amountRecipient);
emit Transfer(sender, recipient, amountRecipient);
} else {
_balances[recipient] = _balances[recipient].add(amountRecipient);
emit Transfer(sender, recipient, amountRecipient);
}
}
}
function _approve(address addressOwner, address spender, uint256 amount) internal {
require(addressOwner != address(0), "Approve from the zero address");
require(spender != address(0), "Approve to the zero address");
_allowances[addressOwner][spender] = amount;
emit Approval(addressOwner, spender, amount);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addressIgnoreTax","type":"address"}],"name":"addAddressIgnoreTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addressLiquidity","type":"address"}],"name":"addAddressLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addressOwner","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":[{"internalType":"address","name":"_addressIgnoreTax","type":"address"}],"name":"checkAddressIgnoreTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addressLiquidity","type":"address"}],"name":"checkAddressLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAddressesTaxBuy","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressesTaxSell","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressesTaxTransfer","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPercentsTaxBuy","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPercentsTaxSell","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPercentsTaxTransfer","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addressIgnoreTax","type":"address"}],"name":"removeAddressIgnoreTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addressLiquidity","type":"address"}],"name":"removeAddressLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_percentsTaxBuy","type":"uint256[]"},{"internalType":"address[]","name":"_addressesTaxBuy","type":"address[]"}],"name":"setTaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_percentsTaxSell","type":"uint256[]"},{"internalType":"address[]","name":"_addressesTaxSell","type":"address[]"}],"name":"setTaxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_percentsTaxTransfer","type":"uint256[]"},{"internalType":"address[]","name":"_addressesTaxTransfer","type":"address[]"}],"name":"setTaxTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"showTaxBuy","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showTaxBuySum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showTaxSell","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showTaxSellSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showTaxTransfer","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showTaxTransferSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561000f575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600981526851756573744c69666560b81b6020820152600e9061007d90826101b2565b50604080518082019091526005815264514c49464560d81b6020820152600d906100a790826101b2565b50600c805460ff191660121790556b204fce5e3e25026110000000600b819055335f8181526009602052604080822084905551919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161010d9190815260200190565b60405180910390a3610271565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061014257607f821691505b60208210810361016057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101ad57805f5260205f20601f840160051c8101602085101561018b5750805b601f840160051c820191505b818110156101aa575f8155600101610197565b50505b505050565b81516001600160401b038111156101cb576101cb61011a565b6101df816101d9845461012e565b84610166565b602080601f831160018114610212575f84156101fb5750858301515b5f19600386901b1c1916600185901b178555610269565b5f85815260208120601f198616915b8281101561024057888601518255948401946001909101908401610221565b508582101561025d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b61211a8061027e5f395ff3fe608060405234801561000f575f80fd5b5060043610610234575f3560e01c8063893d20e811610135578063baaacb9b116100b4578063dd62ed3e11610079578063dd62ed3e146104b0578063e508c50d146104e8578063f2fde38b146104fb578063fc3b96c51461050e578063ff90e1e214610521575f80fd5b8063baaacb9b14610467578063bdc34bec1461047a578063c34409dc14610482578063c9e1687514610495578063d28d8852146104a8575f80fd5b8063984b8c99116100fa578063984b8c991461041e578063a457c2d714610431578063a9059cbb14610444578063b00751c314610457578063b09f12661461045f575f80fd5b8063893d20e8146103af5780638da5cb5b146103d357806394bd94f4146103e357806395d89b411461040e57806397c854f914610416575f80fd5b806339509351116101c15780636313a8fb116101865780636313a8fb146103675780636b3e6f651461036f5780636bbf99fb1461037757806370a082311461037f578063715018a6146103a7575f80fd5b806339509351146103195780634461365e1461032c578063464bc81d146103415780634813da72146103575780635f5ee0ac1461035f575f80fd5b806318160ddd1161020757806318160ddd146102b957806323b872dd146102cb5780632edb8b77146102de578063313ce567146102f357806332424aa31461030c575f80fd5b806306fdde0314610238578063095ea7b3146102565780630a6cea9a146102795780631406bf0a146102a4575b5f80fd5b610240610529565b60405161024d9190611c5d565b60405180910390f35b610269610264366004611cad565b6105b9565b604051901515815260200161024d565b610269610287366004611cd5565b6001600160a01b03165f9081526002602052604090205460ff1690565b6102ac6105cf565b60405161024d9190611d31565b600b545b60405190815260200161024d565b6102696102d9366004611d43565b61062e565b6102f16102ec366004611e57565b610695565b005b600c5460ff165b60405160ff909116815260200161024d565b600c546102fa9060ff1681565b610269610327366004611cad565b610798565b6103346107cd565b60405161024d9190611f39565b610349610822565b60405161024d929190611f4b565b6103346108db565b61034961092f565b6103346109e4565b6102ac610a38565b610349610a96565b6102bd61038d366004611cd5565b6001600160a01b03165f9081526009602052604090205490565b6102f1610b4b565b5f546001600160a01b03165b6040516001600160a01b03909116815260200161024d565b5f546001600160a01b03166103bb565b6102696103f1366004611cd5565b6001600160a01b03165f9081526001602052604090205460ff1690565b610240610bc1565b6102bd610bd0565b6102f161042c366004611e57565b610c28565b61026961043f366004611cad565b610d10565b610269610452366004611cad565b610d7c565b6102bd610d88565b610240610dde565b6102f1610475366004611e57565b610e6a565b6102ac610f54565b6102f1610490366004611cd5565b610fb2565b6102f16104a3366004611cd5565b610ffb565b610240611044565b6102bd6104be366004611f6f565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b6102f16104f6366004611cd5565b611051565b6102f1610509366004611cd5565b6110a0565b6102f161051c366004611cd5565b6110d5565b6102bd611121565b6060600e805461053890611fa0565b80601f016020809104026020016040519081016040528092919081815260200182805461056490611fa0565b80156105af5780601f10610586576101008083540402835291602001916105af565b820191905f5260205f20905b81548152906001019060200180831161059257829003601f168201915b5050505050905090565b5f6105c5338484611177565b5060015b92915050565b606060068054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610607575050505050905090565b5f61063a848484611284565b61068b8433610686856040518060600160405280602181526020016120a4602191396001600160a01b038a165f908152600a6020908152604080832033845290915290205491906118dc565b611177565b5060019392505050565b5f546001600160a01b031633146106c75760405162461bcd60e51b81526004016106be90611fd8565b60405180910390fd5b805182511461073e5760405162461bcd60e51b815260206004820152603b60248201527f5f70657263656e74735461785472616e736665722e6c656e67746820213d205f60448201527f6164647265737365735461785472616e736665722e6c656e677468000000000060648201526084016106be565b5f61074883611914565b9050600181111561076b5760405162461bcd60e51b81526004016106be90611ffb565b825161077e906005906020860190611bad565b508151610792906008906020850190611bf6565b50505050565b335f818152600a602090815260408083206001600160a01b038716845290915281205490916105c5918590610686908661195e565b606060058054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f20905b815481526020019060010190808311610805575050505050905090565b606080600360068180548060200260200160405190810160405280929190818152602001828054801561087257602002820191905f5260205f20905b81548152602001906001019080831161085e575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156108cc57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108ae575b50505050509050915091509091565b606060038054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f2090815481526020019060010190808311610805575050505050905090565b606080600560088180548060200260200160405190810160405280929190818152602001828054801561087257602002820191905f5260205f209081548152602001906001019080831161085e5750505050509150808054806020026020016040519081016040528092919081815260200182805480156108cc57602002820191905f5260205f209081546001600160a01b031681526001909101906020018083116108ae5750505050509050915091509091565b606060048054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f2090815481526020019060010190808311610805575050505050905090565b606060088054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610607575050505050905090565b606080600460078180548060200260200160405190810160405280929190818152602001828054801561087257602002820191905f5260205f209081548152602001906001019080831161085e5750505050509150808054806020026020016040519081016040528092919081815260200182805480156108cc57602002820191905f5260205f209081546001600160a01b031681526001909101906020018083116108ae5750505050509050915091509091565b5f546001600160a01b03163314610b745760405162461bcd60e51b81526004016106be90611fd8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b905090565b6060600d805461053890611fa0565b5f610bbc6005805480602002602001604051908101604052809291908181526020018280548015610c1e57602002820191905f5260205f20905b815481526020019060010190808311610c0a575b5050505050611914565b5f546001600160a01b03163314610c515760405162461bcd60e51b81526004016106be90611fd8565b8051825114610cbc5760405162461bcd60e51b815260206004820152603160248201527f5f70657263656e74735461784275792e6c656e67746820213d205f61646472656044820152700e6e6cae6a8c2f084eaf25cd8cadccee8d607b1b60648201526084016106be565b5f610cc683611914565b90506001811115610ce95760405162461bcd60e51b81526004016106be90611ffb565b8251610cfc906003906020860190611bad565b508151610792906006906020850190611bf6565b604080518082018252601e81527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000602080830191909152335f818152600a83528481206001600160a01b03881682529092529281205490926105c59290918691610686919087906118dc565b5f6105c5338484611284565b5f610bbc6004805480602002602001604051908101604052809291908181526020018280548015610c1e57602002820191905f5260205f2090815481526020019060010190808311610c0a575050505050611914565b600d8054610deb90611fa0565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1790611fa0565b8015610e625780601f10610e3957610100808354040283529160200191610e62565b820191905f5260205f20905b815481529060010190602001808311610e4557829003601f168201915b505050505081565b5f546001600160a01b03163314610e935760405162461bcd60e51b81526004016106be90611fd8565b8051825114610f005760405162461bcd60e51b815260206004820152603360248201527f5f70657263656e747354617853656c6c2e6c656e67746820213d205f616464726044820152720cae6e6cae6a8c2f0a6cad8d85cd8cadccee8d606b1b60648201526084016106be565b5f610f0a83611914565b90506001811115610f2d5760405162461bcd60e51b81526004016106be90611ffb565b8251610f40906004906020860190611bad565b508151610792906007906020850190611bf6565b606060078054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610607575050505050905090565b5f546001600160a01b03163314610fdb5760405162461bcd60e51b81526004016106be90611fd8565b6001600160a01b03165f908152600160205260409020805460ff19169055565b5f546001600160a01b031633146110245760405162461bcd60e51b81526004016106be90611fd8565b6001600160a01b03165f908152600260205260409020805460ff19169055565b600e8054610deb90611fa0565b5f546001600160a01b0316331461107a5760405162461bcd60e51b81526004016106be90611fd8565b6001600160a01b03165f908152600160208190526040909120805460ff19169091179055565b5f546001600160a01b031633146110c95760405162461bcd60e51b81526004016106be90611fd8565b6110d2816119c3565b50565b5f546001600160a01b031633146110fe5760405162461bcd60e51b81526004016106be90611fd8565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b5f610bbc6003805480602002602001604051908101604052809291908181526020018280548015610c1e57602002820191905f5260205f2090815481526020019060010190808311610c0a575050505050611914565b6001600160a01b0383166111cd5760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f206164647265737300000060448201526064016106be565b6001600160a01b0382166112235760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016106be565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166112da5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016106be565b6001600160a01b0382166113305760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016106be565b6001600160a01b0383165f908152600960205260409020548111156113975760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016106be565b6001600160a01b0383165f908152600960205260409020546113b99082611a81565b6001600160a01b0384165f9081526009602090815260408083209390935560029052205460ff168061140257506001600160a01b0382165f9081526002602052604090205460ff165b15611469576001600160a01b0382165f90815260096020526040902054611429908261195e565b6001600160a01b038084165f8181526009602052604090819020939093559151908516905f805160206120c5833981519152906112779085815260200190565b6001600160a01b0383165f9081526001602052604081205482919060ff16801561149a57505f6114976108db565b51115b15611663575f5b6114a96108db565b518110156115f3576114ef6114bc6108db565b82815181106114cd576114cd61201f565b60200260200101516114e9606487611ac290919063ffffffff16565b90611b03565b91506114fb8383611a81565b925061154a60095f61150b6105cf565b848151811061151c5761151c61201f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20548361195e565b60095f6115556105cf565b84815181106115665761156661201f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055506115996105cf565b81815181106115aa576115aa61201f565b60200260200101516001600160a01b0316866001600160a01b03165f805160206120c5833981519152846040516115e391815260200190565b60405180910390a36001016114a1565b506001600160a01b0384165f90815260096020526040902054611616908361195e565b6001600160a01b038086165f8181526009602052604090819020939093559151908716905f805160206120c5833981519152906116569086815260200190565b60405180910390a36118d5565b6001600160a01b0384165f9081526001602052604090205460ff16801561169157505f61168e6109e4565b51115b15611778575f5b6116a06109e4565b518110156115f3576116b36114bc6109e4565b91506116bf8383611a81565b92506116cf60095f61150b610f54565b60095f6116da610f54565b84815181106116eb576116eb61201f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f208190555061171e610f54565b818151811061172f5761172f61201f565b60200260200101516001600160a01b0316866001600160a01b03165f805160206120c58339815191528460405161176891815260200190565b60405180910390a3600101611698565b5f6117816107cd565b51111561186a575f5b6117926107cd565b518110156115f3576117a56114bc6107cd565b91506117b18383611a81565b92506117c160095f61150b610a38565b60095f6117cc610a38565b84815181106117dd576117dd61201f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550611810610a38565b81815181106118215761182161201f565b60200260200101516001600160a01b0316866001600160a01b03165f805160206120c58339815191528460405161185a91815260200190565b60405180910390a360010161178a565b6001600160a01b0384165f9081526009602052604090205461188c908361195e565b6001600160a01b038086165f8181526009602052604090819020939093559151908716905f805160206120c5833981519152906118cc9086815260200190565b60405180910390a35b5050505050565b5f81848411156118ff5760405162461bcd60e51b81526004016106be9190611c5d565b505f61190b8486612047565b95945050505050565b5f80805b83518110156119575761194d8482815181106119365761193661201f565b60200260200101518361195e90919063ffffffff16565b9150600101611918565b5092915050565b5f8061196a838561205a565b9050838110156119bc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106be565b9392505050565b6001600160a01b038116611a285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106be565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6119bc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118dc565b5f6119bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b81565b5f825f03611b1257505f6105c9565b5f611b1d838561206d565b905082611b2a8583612084565b146119bc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106be565b5f8183611ba15760405162461bcd60e51b81526004016106be9190611c5d565b505f61190b8486612084565b828054828255905f5260205f20908101928215611be6579160200282015b82811115611be6578251825591602001919060010190611bcb565b50611bf2929150611c49565b5090565b828054828255905f5260205f20908101928215611be6579160200282015b82811115611be657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611c14565b5b80821115611bf2575f8155600101611c4a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611ca8575f80fd5b919050565b5f8060408385031215611cbe575f80fd5b611cc783611c92565b946020939093013593505050565b5f60208284031215611ce5575f80fd5b6119bc82611c92565b5f815180845260208085019450602084015f5b83811015611d265781516001600160a01b031687529582019590820190600101611d01565b509495945050505050565b602081525f6119bc6020830184611cee565b5f805f60608486031215611d55575f80fd5b611d5e84611c92565b9250611d6c60208501611c92565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611db957611db9611d7c565b604052919050565b5f67ffffffffffffffff821115611dda57611dda611d7c565b5060051b60200190565b5f82601f830112611df3575f80fd5b81356020611e08611e0383611dc1565b611d90565b8083825260208201915060208460051b870101935086841115611e29575f80fd5b602086015b84811015611e4c57611e3f81611c92565b8352918301918301611e2e565b509695505050505050565b5f8060408385031215611e68575f80fd5b823567ffffffffffffffff80821115611e7f575f80fd5b818501915085601f830112611e92575f80fd5b81356020611ea2611e0383611dc1565b82815260059290921b84018101918181019089841115611ec0575f80fd5b948201945b83861015611ede57853582529482019490820190611ec5565b96505086013592505080821115611ef3575f80fd5b50611f0085828601611de4565b9150509250929050565b5f815180845260208085019450602084015f5b83811015611d2657815187529582019590820190600101611f1d565b602081525f6119bc6020830184611f0a565b604081525f611f5d6040830185611f0a565b828103602084015261190b8185611cee565b5f8060408385031215611f80575f80fd5b611f8983611c92565b9150611f9760208401611c92565b90509250929050565b600181811c90821680611fb457607f821691505b602082108103611fd257634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526009908201526837b7363ca7bbb732b960b91b604082015260600190565b6020808252600a908201526954617853756d203e203160b01b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156105c9576105c9612033565b808201808211156105c9576105c9612033565b80820281158282048414176105c9576105c9612033565b5f8261209e57634e487b7160e01b5f52601260045260245ffd5b50049056fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220295d773789aa4980a90e5df13d1d734a49b1ed9dfcb3d6880d75bfc19ddad79f64736f6c63430008190033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610234575f3560e01c8063893d20e811610135578063baaacb9b116100b4578063dd62ed3e11610079578063dd62ed3e146104b0578063e508c50d146104e8578063f2fde38b146104fb578063fc3b96c51461050e578063ff90e1e214610521575f80fd5b8063baaacb9b14610467578063bdc34bec1461047a578063c34409dc14610482578063c9e1687514610495578063d28d8852146104a8575f80fd5b8063984b8c99116100fa578063984b8c991461041e578063a457c2d714610431578063a9059cbb14610444578063b00751c314610457578063b09f12661461045f575f80fd5b8063893d20e8146103af5780638da5cb5b146103d357806394bd94f4146103e357806395d89b411461040e57806397c854f914610416575f80fd5b806339509351116101c15780636313a8fb116101865780636313a8fb146103675780636b3e6f651461036f5780636bbf99fb1461037757806370a082311461037f578063715018a6146103a7575f80fd5b806339509351146103195780634461365e1461032c578063464bc81d146103415780634813da72146103575780635f5ee0ac1461035f575f80fd5b806318160ddd1161020757806318160ddd146102b957806323b872dd146102cb5780632edb8b77146102de578063313ce567146102f357806332424aa31461030c575f80fd5b806306fdde0314610238578063095ea7b3146102565780630a6cea9a146102795780631406bf0a146102a4575b5f80fd5b610240610529565b60405161024d9190611c5d565b60405180910390f35b610269610264366004611cad565b6105b9565b604051901515815260200161024d565b610269610287366004611cd5565b6001600160a01b03165f9081526002602052604090205460ff1690565b6102ac6105cf565b60405161024d9190611d31565b600b545b60405190815260200161024d565b6102696102d9366004611d43565b61062e565b6102f16102ec366004611e57565b610695565b005b600c5460ff165b60405160ff909116815260200161024d565b600c546102fa9060ff1681565b610269610327366004611cad565b610798565b6103346107cd565b60405161024d9190611f39565b610349610822565b60405161024d929190611f4b565b6103346108db565b61034961092f565b6103346109e4565b6102ac610a38565b610349610a96565b6102bd61038d366004611cd5565b6001600160a01b03165f9081526009602052604090205490565b6102f1610b4b565b5f546001600160a01b03165b6040516001600160a01b03909116815260200161024d565b5f546001600160a01b03166103bb565b6102696103f1366004611cd5565b6001600160a01b03165f9081526001602052604090205460ff1690565b610240610bc1565b6102bd610bd0565b6102f161042c366004611e57565b610c28565b61026961043f366004611cad565b610d10565b610269610452366004611cad565b610d7c565b6102bd610d88565b610240610dde565b6102f1610475366004611e57565b610e6a565b6102ac610f54565b6102f1610490366004611cd5565b610fb2565b6102f16104a3366004611cd5565b610ffb565b610240611044565b6102bd6104be366004611f6f565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b6102f16104f6366004611cd5565b611051565b6102f1610509366004611cd5565b6110a0565b6102f161051c366004611cd5565b6110d5565b6102bd611121565b6060600e805461053890611fa0565b80601f016020809104026020016040519081016040528092919081815260200182805461056490611fa0565b80156105af5780601f10610586576101008083540402835291602001916105af565b820191905f5260205f20905b81548152906001019060200180831161059257829003601f168201915b5050505050905090565b5f6105c5338484611177565b5060015b92915050565b606060068054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610607575050505050905090565b5f61063a848484611284565b61068b8433610686856040518060600160405280602181526020016120a4602191396001600160a01b038a165f908152600a6020908152604080832033845290915290205491906118dc565b611177565b5060019392505050565b5f546001600160a01b031633146106c75760405162461bcd60e51b81526004016106be90611fd8565b60405180910390fd5b805182511461073e5760405162461bcd60e51b815260206004820152603b60248201527f5f70657263656e74735461785472616e736665722e6c656e67746820213d205f60448201527f6164647265737365735461785472616e736665722e6c656e677468000000000060648201526084016106be565b5f61074883611914565b9050600181111561076b5760405162461bcd60e51b81526004016106be90611ffb565b825161077e906005906020860190611bad565b508151610792906008906020850190611bf6565b50505050565b335f818152600a602090815260408083206001600160a01b038716845290915281205490916105c5918590610686908661195e565b606060058054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f20905b815481526020019060010190808311610805575050505050905090565b606080600360068180548060200260200160405190810160405280929190818152602001828054801561087257602002820191905f5260205f20905b81548152602001906001019080831161085e575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156108cc57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108ae575b50505050509050915091509091565b606060038054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f2090815481526020019060010190808311610805575050505050905090565b606080600560088180548060200260200160405190810160405280929190818152602001828054801561087257602002820191905f5260205f209081548152602001906001019080831161085e5750505050509150808054806020026020016040519081016040528092919081815260200182805480156108cc57602002820191905f5260205f209081546001600160a01b031681526001909101906020018083116108ae5750505050509050915091509091565b606060048054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f2090815481526020019060010190808311610805575050505050905090565b606060088054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610607575050505050905090565b606080600460078180548060200260200160405190810160405280929190818152602001828054801561087257602002820191905f5260205f209081548152602001906001019080831161085e5750505050509150808054806020026020016040519081016040528092919081815260200182805480156108cc57602002820191905f5260205f209081546001600160a01b031681526001909101906020018083116108ae5750505050509050915091509091565b5f546001600160a01b03163314610b745760405162461bcd60e51b81526004016106be90611fd8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b905090565b6060600d805461053890611fa0565b5f610bbc6005805480602002602001604051908101604052809291908181526020018280548015610c1e57602002820191905f5260205f20905b815481526020019060010190808311610c0a575b5050505050611914565b5f546001600160a01b03163314610c515760405162461bcd60e51b81526004016106be90611fd8565b8051825114610cbc5760405162461bcd60e51b815260206004820152603160248201527f5f70657263656e74735461784275792e6c656e67746820213d205f61646472656044820152700e6e6cae6a8c2f084eaf25cd8cadccee8d607b1b60648201526084016106be565b5f610cc683611914565b90506001811115610ce95760405162461bcd60e51b81526004016106be90611ffb565b8251610cfc906003906020860190611bad565b508151610792906006906020850190611bf6565b604080518082018252601e81527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000602080830191909152335f818152600a83528481206001600160a01b03881682529092529281205490926105c59290918691610686919087906118dc565b5f6105c5338484611284565b5f610bbc6004805480602002602001604051908101604052809291908181526020018280548015610c1e57602002820191905f5260205f2090815481526020019060010190808311610c0a575050505050611914565b600d8054610deb90611fa0565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1790611fa0565b8015610e625780601f10610e3957610100808354040283529160200191610e62565b820191905f5260205f20905b815481529060010190602001808311610e4557829003601f168201915b505050505081565b5f546001600160a01b03163314610e935760405162461bcd60e51b81526004016106be90611fd8565b8051825114610f005760405162461bcd60e51b815260206004820152603360248201527f5f70657263656e747354617853656c6c2e6c656e67746820213d205f616464726044820152720cae6e6cae6a8c2f0a6cad8d85cd8cadccee8d606b1b60648201526084016106be565b5f610f0a83611914565b90506001811115610f2d5760405162461bcd60e51b81526004016106be90611ffb565b8251610f40906004906020860190611bad565b508151610792906007906020850190611bf6565b606060078054806020026020016040519081016040528092919081815260200182805480156105af57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610607575050505050905090565b5f546001600160a01b03163314610fdb5760405162461bcd60e51b81526004016106be90611fd8565b6001600160a01b03165f908152600160205260409020805460ff19169055565b5f546001600160a01b031633146110245760405162461bcd60e51b81526004016106be90611fd8565b6001600160a01b03165f908152600260205260409020805460ff19169055565b600e8054610deb90611fa0565b5f546001600160a01b0316331461107a5760405162461bcd60e51b81526004016106be90611fd8565b6001600160a01b03165f908152600160208190526040909120805460ff19169091179055565b5f546001600160a01b031633146110c95760405162461bcd60e51b81526004016106be90611fd8565b6110d2816119c3565b50565b5f546001600160a01b031633146110fe5760405162461bcd60e51b81526004016106be90611fd8565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b5f610bbc6003805480602002602001604051908101604052809291908181526020018280548015610c1e57602002820191905f5260205f2090815481526020019060010190808311610c0a575050505050611914565b6001600160a01b0383166111cd5760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f206164647265737300000060448201526064016106be565b6001600160a01b0382166112235760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016106be565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166112da5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016106be565b6001600160a01b0382166113305760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016106be565b6001600160a01b0383165f908152600960205260409020548111156113975760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016106be565b6001600160a01b0383165f908152600960205260409020546113b99082611a81565b6001600160a01b0384165f9081526009602090815260408083209390935560029052205460ff168061140257506001600160a01b0382165f9081526002602052604090205460ff165b15611469576001600160a01b0382165f90815260096020526040902054611429908261195e565b6001600160a01b038084165f8181526009602052604090819020939093559151908516905f805160206120c5833981519152906112779085815260200190565b6001600160a01b0383165f9081526001602052604081205482919060ff16801561149a57505f6114976108db565b51115b15611663575f5b6114a96108db565b518110156115f3576114ef6114bc6108db565b82815181106114cd576114cd61201f565b60200260200101516114e9606487611ac290919063ffffffff16565b90611b03565b91506114fb8383611a81565b925061154a60095f61150b6105cf565b848151811061151c5761151c61201f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20548361195e565b60095f6115556105cf565b84815181106115665761156661201f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055506115996105cf565b81815181106115aa576115aa61201f565b60200260200101516001600160a01b0316866001600160a01b03165f805160206120c5833981519152846040516115e391815260200190565b60405180910390a36001016114a1565b506001600160a01b0384165f90815260096020526040902054611616908361195e565b6001600160a01b038086165f8181526009602052604090819020939093559151908716905f805160206120c5833981519152906116569086815260200190565b60405180910390a36118d5565b6001600160a01b0384165f9081526001602052604090205460ff16801561169157505f61168e6109e4565b51115b15611778575f5b6116a06109e4565b518110156115f3576116b36114bc6109e4565b91506116bf8383611a81565b92506116cf60095f61150b610f54565b60095f6116da610f54565b84815181106116eb576116eb61201f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f208190555061171e610f54565b818151811061172f5761172f61201f565b60200260200101516001600160a01b0316866001600160a01b03165f805160206120c58339815191528460405161176891815260200190565b60405180910390a3600101611698565b5f6117816107cd565b51111561186a575f5b6117926107cd565b518110156115f3576117a56114bc6107cd565b91506117b18383611a81565b92506117c160095f61150b610a38565b60095f6117cc610a38565b84815181106117dd576117dd61201f565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550611810610a38565b81815181106118215761182161201f565b60200260200101516001600160a01b0316866001600160a01b03165f805160206120c58339815191528460405161185a91815260200190565b60405180910390a360010161178a565b6001600160a01b0384165f9081526009602052604090205461188c908361195e565b6001600160a01b038086165f8181526009602052604090819020939093559151908716905f805160206120c5833981519152906118cc9086815260200190565b60405180910390a35b5050505050565b5f81848411156118ff5760405162461bcd60e51b81526004016106be9190611c5d565b505f61190b8486612047565b95945050505050565b5f80805b83518110156119575761194d8482815181106119365761193661201f565b60200260200101518361195e90919063ffffffff16565b9150600101611918565b5092915050565b5f8061196a838561205a565b9050838110156119bc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106be565b9392505050565b6001600160a01b038116611a285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106be565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6119bc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118dc565b5f6119bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b81565b5f825f03611b1257505f6105c9565b5f611b1d838561206d565b905082611b2a8583612084565b146119bc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106be565b5f8183611ba15760405162461bcd60e51b81526004016106be9190611c5d565b505f61190b8486612084565b828054828255905f5260205f20908101928215611be6579160200282015b82811115611be6578251825591602001919060010190611bcb565b50611bf2929150611c49565b5090565b828054828255905f5260205f20908101928215611be6579160200282015b82811115611be657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611c14565b5b80821115611bf2575f8155600101611c4a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611ca8575f80fd5b919050565b5f8060408385031215611cbe575f80fd5b611cc783611c92565b946020939093013593505050565b5f60208284031215611ce5575f80fd5b6119bc82611c92565b5f815180845260208085019450602084015f5b83811015611d265781516001600160a01b031687529582019590820190600101611d01565b509495945050505050565b602081525f6119bc6020830184611cee565b5f805f60608486031215611d55575f80fd5b611d5e84611c92565b9250611d6c60208501611c92565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611db957611db9611d7c565b604052919050565b5f67ffffffffffffffff821115611dda57611dda611d7c565b5060051b60200190565b5f82601f830112611df3575f80fd5b81356020611e08611e0383611dc1565b611d90565b8083825260208201915060208460051b870101935086841115611e29575f80fd5b602086015b84811015611e4c57611e3f81611c92565b8352918301918301611e2e565b509695505050505050565b5f8060408385031215611e68575f80fd5b823567ffffffffffffffff80821115611e7f575f80fd5b818501915085601f830112611e92575f80fd5b81356020611ea2611e0383611dc1565b82815260059290921b84018101918181019089841115611ec0575f80fd5b948201945b83861015611ede57853582529482019490820190611ec5565b96505086013592505080821115611ef3575f80fd5b50611f0085828601611de4565b9150509250929050565b5f815180845260208085019450602084015f5b83811015611d2657815187529582019590820190600101611f1d565b602081525f6119bc6020830184611f0a565b604081525f611f5d6040830185611f0a565b828103602084015261190b8185611cee565b5f8060408385031215611f80575f80fd5b611f8983611c92565b9150611f9760208401611c92565b90509250929050565b600181811c90821680611fb457607f821691505b602082108103611fd257634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526009908201526837b7363ca7bbb732b960b91b604082015260600190565b6020808252600a908201526954617853756d203e203160b01b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156105c9576105c9612033565b808201808211156105c9576105c9612033565b80820281158282048414176105c9576105c9612033565b5f8261209e57634e487b7160e01b5f52601260045260245ffd5b50049056fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220295d773789aa4980a90e5df13d1d734a49b1ed9dfcb3d6880d75bfc19ddad79f64736f6c63430008190033
Deployed Bytecode Sourcemap
9394:6006:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10310:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10948:152;;;;;;:::i;:::-;;:::i;:::-;;;1039:14:1;;1032:22;1014:41;;1002:2;987:18;10948:152:0;874:187:1;6689:150:0;;;;;;:::i;:::-;-1:-1:-1;;;;;6794:37:0;6770:4;6794:37;;;:18;:37;;;;;;;;;6689:150;5872:110;;;:::i;:::-;;;;;;;:::i;10403:93::-;10476:12;;10403:93;;;2139:25:1;;;2127:2;2112:18;10403:93:0;1993:177:1;11108:295:0;;;;;;:::i;:::-;;:::i;8078:515::-;;;;;;:::i;:::-;;:::i;:::-;;10120:85;10188:9;;;;10120:85;;;5104:4:1;5092:17;;;5074:36;;5062:2;5047:18;10120:85:0;4932:184:1;9659:22:0;;;;;;;;;11411:206;;;;;;:::i;:::-;;:::i;5746:118::-;;;:::i;:::-;;;;;;;:::i;8601:135::-;;;:::i;:::-;;;;;;;;:::i;5512:108::-;;;:::i;8890:150::-;;;:::i;5628:110::-;;;:::i;6110:120::-;;;:::i;8744:138::-;;;:::i;10504:112::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10590:18:0;10563:7;10590:18;;;:9;:18;;;;;;;10504:112;4321:140;;;:::i;10027:85::-;10070:7;4195:6;-1:-1:-1;;;;;4195:6:0;10027:85;;;-1:-1:-1;;;;;6465:32:1;;;6447:51;;6435:2;6420:18;10027:85:0;6301:203:1;4130:79:0;4168:7;4195:6;-1:-1:-1;;;;;4195:6:0;4130:79;;6238:150;;;;;;:::i;:::-;-1:-1:-1;;;;;6343:37:0;6319:4;6343:37;;;:18;:37;;;;;;;;;6238:150;10213:89;;;:::i;9272:113::-;;;:::i;7140:455::-;;;;;;:::i;:::-;;:::i;11625:250::-;;;;;;:::i;:::-;;:::i;10624:158::-;;;;;;:::i;:::-;;:::i;9159:105::-;;;:::i;9688:21::-;;;:::i;7603:467::-;;;;;;:::i;:::-;;:::i;5990:112::-;;;:::i;6540:141::-;;;;;;:::i;:::-;;:::i;6991:::-;;;;;;:::i;:::-;;:::i;9716:19::-;;;:::i;10790:150::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10898:25:0;;;10871:7;10898:25;;;:11;:25;;;;;;;;:34;;;;;;;;;;;;;10790:150;6396:136;;;;;;:::i;:::-;;:::i;4469:109::-;;;;;;:::i;:::-;;:::i;6847:136::-;;;;;;:::i;:::-;;:::i;9048:103::-;;;:::i;10310:85::-;10349:13;10382:5;10375:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10310:85;:::o;10948:152::-;11016:4;11033:37;11042:10;11054:7;11063:6;11033:8;:37::i;:::-;-1:-1:-1;11088:4:0;10948:152;;;;;:::o;5872:110::-;5923:16;5959:15;5952:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5952:22:0;;;;;;;;;;;;;;;;;;;;;;5872:110;:::o;11108:295::-;11199:4;11216:36;11226:6;11234:9;11245:6;11216:9;:36::i;:::-;11263:110;11272:6;11280:10;11292:80;11328:6;11292:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11292:19:0;;;;;;:11;:19;;;;;;;;11312:10;11292:31;;;;;;;;;:80;:35;:80::i;:::-;11263:8;:110::i;:::-;-1:-1:-1;11391:4:0;11108:295;;;;;:::o;8078:515::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;;;;;;;;;8248:21:::1;:28;8217:20;:27;:59;8209:131;;;::::0;-1:-1:-1;;;8209:131:0;;7698:2:1;8209:131:0::1;::::0;::::1;7680:21:1::0;7737:2;7717:18;;;7710:30;7776:34;7756:18;;;7749:62;7847:29;7827:18;;;7820:57;7894:19;;8209:131:0::1;7496:423:1::0;8209:131:0::1;8353:14;8370:31;8380:20;8370:9;:31::i;:::-;8353:48;;8430:1;8420:6;:11;;8412:34;;;;-1:-1:-1::0;;;8412:34:0::1;;;;;;;:::i;:::-;8488:42:::0;;::::1;::::0;:19:::1;::::0;:42:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;8541:44:0;;::::1;::::0;:20:::1;::::0;:44:::1;::::0;::::1;::::0;::::1;:::i;:::-;;8198:395;8078:515:::0;;:::o;11411:206::-;11517:10;11491:4;11538:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11538:32:0;;;;;;;;;;11491:4;;11508:79;;11529:7;;11538:48;;11575:10;11538:36;:48::i;5746:118::-;5801:16;5837:19;5830:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5746:118;:::o;8601:135::-;8644:13;8659:16;8696:14;8712:15;8688:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8688:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8601:135;;:::o;5512:108::-;5562:16;5598:14;5591:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5512:108;:::o;8890:150::-;8938:13;8953:16;8990:19;9011:20;8982:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8982:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;8890:150;;:::o;5628:110::-;5679:16;5715:15;5708:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5628:110;:::o;6110:120::-;6166:16;6202:20;6195:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6195:27:0;;;;;;;;;;;;;;;;;;;;;;6110:120;:::o;8744:138::-;8788:13;8803:16;8840:15;8857:16;8832:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8832:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;8744:138;;:::o;4321:140::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;4420:1:::1;4404:6:::0;;4383:40:::1;::::0;-1:-1:-1;;;;;4404:6:0;;::::1;::::0;4383:40:::1;::::0;4420:1;;4383:40:::1;4451:1;4434:19:::0;;-1:-1:-1;;;;;;4434:19:0::1;::::0;;4321:140::o;10097:7::-;10090:14;;10027:85;:::o;10213:89::-;10254:13;10287:7;10280:14;;;;;:::i;9272:113::-;9323:4;9347:30;9357:19;9347:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:30::i;7140:455::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;7290:16:::1;:23;7264:15;:22;:49;7256:111;;;::::0;-1:-1:-1;;;7256:111:0;;8465:2:1;7256:111:0::1;::::0;::::1;8447:21:1::0;8504:2;8484:18;;;8477:30;8543:34;8523:18;;;8516:62;-1:-1:-1;;;8594:18:1;;;8587:47;8651:19;;7256:111:0::1;8263:413:1::0;7256:111:0::1;7380:14;7397:26;7407:15;7397:9;:26::i;:::-;7380:43;;7452:1;7442:6;:11;;7434:34;;;;-1:-1:-1::0;;;7434:34:0::1;;;;;;;:::i;:::-;7510:32:::0;;::::1;::::0;:14:::1;::::0;:32:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;7553:34:0;;::::1;::::0;:15:::1;::::0;:34:::1;::::0;::::1;::::0;::::1;:::i;11625:250::-:0;11757:87;;;;;;;;;;;;;;;;;;;;11736:10;11710:4;11757:23;;;:11;:23;;;;;-1:-1:-1;;;;;11757:32:0;;;;;;;;;;;11710:4;;11727:118;;11736:10;;11748:7;;11757:87;;:32;11794:15;;11757:36;:87::i;10624:158::-;10695:4;10712:40;10722:10;10734:9;10745:6;10712:9;:40::i;9159:105::-;9206:4;9230:26;9240:15;9230:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:26::i;9688:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7603:467::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;7757:17:::1;:24;7730:16;:23;:51;7722:115;;;::::0;-1:-1:-1;;;7722:115:0;;8883:2:1;7722:115:0::1;::::0;::::1;8865:21:1::0;8922:2;8902:18;;;8895:30;8961:34;8941:18;;;8934:62;-1:-1:-1;;;9012:18:1;;;9005:49;9071:19;;7722:115:0::1;8681:415:1::0;7722:115:0::1;7850:14;7867:27;7877:16;7867:9;:27::i;:::-;7850:44;;7923:1;7913:6;:11;;7905:34;;;;-1:-1:-1::0;;;7905:34:0::1;;;;;;;:::i;:::-;7981::::0;;::::1;::::0;:15:::1;::::0;:34:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;8026:36:0;;::::1;::::0;:16:::1;::::0;:36:::1;::::0;::::1;::::0;::::1;:::i;5990:112::-:0;6042:16;6078;6071:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6071:23:0;;;;;;;;;;;;;;;;;;;;;;5990:112;:::o;6540:141::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6628:37:0::1;6668:5;6628:37:::0;;;:18:::1;:37;::::0;;;;:45;;-1:-1:-1;;6628:45:0::1;::::0;;6540:141::o;6991:::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7079:37:0::1;7119:5;7079:37:::0;;;:18:::1;:37;::::0;;;;:45;;-1:-1:-1;;7079:45:0::1;::::0;;6991:141::o;9716:19::-;;;;;;;:::i;6396:136::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6480:37:0::1;;::::0;;;6520:4:::1;6480:37;::::0;;;;;;;:44;;-1:-1:-1;;6480:44:0::1;::::0;;::::1;::::0;;6396:136::o;4469:109::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;4542:28:::1;4561:8;4542:18;:28::i;:::-;4469:109:::0;:::o;6847:136::-;4257:6;;-1:-1:-1;;;;;4257:6:0;3551:10;4257:22;4249:44;;;;-1:-1:-1;;;4249:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6931:37:0::1;;::::0;;;:18:::1;:37;::::0;;;;:44;;-1:-1:-1;;6931:44:0::1;6971:4;6931:44;::::0;;6847:136::o;9048:103::-;9094:4;9118:25;9128:14;9118:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:25::i;15043:352::-;-1:-1:-1;;;;;15144:26:0;;15136:68;;;;-1:-1:-1;;;15136:68:0;;9303:2:1;15136:68:0;;;9285:21:1;9342:2;9322:18;;;9315:30;9381:31;9361:18;;;9354:59;9430:18;;15136:68:0;9101:353:1;15136:68:0;-1:-1:-1;;;;;15223:21:0;;15215:61;;;;-1:-1:-1;;;15215:61:0;;9661:2:1;15215:61:0;;;9643:21:1;9700:2;9680:18;;;9673:30;9739:29;9719:18;;;9712:57;9786:18;;15215:61:0;9459:351:1;15215:61:0;-1:-1:-1;;;;;15289:25:0;;;;;;;:11;:25;;;;;;;;:34;;;;;;;;;;;;;:43;;;15348:39;;2139:25:1;;;15348:39:0;;2112:18:1;15348:39:0;;;;;;;;15043:352;;;:::o;11883:3152::-;-1:-1:-1;;;;;11981:20:0;;11973:63;;;;-1:-1:-1;;;11973:63:0;;10017:2:1;11973:63:0;;;9999:21:1;10056:2;10036:18;;;10029:30;10095:32;10075:18;;;10068:60;10145:18;;11973:63:0;9815:354:1;11973:63:0;-1:-1:-1;;;;;12055:23:0;;12047:64;;;;-1:-1:-1;;;12047:64:0;;10376:2:1;12047:64:0;;;10358:21:1;10415:2;10395:18;;;10388:30;10454;10434:18;;;10427:58;10502:18;;12047:64:0;10174:352:1;12047:64:0;-1:-1:-1;;;;;12140:17:0;;;;;;:9;:17;;;;;;12130:27;;;12122:71;;;;-1:-1:-1;;;12122:71:0;;10733:2:1;12122:71:0;;;10715:21:1;10772:2;10752:18;;;10745:30;10811:33;10791:18;;;10784:61;10862:18;;12122:71:0;10531:355:1;12122:71:0;-1:-1:-1;;;;;12226:17:0;;;;;;:9;:17;;;;;;:29;;12248:6;12226:21;:29::i;:::-;-1:-1:-1;;;;;12206:17:0;;;;;;:9;:17;;;;;;;;:49;;;;12272:18;:26;;;;;;;:59;;-1:-1:-1;;;;;;12302:29:0;;;;;;:18;:29;;;;;;;;12272:59;12268:2758;;;-1:-1:-1;;;;;12371:20:0;;;;;;:9;:20;;;;;;:32;;12396:6;12371:24;:32::i;:::-;-1:-1:-1;;;;;12348:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12423:35;;;;;;-1:-1:-1;;;;;;;;;;;12423:35:0;;;12451:6;2139:25:1;;2127:2;2112:18;;1993:177;12268:2758:0;-1:-1:-1;;;;;12620:26:0;;12491:23;12620:26;;;:18;:26;;;;;;12517:6;;12491:23;12620:26;;:70;;;;;12689:1;12650:29;:27;:29::i;:::-;:36;:40;12620:70;12616:2399;;;12718:6;12713:468;12730:29;:27;:29::i;:::-;:36;12726:1;:40;12713:468;;;12808:53;12828:29;:27;:29::i;:::-;12858:1;12828:32;;;;;;;;:::i;:::-;;;;;;;12808:15;12819:3;12808:6;:10;;:15;;;;:::i;:::-;:19;;:53::i;:::-;12796:65;-1:-1:-1;12902:30:0;:15;12796:65;12902:19;:30::i;:::-;12884:48;;13002:69;13015:9;:44;13025:30;:28;:30::i;:::-;13056:1;13025:33;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13015:44:0;-1:-1:-1;;;;;13015:44:0;;;;;;;;;;;;;13061:9;13002:12;:69::i;:::-;12955:9;:44;12965:30;:28;:30::i;:::-;12996:1;12965:33;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;12955:44:0;-1:-1:-1;;;;;12955:44:0;;;;;;;;;;;;:116;;;;13116:30;:28;:30::i;:::-;13147:1;13116:33;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13099:62:0;13108:6;-1:-1:-1;;;;;13099:62:0;-1:-1:-1;;;;;;;;;;;13151:9:0;13099:62;;;;2139:25:1;;2127:2;2112:18;;1993:177;13099:62:0;;;;;;;;12768:3;;12713:468;;;-1:-1:-1;;;;;;13224:20:0;;;;;;:9;:20;;;;;;:41;;13249:15;13224:24;:41::i;:::-;-1:-1:-1;;;;;13201:20:0;;;;;;;:9;:20;;;;;;;:64;;;;13289:44;;;;;;-1:-1:-1;;;;;;;;;;;13289:44:0;;;13317:15;2139:25:1;;2127:2;2112:18;;1993:177;13289:44:0;;;;;;;;12616:2399;;;-1:-1:-1;;;;;13361:29:0;;;;;;:18;:29;;;;;;;;:74;;;;;13434:1;13394:30;:28;:30::i;:::-;:37;:41;13361:74;13357:1658;;;13463:6;13458:473;13475:30;:28;:30::i;:::-;:37;13471:1;:41;13458:473;;;13554:54;13574:30;:28;:30::i;13554:54::-;13542:66;-1:-1:-1;13649:30:0;:15;13542:66;13649:19;:30::i;:::-;13631:48;;13750:70;13763:9;:45;13773:31;:29;:31::i;13750:70::-;13702:9;:45;13712:31;:29;:31::i;:::-;13744:1;13712:34;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13702:45:0;-1:-1:-1;;;;;13702:45:0;;;;;;;;;;;;:118;;;;13865:31;:29;:31::i;:::-;13897:1;13865:34;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13848:63:0;13857:6;-1:-1:-1;;;;;13848:63:0;-1:-1:-1;;;;;;;;;;;13901:9:0;13848:63;;;;2139:25:1;;2127:2;2112:18;;1993:177;13848:63:0;;;;;;;;13514:3;;13458:473;;13357:1658;14155:1;14111:34;:32;:34::i;:::-;:41;:45;14107:908;;;14184:6;14179:493;14196:34;:32;:34::i;:::-;:41;14192:1;:45;14179:493;;;14279:58;14299:34;:32;:34::i;14279:58::-;14267:70;-1:-1:-1;14378:30:0;:15;14267:70;14378:19;:30::i;:::-;14360:48;;14483:74;14496:9;:49;14506:35;:33;:35::i;14483:74::-;14431:9;:49;14441:35;:33;:35::i;:::-;14477:1;14441:38;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;14431:49:0;-1:-1:-1;;;;;14431:49:0;;;;;;;;;;;;:126;;;;14602:35;:33;:35::i;:::-;14638:1;14602:38;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;14585:67:0;14594:6;-1:-1:-1;;;;;14585:67:0;-1:-1:-1;;;;;;;;;;;14642:9:0;14585:67;;;;2139:25:1;;2127:2;2112:18;;1993:177;14585:67:0;;;;;;;;14239:3;;14179:493;;14107:908;-1:-1:-1;;;;;14890:20:0;;;;;;:9;:20;;;;;;:41;;14915:15;14890:24;:41::i;:::-;-1:-1:-1;;;;;14867:20:0;;;;;;;:9;:20;;;;;;;:64;;;;14955:44;;;;;;-1:-1:-1;;;;;;;;;;;14955:44:0;;;14983:15;2139:25:1;;2127:2;2112:18;;1993:177;14955:44:0;;;;;;;;14107:908;12476:2550;;11883:3152;;;:::o;1542:190::-;1628:7;1664:12;1656:6;;;;1648:29;;;;-1:-1:-1;;;1648:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1688:9:0;1700:5;1704:1;1700;:5;:::i;:::-;1688:17;1542:190;-1:-1:-1;;;;;1542:190:0:o;5245:259::-;5318:7;;;5367:106;5384:12;:19;5380:1;:23;5367:106;;;5434:27;5445:12;5458:1;5445:15;;;;;;;;:::i;:::-;;;;;;;5434:6;:10;;:27;;;;:::i;:::-;5425:36;-1:-1:-1;5405:3:0;;5367:106;;;-1:-1:-1;5490:6:0;5245:259;-1:-1:-1;;5245:259:0:o;1115:179::-;1173:7;;1205:5;1209:1;1205;:5;:::i;:::-;1193:17;;1234:1;1229;:6;;1221:46;;;;-1:-1:-1;;;1221:46:0;;11620:2:1;1221:46:0;;;11602:21:1;11659:2;11639:18;;;11632:30;11698:29;11678:18;;;11671:57;11745:18;;1221:46:0;11418:351:1;1221:46:0;1285:1;1115:179;-1:-1:-1;;;1115:179:0:o;4586:229::-;-1:-1:-1;;;;;4660:22:0;;4652:73;;;;-1:-1:-1;;;4652:73:0;;11976:2:1;4652:73:0;;;11958:21:1;12015:2;11995:18;;;11988:30;12054:34;12034:18;;;12027:62;-1:-1:-1;;;12105:18:1;;;12098:36;12151:19;;4652:73:0;11774:402:1;4652:73:0;4762:6;;;4741:38;;-1:-1:-1;;;;;4741:38:0;;;;4762:6;;;4741:38;;;4790:6;:17;;-1:-1:-1;;;;;;4790:17:0;-1:-1:-1;;;;;4790:17:0;;;;;;;;;;4586:229::o;1350:136::-;1408:7;1435:43;1439:1;1442;1435:43;;;;;;;;;;;;;;;;;:3;:43::i;2311:132::-;2369:7;2396:39;2400:1;2403;2396:39;;;;;;;;;;;;;;;;;:3;:39::i;1788:467::-;1846:7;2091:1;2096;2091:6;2087:47;;-1:-1:-1;2121:1:0;2114:8;;2087:47;2144:9;2156:5;2160:1;2156;:5;:::i;:::-;2144:17;-1:-1:-1;2189:1:0;2180:5;2184:1;2144:17;2180:5;:::i;:::-;:10;2172:56;;;;-1:-1:-1;;;2172:56:0;;12778:2:1;2172:56:0;;;12760:21:1;12817:2;12797:18;;;12790:30;12856:34;12836:18;;;12829:62;-1:-1:-1;;;12907:18:1;;;12900:31;12948:19;;2172:56:0;12576:397:1;2499:343:0;2585:7;2687:12;2680:5;2672:28;;;;-1:-1:-1;;;2672:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2711:9:0;2723:5;2727:1;2723;:5;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:418:1;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:254::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;859:2;844:18;;;;831:32;;-1:-1:-1;;;615:254:1:o;1066:186::-;1125:6;1178:2;1166:9;1157:7;1153:23;1149:32;1146:52;;;1194:1;1191;1184:12;1146:52;1217:29;1236:9;1217:29;:::i;1257:465::-;1310:3;1348:5;1342:12;1375:6;1370:3;1363:19;1401:4;1430;1425:3;1421:14;1414:21;;1469:4;1462:5;1458:16;1492:1;1502:195;1516:6;1513:1;1510:13;1502:195;;;1581:13;;-1:-1:-1;;;;;1577:39:1;1565:52;;1637:12;;;;1672:15;;;;1613:1;1531:9;1502:195;;;-1:-1:-1;1713:3:1;;1257:465;-1:-1:-1;;;;;1257:465:1:o;1727:261::-;1906:2;1895:9;1888:21;1869:4;1926:56;1978:2;1967:9;1963:18;1955:6;1926:56;:::i;2175:328::-;2252:6;2260;2268;2321:2;2309:9;2300:7;2296:23;2292:32;2289:52;;;2337:1;2334;2327:12;2289:52;2360:29;2379:9;2360:29;:::i;:::-;2350:39;;2408:38;2442:2;2431:9;2427:18;2408:38;:::i;:::-;2398:48;;2493:2;2482:9;2478:18;2465:32;2455:42;;2175:328;;;;;:::o;2508:127::-;2569:10;2564:3;2560:20;2557:1;2550:31;2600:4;2597:1;2590:15;2624:4;2621:1;2614:15;2640:275;2711:2;2705:9;2776:2;2757:13;;-1:-1:-1;;2753:27:1;2741:40;;2811:18;2796:34;;2832:22;;;2793:62;2790:88;;;2858:18;;:::i;:::-;2894:2;2887:22;2640:275;;-1:-1:-1;2640:275:1:o;2920:183::-;2980:4;3013:18;3005:6;3002:30;2999:56;;;3035:18;;:::i;:::-;-1:-1:-1;3080:1:1;3076:14;3092:4;3072:25;;2920:183::o;3108:674::-;3162:5;3215:3;3208:4;3200:6;3196:17;3192:27;3182:55;;3233:1;3230;3223:12;3182:55;3269:6;3256:20;3295:4;3319:60;3335:43;3375:2;3335:43;:::i;:::-;3319:60;:::i;:::-;3401:3;3425:2;3420:3;3413:15;3453:4;3448:3;3444:14;3437:21;;3510:4;3504:2;3501:1;3497:10;3489:6;3485:23;3481:34;3467:48;;3538:3;3530:6;3527:15;3524:35;;;3555:1;3552;3545:12;3524:35;3591:4;3583:6;3579:17;3605:148;3621:6;3616:3;3613:15;3605:148;;;3687:23;3706:3;3687:23;:::i;:::-;3675:36;;3731:12;;;;3638;;3605:148;;;-1:-1:-1;3771:5:1;3108:674;-1:-1:-1;;;;;;3108:674:1:o;3787:1140::-;3905:6;3913;3966:2;3954:9;3945:7;3941:23;3937:32;3934:52;;;3982:1;3979;3972:12;3934:52;4022:9;4009:23;4051:18;4092:2;4084:6;4081:14;4078:34;;;4108:1;4105;4098:12;4078:34;4146:6;4135:9;4131:22;4121:32;;4191:7;4184:4;4180:2;4176:13;4172:27;4162:55;;4213:1;4210;4203:12;4162:55;4249:2;4236:16;4271:4;4295:60;4311:43;4351:2;4311:43;:::i;4295:60::-;4389:15;;;4471:1;4467:10;;;;4459:19;;4455:28;;;4420:12;;;;4495:19;;;4492:39;;;4527:1;4524;4517:12;4492:39;4551:11;;;;4571:142;4587:6;4582:3;4579:15;4571:142;;;4653:17;;4641:30;;4604:12;;;;4691;;;;4571:142;;;4732:5;-1:-1:-1;;4775:18:1;;4762:32;;-1:-1:-1;;4806:16:1;;;4803:36;;;4835:1;4832;4825:12;4803:36;;4858:63;4913:7;4902:8;4891:9;4887:24;4858:63;:::i;:::-;4848:73;;;3787:1140;;;;;:::o;5121:439::-;5174:3;5212:5;5206:12;5239:6;5234:3;5227:19;5265:4;5294;5289:3;5285:14;5278:21;;5333:4;5326:5;5322:16;5356:1;5366:169;5380:6;5377:1;5374:13;5366:169;;;5441:13;;5429:26;;5475:12;;;;5510:15;;;;5402:1;5395:9;5366:169;;5565:261;5744:2;5733:9;5726:21;5707:4;5764:56;5816:2;5805:9;5801:18;5793:6;5764:56;:::i;5831:465::-;6088:2;6077:9;6070:21;6051:4;6114:56;6166:2;6155:9;6151:18;6143:6;6114:56;:::i;:::-;6218:9;6210:6;6206:22;6201:2;6190:9;6186:18;6179:50;6246:44;6283:6;6275;6246:44;:::i;6509:260::-;6577:6;6585;6638:2;6626:9;6617:7;6613:23;6609:32;6606:52;;;6654:1;6651;6644:12;6606:52;6677:29;6696:9;6677:29;:::i;:::-;6667:39;;6725:38;6759:2;6748:9;6744:18;6725:38;:::i;:::-;6715:48;;6509:260;;;;;:::o;6774:380::-;6853:1;6849:12;;;;6896;;;6917:61;;6971:4;6963:6;6959:17;6949:27;;6917:61;7024:2;7016:6;7013:14;6993:18;6990:38;6987:161;;7070:10;7065:3;7061:20;7058:1;7051:31;7105:4;7102:1;7095:15;7133:4;7130:1;7123:15;6987:161;;6774:380;;;:::o;7159:332::-;7361:2;7343:21;;;7400:1;7380:18;;;7373:29;-1:-1:-1;;;7433:2:1;7418:18;;7411:39;7482:2;7467:18;;7159:332::o;7924:334::-;8126:2;8108:21;;;8165:2;8145:18;;;8138:30;-1:-1:-1;;;8199:2:1;8184:18;;8177:40;8249:2;8234:18;;7924:334::o;10891:127::-;10952:10;10947:3;10943:20;10940:1;10933:31;10983:4;10980:1;10973:15;11007:4;11004:1;10997:15;11023:127;11084:10;11079:3;11075:20;11072:1;11065:31;11115:4;11112:1;11105:15;11139:4;11136:1;11129:15;11155:128;11222:9;;;11243:11;;;11240:37;;;11257:18;;:::i;11288:125::-;11353:9;;;11374:10;;;11371:36;;;11387:18;;:::i;12181:168::-;12254:9;;;12285;;12302:15;;;12296:22;;12282:37;12272:71;;12323:18;;:::i;12354:217::-;12394:1;12420;12410:132;;12464:10;12459:3;12455:20;12452:1;12445:31;12499:4;12496:1;12489:15;12527:4;12524:1;12517:15;12410:132;-1:-1:-1;12556:9:1;;12354:217::o
Swarm Source
ipfs://295d773789aa4980a90e5df13d1d734a49b1ed9dfcb3d6880d75bfc19ddad79f
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.
Add Token to MetaMask (Web3)