ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 MCTRUMP
Holders
33
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:
MCTRUMP
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-11-06
*/
// SPDX-License-Identifier: Unlicensed
/*
=============================================================================
MCTRUMP TOKEN 🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
=============================================================================
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
💰 TOKENOMICS: 🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
- Total Supply: 1,000,000,000 MCTRUMP 🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
- Decimals: 18 🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🌐 SOCIALS: 🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
Website: https://www.mctrump.meme 🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
Telegram: https://t.me/OfficialMcTrump 🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
Twitter: https://x.com/OfficialMcTrump 🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟���🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟🍟
=============================================================================
*/
pragma solidity ^0.8.14;
//===============================================================
// INTERFACES
//===============================================================
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);
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
//===============================================================
// LIBRARIES
//===============================================================
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
//===============================================================
// ABSTRACT CONTRACTS
//===============================================================
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
//===============================================================
// MAIN CONTRACT
//===============================================================
contract MCTRUMP is Context, IERC20, Ownable {
using SafeMath for uint256;
//===============================================================
// TOKEN DETAILS
//===============================================================
string private constant _name = "MCTRUMP";
string private constant _symbol = "MCTRUMP";
uint8 private constant _decimals = 18;
uint256 private constant _tTotal = 1000000000 * 10**18; // 1 billion tokens
//===============================================================
// MAPPINGS
//===============================================================
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
//===============================================================
// UNISWAP
//===============================================================
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
//===============================================================
// TRADING CONTROL
//===============================================================
bool public tradingEnabled;
uint256 public launchTime;
uint256 public maxTxAmount = _tTotal.mul(2).div(100); // 2% of total supply
uint256 public maxWalletAmount = _tTotal.mul(2).div(100); // 2% of total supply
uint256 private _numTokensToSwap = 300000 * 10**18; // 300k tokens minimum for swap
//===============================================================
// MARKETING
//===============================================================
address public marketingWallet;
bool private inSwap;
//===============================================================
// TAX MANAGEMENT
//===============================================================
// Simplified tax variables
uint256 public buyTax = 1; // Default 1% buy tax
uint256 public sellTax = 5; // Default 5% sell tax
function setBuyTax(uint256 newTax) external onlyOwner {
require(newTax <= 20, "Tax cannot exceed 20%");
buyTax = newTax;
}
function setSellTax(uint256 newTax) external onlyOwner {
require(newTax <= 20, "Tax cannot exceed 20%");
sellTax = newTax;
}
//===============================================================
// EVENTS
//===============================================================
event SwapAndSendMarketing(uint256 tokensSwapped, uint256 ethSent);
//===============================================================
// MODIFIERS
//===============================================================
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
//===============================================================
// CONSTRUCTOR
//===============================================================
constructor() {
_balances[_msgSender()] = _tTotal;
marketingWallet = _msgSender();
// Set router and create pair immediately
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Router = _uniswapV2Router;
// Create the pair automatically
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
.createPair(address(this), uniswapV2Router.WETH());
emit Transfer(address(0), _msgSender(), _tTotal);
}
//===============================================================
// VIEW FUNCTIONS
//===============================================================
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
//===============================================================
// TAX CALCULATION
//===============================================================
function getCurrentTaxRate(address from, address to) public view returns (uint256) {
if (!tradingEnabled) {
return 0;
}
// Buy tax (from pair)
if (from == uniswapV2Pair) {
return buyTax;
}
// Sell tax (to pair)
if (to == uniswapV2Pair) {
return sellTax;
}
return 0; // No tax for wallet transfers
}
//===============================================================
// CORE FUNCTIONS
//===============================================================
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "Approve from zero");
require(spender != address(0), "Approve to zero");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
//===============================================================
// TRANSFER LOGIC
//===============================================================
function _transfer(
address sender,
address recipient,
uint256 amount
) private {
require(sender != address(0), "Transfer from zero");
require(recipient != address(0), "Transfer to zero");
require(amount > 0, "Transfer amount zero");
require(tradingEnabled || sender == owner(), "Trading not enabled");
if (sender != owner() && recipient != owner()) {
require(amount <= maxTxAmount, "Transfer exceeds max");
}
// Max wallet check - exclude pair address and owner
if (recipient != owner() && recipient != uniswapV2Pair) {
uint256 recipientBalance = balanceOf(recipient).add(amount);
require(recipientBalance <= maxWalletAmount, "Exceeds max wallet");
}
// Check if we need to swap collected tokens for ETH
if (
!inSwap &&
sender != uniswapV2Pair &&
balanceOf(address(this)) >= _numTokensToSwap
) {
swapTokensForEth();
}
uint256 taxAmount = 0;
if (!inSwap) {
uint256 taxRate = getCurrentTaxRate(sender, recipient);
taxAmount = amount.mul(taxRate).div(100);
}
if (taxAmount > 0) {
_balances[sender] = _balances[sender].sub(amount);
_balances[address(this)] = _balances[address(this)].add(taxAmount);
_balances[recipient] = _balances[recipient].add(amount.sub(taxAmount));
emit Transfer(sender, address(this), taxAmount);
emit Transfer(sender, recipient, amount.sub(taxAmount));
} else {
_balances[sender] = _balances[sender].sub(amount);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
}
//===============================================================
// SWAP FUNCTIONALITY
//===============================================================
function swapTokensForEth() private lockTheSwap {
uint256 tokenBalance = balanceOf(address(this));
if (tokenBalance == 0) return;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenBalance);
uint256 initialETHBalance = address(this).balance;
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenBalance,
0, // Accept any amount of ETH
path,
address(this),
block.timestamp
);
uint256 ethBalance = address(this).balance.sub(initialETHBalance);
if (ethBalance > 0) {
payable(marketingWallet).transfer(ethBalance);
emit SwapAndSendMarketing(tokenBalance, ethBalance);
}
}
//===============================================================
// OWNER FUNCTIONS
//===============================================================
function enableTrading() external onlyOwner {
require(!tradingEnabled, "Trading already enabled");
tradingEnabled = true;
launchTime = block.timestamp;
}
function setMarketingWallet(address newWallet) external onlyOwner {
require(newWallet != address(0), "Cannot be zero address");
marketingWallet = newWallet;
}
function setMaxTxAmount(uint256 percentage) external onlyOwner {
require(percentage <= 2, "Max 2%");
maxTxAmount = _tTotal.mul(percentage).div(100);
}
function setNumTokensToSwap(uint256 newAmount) external onlyOwner {
require(newAmount > 0, "Cannot be zero");
_numTokensToSwap = newAmount;
}
function setMaxWalletAmount(uint256 percentage) external onlyOwner {
require(percentage <= 2, "Max 2%");
maxWalletAmount = _tTotal.mul(percentage).div(100);
}
//===============================================================
// EMERGENCY FUNCTIONS
//===============================================================
function rescueETH() external onlyOwner {
payable(owner()).transfer(address(this).balance);
}
function rescueTokens(address tokenAddress) external onlyOwner {
require(tokenAddress != address(this), "Cannot rescue MCTRUMP");
uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
IERC20(tokenAddress).transfer(owner(), tokenBalance);
}
receive() external payable {}
}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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethSent","type":"uint256"}],"name":"SwapAndSendMarketing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"getCurrentTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setNumTokensToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526200004560646200003160026b033b2e3c9fd0803ce8000000620004de60201b620018911790919060201c565b6200056160201b6200190b1790919060201c565b6006556200008960646200007560026b033b2e3c9fd0803ce8000000620004de60201b620018911790919060201c565b6200056160201b6200190b1790919060201c565b600755693f870857a3e0e38000006008556001600a556005600b55348015620000b157600080fd5b506000620000c4620005b360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506b033b2e3c9fd0803ce80000006001600062000183620005b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001d1620005b360201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ff91906200068d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000389573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003af91906200068d565b6040518363ffffffff1660e01b8152600401620003ce929190620006d0565b6020604051808303816000875af1158015620003ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041491906200068d565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000464620005b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620004cf919062000718565b60405180910390a3506200098c565b6000808303620004f257600090506200055b565b6000828462000502919062000764565b9050828482620005139190620007f4565b1462000556576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200054d90620008b3565b60405180910390fd5b809150505b92915050565b6000620005ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005bb60201b60201c565b905092915050565b600033905090565b6000808311829062000605576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005fc919062000968565b60405180910390fd5b5060008385620006169190620007f4565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006558262000628565b9050919050565b620006678162000648565b81146200067357600080fd5b50565b60008151905062000687816200065c565b92915050565b600060208284031215620006a657620006a562000623565b5b6000620006b68482850162000676565b91505092915050565b620006ca8162000648565b82525050565b6000604082019050620006e76000830185620006bf565b620006f66020830184620006bf565b9392505050565b6000819050919050565b6200071281620006fd565b82525050565b60006020820190506200072f600083018462000707565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200077182620006fd565b91506200077e83620006fd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007ba57620007b962000735565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200080182620006fd565b91506200080e83620006fd565b925082620008215762000820620007c5565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200089b6021836200082c565b9150620008a8826200083d565b604082019050919050565b60006020820190508181036000830152620008ce816200088c565b9050919050565b600081519050919050565b60005b8381101562000900578082015181840152602081019050620008e3565b8381111562000910576000848401525b50505050565b6000601f19601f8301169050919050565b60006200093482620008d5565b6200094081856200082c565b935062000952818560208601620008e0565b6200095d8162000916565b840191505092915050565b6000602082019050818103600083015262000984818462000927565b905092915050565b6138dd806200099c6000396000f3fe6080604052600436106101db5760003560e01c806370a082311161010257806395d89b4111610095578063dc1052e211610064578063dc1052e214610684578063dd62ed3e146106ad578063ec28438a146106ea578063f2fde38b14610713576101e2565b806395d89b41146105c6578063a9059cbb146105f1578063aa4bde281461062e578063cc1776d314610659576101e2565b80638a8c523c116100d15780638a8c523c146105305780638c0b5e22146105475780638cd09d50146105725780638da5cb5b1461059b576101e2565b806370a0823114610486578063715018a6146104c357806375f0a874146104da578063790ca41314610505576101e2565b806323b872dd1161017a5780634ada218b116101495780634ada218b146103ca5780634f7041a5146103f55780635d098b38146104205780636952fdbe14610449576101e2565b806323b872dd1461030e57806327a14fc21461034b578063313ce5671461037457806349bd5a5e1461039f576101e2565b80630f569dad116101b65780630f569dad146102785780631694505e146102a157806318160ddd146102cc57806320800a00146102f7576101e2565b8062ae3bf8146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e600480360381019061020991906128ef565b61073c565b005b34801561021c57600080fd5b50610225610947565b60405161023291906129b5565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190612a0d565b610984565b60405161026f9190612a68565b60405180910390f35b34801561028457600080fd5b5061029f600480360381019061029a9190612a83565b6109a2565b005b3480156102ad57600080fd5b506102b6610a84565b6040516102c39190612b0f565b60405180910390f35b3480156102d857600080fd5b506102e1610aaa565b6040516102ee9190612b39565b60405180910390f35b34801561030357600080fd5b5061030c610abe565b005b34801561031a57600080fd5b5061033560048036038101906103309190612b54565b610ba3565b6040516103429190612a68565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612a83565b610c7c565b005b34801561038057600080fd5b50610389610d90565b6040516103969190612bc3565b60405180910390f35b3480156103ab57600080fd5b506103b4610d99565b6040516103c19190612bed565b60405180910390f35b3480156103d657600080fd5b506103df610dbf565b6040516103ec9190612a68565b60405180910390f35b34801561040157600080fd5b5061040a610dd2565b6040516104179190612b39565b60405180910390f35b34801561042c57600080fd5b50610447600480360381019061044291906128ef565b610dd8565b005b34801561045557600080fd5b50610470600480360381019061046b9190612c08565b610f20565b60405161047d9190612b39565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a891906128ef565b611008565b6040516104ba9190612b39565b60405180910390f35b3480156104cf57600080fd5b506104d8611051565b005b3480156104e657600080fd5b506104ef6111a4565b6040516104fc9190612bed565b60405180910390f35b34801561051157600080fd5b5061051a6111ca565b6040516105279190612b39565b60405180910390f35b34801561053c57600080fd5b506105456111d0565b005b34801561055357600080fd5b5061055c6112d9565b6040516105699190612b39565b60405180910390f35b34801561057e57600080fd5b5061059960048036038101906105949190612a83565b6112df565b005b3480156105a757600080fd5b506105b06113c2565b6040516105bd9190612bed565b60405180910390f35b3480156105d257600080fd5b506105db6113eb565b6040516105e891906129b5565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190612a0d565b611428565b6040516106259190612a68565b60405180910390f35b34801561063a57600080fd5b50610643611446565b6040516106509190612b39565b60405180910390f35b34801561066557600080fd5b5061066e61144c565b60405161067b9190612b39565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612a83565b611452565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190612c08565b611535565b6040516106e19190612b39565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190612a83565b6115bc565b005b34801561071f57600080fd5b5061073a600480360381019061073591906128ef565b6116d0565b005b610744611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c890612c94565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083690612d00565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161087a9190612bed565b602060405180830381865afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190612d35565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6108e16113c2565b836040518363ffffffff1660e01b81526004016108ff929190612d62565b6020604051808303816000875af115801561091e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109429190612db7565b505050565b60606040518060400160405280600781526020017f4d435452554d5000000000000000000000000000000000000000000000000000815250905090565b6000610998610991611955565b848461195d565b6001905092915050565b6109aa611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90612c94565b60405180910390fd5b60008111610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7190612e30565b60405180910390fd5b8060088190555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b033b2e3c9fd0803ce8000000905090565b610ac6611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4a90612c94565b60405180910390fd5b610b5b6113c2565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610ba0573d6000803e3d6000fd5b50565b6000610bb0848484611b26565b610c7184610bbc611955565b610c6c8560405180606001604052806028815260200161388060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c22611955565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be9092919063ffffffff16565b61195d565b600190509392505050565b610c84611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0890612c94565b60405180910390fd5b6002811115610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c90612e9c565b60405180910390fd5b610d876064610d79836b033b2e3c9fd0803ce800000061189190919063ffffffff16565b61190b90919063ffffffff16565b60078190555050565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460149054906101000a900460ff1681565b600a5481565b610de0611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490612c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390612f08565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460149054906101000a900460ff16610f3f5760009050611002565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f9e57600a549050611002565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ffd57600b549050611002565b600090505b92915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611059611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90612c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b6111d8611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c90612c94565b60405180910390fd5b600460149054906101000a900460ff16156112b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ac90612f74565b60405180910390fd5b6001600460146101000a81548160ff02191690831515021790555042600581905550565b60065481565b6112e7611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b90612c94565b60405180910390fd5b60148111156113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90612fe0565b60405180910390fd5b80600b8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4d435452554d5000000000000000000000000000000000000000000000000000815250905090565b600061143c611435611955565b8484611b26565b6001905092915050565b60075481565b600b5481565b61145a611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de90612c94565b60405180910390fd5b601481111561152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290612fe0565b60405180910390fd5b80600a8190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c4611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164890612c94565b60405180910390fd5b6002811115611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612e9c565b60405180910390fd5b6116c760646116b9836b033b2e3c9fd0803ce800000061189190919063ffffffff16565b61190b90919063ffffffff16565b60068190555050565b6116d8611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175c90612c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90613072565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083036118a35760009050611905565b600082846118b191906130c1565b90508284826118c0919061314a565b14611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f7906131ed565b60405180910390fd5b809150505b92915050565b600061194d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612422565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c390613259565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906132c5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b199190612b39565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613331565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb9061339d565b60405180910390fd5b60008111611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613409565b60405180910390fd5b600460149054906101000a900460ff1680611c945750611c656113c2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cca90613475565b60405180910390fd5b611cdb6113c2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d495750611d196113c2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d9457600654811115611d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8a906134e1565b60405180910390fd5b5b611d9c6113c2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611e255750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e90576000611e4782611e3985611008565b61248590919063ffffffff16565b9050600754811115611e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e859061354d565b60405180910390fd5b505b600960149054906101000a900460ff16158015611efb5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f115750600854611f0e30611008565b10155b15611f1f57611f1e6124e3565b5b6000600960149054906101000a900460ff16611f6d576000611f418585610f20565b9050611f696064611f5b838661189190919063ffffffff16565b61190b90919063ffffffff16565b9150505b600081111561222857611fc882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061205d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121046120b6828461284290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121a49190612b39565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61220e848661284290919063ffffffff16565b60405161221b9190612b39565b60405180910390a36123b8565b61227a82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123af9190612b39565b60405180910390a35b50505050565b6000838311158290612406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fd91906129b5565b60405180910390fd5b5060008385612415919061356d565b9050809150509392505050565b60008083118290612469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246091906129b5565b60405180910390fd5b5060008385612478919061314a565b9050809150509392505050565b600080828461249491906135a1565b9050838110156124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d090613643565b60405180910390fd5b8091505092915050565b6001600960146101000a81548160ff021916908315150217905550600061250930611008565b9050600081036125195750612825565b6000600267ffffffffffffffff81111561253657612535613663565b5b6040519080825280602002602001820160405280156125645781602001602082028036833780820191505090505b509050308160008151811061257c5761257b613692565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612623573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264791906136d6565b8160018151811061265b5761265a613692565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126c230600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461195d565b6000479050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161272b9594939291906137fc565b600060405180830381600087803b15801561274557600080fd5b505af1158015612759573d6000803e3d6000fd5b505050506000612772824761284290919063ffffffff16565b9050600081111561282057600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156127e5573d6000803e3d6000fd5b507f957ad1fc6d4d41da6d1a8d37303289ef3c4b78e0285ff5df1e12070ef0e629998482604051612817929190613856565b60405180910390a15b505050505b6000600960146101000a81548160ff021916908315150217905550565b600061288483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123be565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128bc82612891565b9050919050565b6128cc816128b1565b81146128d757600080fd5b50565b6000813590506128e9816128c3565b92915050565b6000602082840312156129055761290461288c565b5b6000612913848285016128da565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561295657808201518184015260208101905061293b565b83811115612965576000848401525b50505050565b6000601f19601f8301169050919050565b60006129878261291c565b6129918185612927565b93506129a1818560208601612938565b6129aa8161296b565b840191505092915050565b600060208201905081810360008301526129cf818461297c565b905092915050565b6000819050919050565b6129ea816129d7565b81146129f557600080fd5b50565b600081359050612a07816129e1565b92915050565b60008060408385031215612a2457612a2361288c565b5b6000612a32858286016128da565b9250506020612a43858286016129f8565b9150509250929050565b60008115159050919050565b612a6281612a4d565b82525050565b6000602082019050612a7d6000830184612a59565b92915050565b600060208284031215612a9957612a9861288c565b5b6000612aa7848285016129f8565b91505092915050565b6000819050919050565b6000612ad5612ad0612acb84612891565b612ab0565b612891565b9050919050565b6000612ae782612aba565b9050919050565b6000612af982612adc565b9050919050565b612b0981612aee565b82525050565b6000602082019050612b246000830184612b00565b92915050565b612b33816129d7565b82525050565b6000602082019050612b4e6000830184612b2a565b92915050565b600080600060608486031215612b6d57612b6c61288c565b5b6000612b7b868287016128da565b9350506020612b8c868287016128da565b9250506040612b9d868287016129f8565b9150509250925092565b600060ff82169050919050565b612bbd81612ba7565b82525050565b6000602082019050612bd86000830184612bb4565b92915050565b612be7816128b1565b82525050565b6000602082019050612c026000830184612bde565b92915050565b60008060408385031215612c1f57612c1e61288c565b5b6000612c2d858286016128da565b9250506020612c3e858286016128da565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c7e602083612927565b9150612c8982612c48565b602082019050919050565b60006020820190508181036000830152612cad81612c71565b9050919050565b7f43616e6e6f7420726573637565204d435452554d500000000000000000000000600082015250565b6000612cea601583612927565b9150612cf582612cb4565b602082019050919050565b60006020820190508181036000830152612d1981612cdd565b9050919050565b600081519050612d2f816129e1565b92915050565b600060208284031215612d4b57612d4a61288c565b5b6000612d5984828501612d20565b91505092915050565b6000604082019050612d776000830185612bde565b612d846020830184612b2a565b9392505050565b612d9481612a4d565b8114612d9f57600080fd5b50565b600081519050612db181612d8b565b92915050565b600060208284031215612dcd57612dcc61288c565b5b6000612ddb84828501612da2565b91505092915050565b7f43616e6e6f74206265207a65726f000000000000000000000000000000000000600082015250565b6000612e1a600e83612927565b9150612e2582612de4565b602082019050919050565b60006020820190508181036000830152612e4981612e0d565b9050919050565b7f4d61782032250000000000000000000000000000000000000000000000000000600082015250565b6000612e86600683612927565b9150612e9182612e50565b602082019050919050565b60006020820190508181036000830152612eb581612e79565b9050919050565b7f43616e6e6f74206265207a65726f206164647265737300000000000000000000600082015250565b6000612ef2601683612927565b9150612efd82612ebc565b602082019050919050565b60006020820190508181036000830152612f2181612ee5565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612f5e601783612927565b9150612f6982612f28565b602082019050919050565b60006020820190508181036000830152612f8d81612f51565b9050919050565b7f5461782063616e6e6f7420657863656564203230250000000000000000000000600082015250565b6000612fca601583612927565b9150612fd582612f94565b602082019050919050565b60006020820190508181036000830152612ff981612fbd565b9050919050565b7f4f776e61626c653a206e6577206f776e6572206973207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061305c602283612927565b915061306782613000565b604082019050919050565b6000602082019050818103600083015261308b8161304f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130cc826129d7565b91506130d7836129d7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131105761310f613092565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613155826129d7565b9150613160836129d7565b9250826131705761316f61311b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131d7602183612927565b91506131e28261317b565b604082019050919050565b60006020820190508181036000830152613206816131ca565b9050919050565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b6000613243601183612927565b915061324e8261320d565b602082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b60006132af600f83612927565b91506132ba82613279565b602082019050919050565b600060208201905081810360008301526132de816132a2565b9050919050565b7f5472616e736665722066726f6d207a65726f0000000000000000000000000000600082015250565b600061331b601283612927565b9150613326826132e5565b602082019050919050565b6000602082019050818103600083015261334a8161330e565b9050919050565b7f5472616e7366657220746f207a65726f00000000000000000000000000000000600082015250565b6000613387601083612927565b915061339282613351565b602082019050919050565b600060208201905081810360008301526133b68161337a565b9050919050565b7f5472616e7366657220616d6f756e74207a65726f000000000000000000000000600082015250565b60006133f3601483612927565b91506133fe826133bd565b602082019050919050565b60006020820190508181036000830152613422816133e6565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b600061345f601383612927565b915061346a82613429565b602082019050919050565b6000602082019050818103600083015261348e81613452565b9050919050565b7f5472616e736665722065786365656473206d6178000000000000000000000000600082015250565b60006134cb601483612927565b91506134d682613495565b602082019050919050565b600060208201905081810360008301526134fa816134be565b9050919050565b7f45786365656473206d61782077616c6c65740000000000000000000000000000600082015250565b6000613537601283612927565b915061354282613501565b602082019050919050565b600060208201905081810360008301526135668161352a565b9050919050565b6000613578826129d7565b9150613583836129d7565b92508282101561359657613595613092565b5b828203905092915050565b60006135ac826129d7565b91506135b7836129d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135ec576135eb613092565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061362d601b83612927565b9150613638826135f7565b602082019050919050565b6000602082019050818103600083015261365c81613620565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506136d0816128c3565b92915050565b6000602082840312156136ec576136eb61288c565b5b60006136fa848285016136c1565b91505092915050565b6000819050919050565b600061372861372361371e84613703565b612ab0565b6129d7565b9050919050565b6137388161370d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613773816128b1565b82525050565b6000613785838361376a565b60208301905092915050565b6000602082019050919050565b60006137a98261373e565b6137b38185613749565b93506137be8361375a565b8060005b838110156137ef5781516137d68882613779565b97506137e183613791565b9250506001810190506137c2565b5085935050505092915050565b600060a0820190506138116000830188612b2a565b61381e602083018761372f565b8181036040830152613830818661379e565b905061383f6060830185612bde565b61384c6080830184612b2a565b9695505050505050565b600060408201905061386b6000830185612b2a565b6138786020830184612b2a565b939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203133c781c27c27cb6348225bf115dc557f9869e6433f002eab28b8a2b50a01b764736f6c634300080e0033
Deployed Bytecode
0x6080604052600436106101db5760003560e01c806370a082311161010257806395d89b4111610095578063dc1052e211610064578063dc1052e214610684578063dd62ed3e146106ad578063ec28438a146106ea578063f2fde38b14610713576101e2565b806395d89b41146105c6578063a9059cbb146105f1578063aa4bde281461062e578063cc1776d314610659576101e2565b80638a8c523c116100d15780638a8c523c146105305780638c0b5e22146105475780638cd09d50146105725780638da5cb5b1461059b576101e2565b806370a0823114610486578063715018a6146104c357806375f0a874146104da578063790ca41314610505576101e2565b806323b872dd1161017a5780634ada218b116101495780634ada218b146103ca5780634f7041a5146103f55780635d098b38146104205780636952fdbe14610449576101e2565b806323b872dd1461030e57806327a14fc21461034b578063313ce5671461037457806349bd5a5e1461039f576101e2565b80630f569dad116101b65780630f569dad146102785780631694505e146102a157806318160ddd146102cc57806320800a00146102f7576101e2565b8062ae3bf8146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e600480360381019061020991906128ef565b61073c565b005b34801561021c57600080fd5b50610225610947565b60405161023291906129b5565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190612a0d565b610984565b60405161026f9190612a68565b60405180910390f35b34801561028457600080fd5b5061029f600480360381019061029a9190612a83565b6109a2565b005b3480156102ad57600080fd5b506102b6610a84565b6040516102c39190612b0f565b60405180910390f35b3480156102d857600080fd5b506102e1610aaa565b6040516102ee9190612b39565b60405180910390f35b34801561030357600080fd5b5061030c610abe565b005b34801561031a57600080fd5b5061033560048036038101906103309190612b54565b610ba3565b6040516103429190612a68565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612a83565b610c7c565b005b34801561038057600080fd5b50610389610d90565b6040516103969190612bc3565b60405180910390f35b3480156103ab57600080fd5b506103b4610d99565b6040516103c19190612bed565b60405180910390f35b3480156103d657600080fd5b506103df610dbf565b6040516103ec9190612a68565b60405180910390f35b34801561040157600080fd5b5061040a610dd2565b6040516104179190612b39565b60405180910390f35b34801561042c57600080fd5b50610447600480360381019061044291906128ef565b610dd8565b005b34801561045557600080fd5b50610470600480360381019061046b9190612c08565b610f20565b60405161047d9190612b39565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a891906128ef565b611008565b6040516104ba9190612b39565b60405180910390f35b3480156104cf57600080fd5b506104d8611051565b005b3480156104e657600080fd5b506104ef6111a4565b6040516104fc9190612bed565b60405180910390f35b34801561051157600080fd5b5061051a6111ca565b6040516105279190612b39565b60405180910390f35b34801561053c57600080fd5b506105456111d0565b005b34801561055357600080fd5b5061055c6112d9565b6040516105699190612b39565b60405180910390f35b34801561057e57600080fd5b5061059960048036038101906105949190612a83565b6112df565b005b3480156105a757600080fd5b506105b06113c2565b6040516105bd9190612bed565b60405180910390f35b3480156105d257600080fd5b506105db6113eb565b6040516105e891906129b5565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190612a0d565b611428565b6040516106259190612a68565b60405180910390f35b34801561063a57600080fd5b50610643611446565b6040516106509190612b39565b60405180910390f35b34801561066557600080fd5b5061066e61144c565b60405161067b9190612b39565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612a83565b611452565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190612c08565b611535565b6040516106e19190612b39565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190612a83565b6115bc565b005b34801561071f57600080fd5b5061073a600480360381019061073591906128ef565b6116d0565b005b610744611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c890612c94565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361083f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083690612d00565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161087a9190612bed565b602060405180830381865afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190612d35565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6108e16113c2565b836040518363ffffffff1660e01b81526004016108ff929190612d62565b6020604051808303816000875af115801561091e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109429190612db7565b505050565b60606040518060400160405280600781526020017f4d435452554d5000000000000000000000000000000000000000000000000000815250905090565b6000610998610991611955565b848461195d565b6001905092915050565b6109aa611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90612c94565b60405180910390fd5b60008111610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7190612e30565b60405180910390fd5b8060088190555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b033b2e3c9fd0803ce8000000905090565b610ac6611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4a90612c94565b60405180910390fd5b610b5b6113c2565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610ba0573d6000803e3d6000fd5b50565b6000610bb0848484611b26565b610c7184610bbc611955565b610c6c8560405180606001604052806028815260200161388060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c22611955565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be9092919063ffffffff16565b61195d565b600190509392505050565b610c84611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0890612c94565b60405180910390fd5b6002811115610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c90612e9c565b60405180910390fd5b610d876064610d79836b033b2e3c9fd0803ce800000061189190919063ffffffff16565b61190b90919063ffffffff16565b60078190555050565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460149054906101000a900460ff1681565b600a5481565b610de0611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490612c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390612f08565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460149054906101000a900460ff16610f3f5760009050611002565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f9e57600a549050611002565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ffd57600b549050611002565b600090505b92915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611059611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90612c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b6111d8611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c90612c94565b60405180910390fd5b600460149054906101000a900460ff16156112b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ac90612f74565b60405180910390fd5b6001600460146101000a81548160ff02191690831515021790555042600581905550565b60065481565b6112e7611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b90612c94565b60405180910390fd5b60148111156113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90612fe0565b60405180910390fd5b80600b8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4d435452554d5000000000000000000000000000000000000000000000000000815250905090565b600061143c611435611955565b8484611b26565b6001905092915050565b60075481565b600b5481565b61145a611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de90612c94565b60405180910390fd5b601481111561152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290612fe0565b60405180910390fd5b80600a8190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c4611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164890612c94565b60405180910390fd5b6002811115611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612e9c565b60405180910390fd5b6116c760646116b9836b033b2e3c9fd0803ce800000061189190919063ffffffff16565b61190b90919063ffffffff16565b60068190555050565b6116d8611955565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175c90612c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90613072565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083036118a35760009050611905565b600082846118b191906130c1565b90508284826118c0919061314a565b14611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f7906131ed565b60405180910390fd5b809150505b92915050565b600061194d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612422565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c390613259565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906132c5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b199190612b39565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613331565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb9061339d565b60405180910390fd5b60008111611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613409565b60405180910390fd5b600460149054906101000a900460ff1680611c945750611c656113c2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cca90613475565b60405180910390fd5b611cdb6113c2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d495750611d196113c2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d9457600654811115611d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8a906134e1565b60405180910390fd5b5b611d9c6113c2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611e255750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e90576000611e4782611e3985611008565b61248590919063ffffffff16565b9050600754811115611e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e859061354d565b60405180910390fd5b505b600960149054906101000a900460ff16158015611efb5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f115750600854611f0e30611008565b10155b15611f1f57611f1e6124e3565b5b6000600960149054906101000a900460ff16611f6d576000611f418585610f20565b9050611f696064611f5b838661189190919063ffffffff16565b61190b90919063ffffffff16565b9150505b600081111561222857611fc882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061205d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121046120b6828461284290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121a49190612b39565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61220e848661284290919063ffffffff16565b60405161221b9190612b39565b60405180910390a36123b8565b61227a82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123af9190612b39565b60405180910390a35b50505050565b6000838311158290612406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fd91906129b5565b60405180910390fd5b5060008385612415919061356d565b9050809150509392505050565b60008083118290612469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246091906129b5565b60405180910390fd5b5060008385612478919061314a565b9050809150509392505050565b600080828461249491906135a1565b9050838110156124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d090613643565b60405180910390fd5b8091505092915050565b6001600960146101000a81548160ff021916908315150217905550600061250930611008565b9050600081036125195750612825565b6000600267ffffffffffffffff81111561253657612535613663565b5b6040519080825280602002602001820160405280156125645781602001602082028036833780820191505090505b509050308160008151811061257c5761257b613692565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612623573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264791906136d6565b8160018151811061265b5761265a613692565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126c230600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461195d565b6000479050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161272b9594939291906137fc565b600060405180830381600087803b15801561274557600080fd5b505af1158015612759573d6000803e3d6000fd5b505050506000612772824761284290919063ffffffff16565b9050600081111561282057600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156127e5573d6000803e3d6000fd5b507f957ad1fc6d4d41da6d1a8d37303289ef3c4b78e0285ff5df1e12070ef0e629998482604051612817929190613856565b60405180910390a15b505050505b6000600960146101000a81548160ff021916908315150217905550565b600061288483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123be565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128bc82612891565b9050919050565b6128cc816128b1565b81146128d757600080fd5b50565b6000813590506128e9816128c3565b92915050565b6000602082840312156129055761290461288c565b5b6000612913848285016128da565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561295657808201518184015260208101905061293b565b83811115612965576000848401525b50505050565b6000601f19601f8301169050919050565b60006129878261291c565b6129918185612927565b93506129a1818560208601612938565b6129aa8161296b565b840191505092915050565b600060208201905081810360008301526129cf818461297c565b905092915050565b6000819050919050565b6129ea816129d7565b81146129f557600080fd5b50565b600081359050612a07816129e1565b92915050565b60008060408385031215612a2457612a2361288c565b5b6000612a32858286016128da565b9250506020612a43858286016129f8565b9150509250929050565b60008115159050919050565b612a6281612a4d565b82525050565b6000602082019050612a7d6000830184612a59565b92915050565b600060208284031215612a9957612a9861288c565b5b6000612aa7848285016129f8565b91505092915050565b6000819050919050565b6000612ad5612ad0612acb84612891565b612ab0565b612891565b9050919050565b6000612ae782612aba565b9050919050565b6000612af982612adc565b9050919050565b612b0981612aee565b82525050565b6000602082019050612b246000830184612b00565b92915050565b612b33816129d7565b82525050565b6000602082019050612b4e6000830184612b2a565b92915050565b600080600060608486031215612b6d57612b6c61288c565b5b6000612b7b868287016128da565b9350506020612b8c868287016128da565b9250506040612b9d868287016129f8565b9150509250925092565b600060ff82169050919050565b612bbd81612ba7565b82525050565b6000602082019050612bd86000830184612bb4565b92915050565b612be7816128b1565b82525050565b6000602082019050612c026000830184612bde565b92915050565b60008060408385031215612c1f57612c1e61288c565b5b6000612c2d858286016128da565b9250506020612c3e858286016128da565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c7e602083612927565b9150612c8982612c48565b602082019050919050565b60006020820190508181036000830152612cad81612c71565b9050919050565b7f43616e6e6f7420726573637565204d435452554d500000000000000000000000600082015250565b6000612cea601583612927565b9150612cf582612cb4565b602082019050919050565b60006020820190508181036000830152612d1981612cdd565b9050919050565b600081519050612d2f816129e1565b92915050565b600060208284031215612d4b57612d4a61288c565b5b6000612d5984828501612d20565b91505092915050565b6000604082019050612d776000830185612bde565b612d846020830184612b2a565b9392505050565b612d9481612a4d565b8114612d9f57600080fd5b50565b600081519050612db181612d8b565b92915050565b600060208284031215612dcd57612dcc61288c565b5b6000612ddb84828501612da2565b91505092915050565b7f43616e6e6f74206265207a65726f000000000000000000000000000000000000600082015250565b6000612e1a600e83612927565b9150612e2582612de4565b602082019050919050565b60006020820190508181036000830152612e4981612e0d565b9050919050565b7f4d61782032250000000000000000000000000000000000000000000000000000600082015250565b6000612e86600683612927565b9150612e9182612e50565b602082019050919050565b60006020820190508181036000830152612eb581612e79565b9050919050565b7f43616e6e6f74206265207a65726f206164647265737300000000000000000000600082015250565b6000612ef2601683612927565b9150612efd82612ebc565b602082019050919050565b60006020820190508181036000830152612f2181612ee5565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612f5e601783612927565b9150612f6982612f28565b602082019050919050565b60006020820190508181036000830152612f8d81612f51565b9050919050565b7f5461782063616e6e6f7420657863656564203230250000000000000000000000600082015250565b6000612fca601583612927565b9150612fd582612f94565b602082019050919050565b60006020820190508181036000830152612ff981612fbd565b9050919050565b7f4f776e61626c653a206e6577206f776e6572206973207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061305c602283612927565b915061306782613000565b604082019050919050565b6000602082019050818103600083015261308b8161304f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130cc826129d7565b91506130d7836129d7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131105761310f613092565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613155826129d7565b9150613160836129d7565b9250826131705761316f61311b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131d7602183612927565b91506131e28261317b565b604082019050919050565b60006020820190508181036000830152613206816131ca565b9050919050565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b6000613243601183612927565b915061324e8261320d565b602082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b60006132af600f83612927565b91506132ba82613279565b602082019050919050565b600060208201905081810360008301526132de816132a2565b9050919050565b7f5472616e736665722066726f6d207a65726f0000000000000000000000000000600082015250565b600061331b601283612927565b9150613326826132e5565b602082019050919050565b6000602082019050818103600083015261334a8161330e565b9050919050565b7f5472616e7366657220746f207a65726f00000000000000000000000000000000600082015250565b6000613387601083612927565b915061339282613351565b602082019050919050565b600060208201905081810360008301526133b68161337a565b9050919050565b7f5472616e7366657220616d6f756e74207a65726f000000000000000000000000600082015250565b60006133f3601483612927565b91506133fe826133bd565b602082019050919050565b60006020820190508181036000830152613422816133e6565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b600061345f601383612927565b915061346a82613429565b602082019050919050565b6000602082019050818103600083015261348e81613452565b9050919050565b7f5472616e736665722065786365656473206d6178000000000000000000000000600082015250565b60006134cb601483612927565b91506134d682613495565b602082019050919050565b600060208201905081810360008301526134fa816134be565b9050919050565b7f45786365656473206d61782077616c6c65740000000000000000000000000000600082015250565b6000613537601283612927565b915061354282613501565b602082019050919050565b600060208201905081810360008301526135668161352a565b9050919050565b6000613578826129d7565b9150613583836129d7565b92508282101561359657613595613092565b5b828203905092915050565b60006135ac826129d7565b91506135b7836129d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135ec576135eb613092565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061362d601b83612927565b9150613638826135f7565b602082019050919050565b6000602082019050818103600083015261365c81613620565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506136d0816128c3565b92915050565b6000602082840312156136ec576136eb61288c565b5b60006136fa848285016136c1565b91505092915050565b6000819050919050565b600061372861372361371e84613703565b612ab0565b6129d7565b9050919050565b6137388161370d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613773816128b1565b82525050565b6000613785838361376a565b60208301905092915050565b6000602082019050919050565b60006137a98261373e565b6137b38185613749565b93506137be8361375a565b8060005b838110156137ef5781516137d68882613779565b97506137e183613791565b9250506001810190506137c2565b5085935050505092915050565b600060a0820190506138116000830188612b2a565b61381e602083018761372f565b8181036040830152613830818661379e565b905061383f6060830185612bde565b61384c6080830184612b2a565b9695505050505050565b600060408201905061386b6000830185612b2a565b6138786020830184612b2a565b939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203133c781c27c27cb6348225bf115dc557f9869e6433f002eab28b8a2b50a01b764736f6c634300080e0033
Deployed Bytecode Sourcemap
6840:11372:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17885:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10817:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12472:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17218:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7824:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11094:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17770:107;;;;;;;;;;;;;:::i;:::-;;12641:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17390:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11003:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7872:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8096:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8885:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16848:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11662:437;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11197:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6262:148;;;;;;;;;;;;;:::i;:::-;;8599:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8129:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16655:185;;;;;;;;;;;;;:::i;:::-;;8161:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9157:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6048:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10908:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12297:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8242:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8943:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9004:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11324:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17037:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6418:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17885:287;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17991:4:::1;17967:29;;:12;:29;;::::0;17959:63:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18033:20;18063:12;18056:30;;;18095:4;18056:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18033:68;;18119:12;18112:29;;;18142:7;:5;:7::i;:::-;18151:12;18112:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17948:224;17885:287:::0;:::o;10817:83::-;10854:13;10887:5;;;;;;;;;;;;;;;;;10880:12;;10817:83;:::o;12472:161::-;12547:4;12564:39;12573:12;:10;:12::i;:::-;12587:7;12596:6;12564:8;:39::i;:::-;12621:4;12614:11;;12472:161;;;;:::o;17218:164::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17315:1:::1;17303:9;:13;17295:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;17365:9;17346:16;:28;;;;17218:164:::0;:::o;7824:41::-;;;;;;;;;;;;;:::o;11094:95::-;11147:7;7289:19;11167:14;;11094:95;:::o;17770:107::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17829:7:::1;:5;:7::i;:::-;17821:25;;:48;17847:21;17821:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17770:107::o:0;12641:313::-;12739:4;12756:36;12766:6;12774:9;12785:6;12756:9;:36::i;:::-;12803:121;12812:6;12820:12;:10;:12::i;:::-;12834:89;12872:6;12834:89;;;;;;;;;;;;;;;;;:11;:19;12846:6;12834:19;;;;;;;;;;;;;;;:33;12854:12;:10;:12::i;:::-;12834:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12803:8;:121::i;:::-;12942:4;12935:11;;12641:313;;;;;:::o;17390:181::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17490:1:::1;17476:10;:15;;17468:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;17531:32;17559:3;17531:23;17543:10;7289:19;17531:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;17513:15;:50;;;;17390:181:::0;:::o;11003:83::-;11044:5;7245:2;11062:16;;11003:83;:::o;7872:28::-;;;;;;;;;;;;;:::o;8096:26::-;;;;;;;;;;;;;:::o;8885:25::-;;;;:::o;16848:181::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16954:1:::1;16933:23;;:9;:23;;::::0;16925:58:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17012:9;16994:15;;:27;;;;;;;;;;;;;;;;;;16848:181:::0;:::o;11662:437::-;11736:7;11761:14;;;;;;;;;;;11756:56;;11799:1;11792:8;;;;11756:56;11868:13;;;;;;;;;;;11860:21;;:4;:21;;;11856:67;;11905:6;;11898:13;;;;11856:67;11984:13;;;;;;;;;;;11978:19;;:2;:19;;;11974:66;;12021:7;;12014:14;;;;11974:66;12059:1;12052:8;;11662:437;;;;;:::o;11197:119::-;11263:7;11290:9;:18;11300:7;11290:18;;;;;;;;;;;;;;;;11283:25;;11197:119;;;:::o;6262:148::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6369:1:::1;6332:40;;6353:6;::::0;::::1;;;;;;;;6332:40;;;;;;;;;;;;6400:1;6383:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6262:148::o:0;8599:30::-;;;;;;;;;;;;;:::o;8129:25::-;;;;:::o;16655:185::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16719:14:::1;;;;;;;;;;;16718:15;16710:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16789:4;16772:14;;:21;;;;;;;;;;;;;;;;;;16817:15;16804:10;:28;;;;16655:185::o:0;8161:52::-;;;;:::o;9157:147::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9241:2:::1;9231:6;:12;;9223:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9290:6;9280:7;:16;;;;9157:147:::0;:::o;6048:79::-;6086:7;6113:6;;;;;;;;;;;6106:13;;6048:79;:::o;10908:87::-;10947:13;10980:7;;;;;;;;;;;;;;;;;10973:14;;10908:87;:::o;12297:167::-;12375:4;12392:42;12402:12;:10;:12::i;:::-;12416:9;12427:6;12392:9;:42::i;:::-;12452:4;12445:11;;12297:167;;;;:::o;8242:56::-;;;;:::o;8943:26::-;;;;:::o;9004:145::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9087:2:::1;9077:6;:12;;9069:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9135:6;9126;:15;;;;9004:145:::0;:::o;11324:143::-;11405:7;11432:11;:18;11444:5;11432:18;;;;;;;;;;;;;;;:27;11451:7;11432:27;;;;;;;;;;;;;;;;11425:34;;11324:143;;;;:::o;17037:173::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17133:1:::1;17119:10;:15;;17111:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;17170:32;17198:3;17170:23;17182:10;7289:19;17170:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;17156:11;:46;;;;17037:173:::0;:::o;6418:240::-;6185:12;:10;:12::i;:::-;6175:22;;:6;;;;;;;;;;:22;;;6167:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6527:1:::1;6507:22;;:8;:22;;::::0;6499:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6613:8;6584:38;;6605:6;::::0;::::1;;;;;;;;6584:38;;;;;;;;;;;;6642:8;6633:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6418:240:::0;:::o;4821:246::-;4879:7;4908:1;4903;:6;4899:47;;4933:1;4926:8;;;;4899:47;4956:9;4972:1;4968;:5;;;;:::i;:::-;4956:17;;5001:1;4996;4992;:5;;;;:::i;:::-;:10;4984:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5058:1;5051:8;;;4821:246;;;;;:::o;5075:132::-;5133:7;5160:39;5164:1;5167;5160:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5153:46;;5075:132;;;;:::o;5624:98::-;5677:7;5704:10;5697:17;;5624:98;:::o;12962:297::-;13072:1;13055:19;;:5;:19;;;13047:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;13134:1;13115:21;;:7;:21;;;13107:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;13197:6;13167:11;:18;13179:5;13167:18;;;;;;;;;;;;;;;:27;13186:7;13167:27;;;;;;;;;;;;;;;:36;;;;13235:7;13219:32;;13228:5;13219:32;;;13244:6;13219:32;;;;;;:::i;:::-;;;;;;;;12962:297;;;:::o;13453:1885::-;13602:1;13584:20;;:6;:20;;;13576:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;13667:1;13646:23;;:9;:23;;;13638:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13718:1;13709:6;:10;13701:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;13763:14;;;;;;;;;;;:35;;;;13791:7;:5;:7::i;:::-;13781:17;;:6;:17;;;13763:35;13755:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13857:7;:5;:7::i;:::-;13847:17;;:6;:17;;;;:41;;;;;13881:7;:5;:7::i;:::-;13868:20;;:9;:20;;;;13847:41;13843:128;;;13923:11;;13913:6;:21;;13905:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;13843:128;14062:7;:5;:7::i;:::-;14049:20;;:9;:20;;;;:50;;;;;14086:13;;;;;;;;;;;14073:26;;:9;:26;;;;14049:50;14045:223;;;14116:24;14143:32;14168:6;14143:20;14153:9;14143;:20::i;:::-;:24;;:32;;;;:::i;:::-;14116:59;;14218:15;;14198:16;:35;;14190:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14101:167;14045:223;14361:6;;;;;;;;;;;14360:7;:48;;;;;14395:13;;;;;;;;;;;14385:23;;:6;:23;;;;14360:48;:109;;;;;14453:16;;14425:24;14443:4;14425:9;:24::i;:::-;:44;;14360:109;14342:184;;;14496:18;:16;:18::i;:::-;14342:184;14538:17;14575:6;;;;;;;;;;;14570:149;;14598:15;14616:36;14634:6;14642:9;14616:17;:36::i;:::-;14598:54;;14679:28;14703:3;14679:19;14690:7;14679:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14667:40;;14583:136;14570:149;14747:1;14735:9;:13;14731:600;;;14785:29;14807:6;14785:9;:17;14795:6;14785:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;14765:9;:17;14775:6;14765:17;;;;;;;;;;;;;;;:49;;;;14856:39;14885:9;14856;:24;14874:4;14856:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14829:9;:24;14847:4;14829:24;;;;;;;;;;;;;;;:66;;;;14933:47;14958:21;14969:9;14958:6;:10;;:21;;;;:::i;:::-;14933:9;:20;14943:9;14933:20;;;;;;;;;;;;;;;;:24;;:47;;;;:::i;:::-;14910:9;:20;14920:9;14910:20;;;;;;;;;;;;;;;:70;;;;15025:4;15000:42;;15009:6;15000:42;;;15032:9;15000:42;;;;;;:::i;:::-;;;;;;;;15079:9;15062:50;;15071:6;15062:50;;;15090:21;15101:9;15090:6;:10;;:21;;;;:::i;:::-;15062:50;;;;;;:::i;:::-;;;;;;;;14731:600;;;15165:29;15187:6;15165:9;:17;15175:6;15165:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;15145:9;:17;15155:6;15145:17;;;;;;;;;;;;;;;:49;;;;15232:32;15257:6;15232:9;:20;15242:9;15232:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15209:9;:20;15219:9;15209:20;;;;;;;;;;;;;;;:55;;;;15301:9;15284:35;;15293:6;15284:35;;;15312:6;15284:35;;;;;;:::i;:::-;;;;;;;;14731:600;13565:1773;13453:1885;;;:::o;4623:190::-;4709:7;4742:1;4737;:6;;4745:12;4729:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4769:9;4785:1;4781;:5;;;;:::i;:::-;4769:17;;4804:1;4797:8;;;4623:190;;;;;:::o;5215:189::-;5301:7;5333:1;5329;:5;5336:12;5321:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5360:9;5376:1;5372;:5;;;;:::i;:::-;5360:17;;5395:1;5388:8;;;5215:189;;;;;:::o;4292:179::-;4350:7;4370:9;4386:1;4382;:5;;;;:::i;:::-;4370:17;;4411:1;4406;:6;;4398:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4462:1;4455:8;;;4292:179;;;;:::o;15536:924::-;9787:4;9778:6;;:13;;;;;;;;;;;;;;;;;;15595:20:::1;15618:24;15636:4;15618:9;:24::i;:::-;15595:47;;15673:1;15657:12;:17:::0;15653:30:::1;;15676:7;;;15653:30;15703:21;15741:1;15727:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15703:40;;15772:4;15754;15759:1;15754:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15798:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15788:4;15793:1;15788:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15833:63;15850:4;15865:15;;;;;;;;;;;15883:12;15833:8;:63::i;:::-;15909:25;15937:21;15909:49;;15971:15;;;;;;;;;;;:66;;;16052:12;16079:1;16123:4;16150;16170:15;15971:225;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16209:18;16230:44;16256:17;16230:21;:25;;:44;;;;:::i;:::-;16209:65;;16312:1;16299:10;:14;16295:158;;;16338:15;;;;;;;;;;;16330:33;;:45;16364:10;16330:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16395:46;16416:12;16430:10;16395:46;;;;;;;:::i;:::-;;;;;;;;16295:158;15584:876;;;;9802:1;9823:5:::0;9814:6;;:14;;;;;;;;;;;;;;;;;;15536:924::o;4479:136::-;4537:7;4564:43;4568:1;4571;4564:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4557:50;;4479:136;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:99::-;1228:6;1262:5;1256:12;1246:22;;1176:99;;;:::o;1281:169::-;1365:11;1399:6;1394:3;1387:19;1439:4;1434:3;1430:14;1415:29;;1281:169;;;;:::o;1456:307::-;1524:1;1534:113;1548:6;1545:1;1542:13;1534:113;;;1633:1;1628:3;1624:11;1618:18;1614:1;1609:3;1605:11;1598:39;1570:2;1567:1;1563:10;1558:15;;1534:113;;;1665:6;1662:1;1659:13;1656:101;;;1745:1;1736:6;1731:3;1727:16;1720:27;1656:101;1505:258;1456:307;;;:::o;1769:102::-;1810:6;1861:2;1857:7;1852:2;1845:5;1841:14;1837:28;1827:38;;1769:102;;;:::o;1877:364::-;1965:3;1993:39;2026:5;1993:39;:::i;:::-;2048:71;2112:6;2107:3;2048:71;:::i;:::-;2041:78;;2128:52;2173:6;2168:3;2161:4;2154:5;2150:16;2128:52;:::i;:::-;2205:29;2227:6;2205:29;:::i;:::-;2200:3;2196:39;2189:46;;1969:272;1877:364;;;;:::o;2247:313::-;2360:4;2398:2;2387:9;2383:18;2375:26;;2447:9;2441:4;2437:20;2433:1;2422:9;2418:17;2411:47;2475:78;2548:4;2539:6;2475:78;:::i;:::-;2467:86;;2247:313;;;;:::o;2566:77::-;2603:7;2632:5;2621:16;;2566:77;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:329::-;3888:6;3937:2;3925:9;3916:7;3912:23;3908:32;3905:119;;;3943:79;;:::i;:::-;3905:119;4063:1;4088:53;4133:7;4124:6;4113:9;4109:22;4088:53;:::i;:::-;4078:63;;4034:117;3829:329;;;;:::o;4164:60::-;4192:3;4213:5;4206:12;;4164:60;;;:::o;4230:142::-;4280:9;4313:53;4331:34;4340:24;4358:5;4340:24;:::i;:::-;4331:34;:::i;:::-;4313:53;:::i;:::-;4300:66;;4230:142;;;:::o;4378:126::-;4428:9;4461:37;4492:5;4461:37;:::i;:::-;4448:50;;4378:126;;;:::o;4510:152::-;4586:9;4619:37;4650:5;4619:37;:::i;:::-;4606:50;;4510:152;;;:::o;4668:183::-;4781:63;4838:5;4781:63;:::i;:::-;4776:3;4769:76;4668:183;;:::o;4857:274::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:97;5121:1;5110:9;5106:17;5097:6;5027:97;:::i;:::-;4857:274;;;;:::o;5137:118::-;5224:24;5242:5;5224:24;:::i;:::-;5219:3;5212:37;5137:118;;:::o;5261:222::-;5354:4;5392:2;5381:9;5377:18;5369:26;;5405:71;5473:1;5462:9;5458:17;5449:6;5405:71;:::i;:::-;5261:222;;;;:::o;5489:619::-;5566:6;5574;5582;5631:2;5619:9;5610:7;5606:23;5602:32;5599:119;;;5637:79;;:::i;:::-;5599:119;5757:1;5782:53;5827:7;5818:6;5807:9;5803:22;5782:53;:::i;:::-;5772:63;;5728:117;5884:2;5910:53;5955:7;5946:6;5935:9;5931:22;5910:53;:::i;:::-;5900:63;;5855:118;6012:2;6038:53;6083:7;6074:6;6063:9;6059:22;6038:53;:::i;:::-;6028:63;;5983:118;5489:619;;;;;:::o;6114:86::-;6149:7;6189:4;6182:5;6178:16;6167:27;;6114:86;;;:::o;6206:112::-;6289:22;6305:5;6289:22;:::i;:::-;6284:3;6277:35;6206:112;;:::o;6324:214::-;6413:4;6451:2;6440:9;6436:18;6428:26;;6464:67;6528:1;6517:9;6513:17;6504:6;6464:67;:::i;:::-;6324:214;;;;:::o;6544:118::-;6631:24;6649:5;6631:24;:::i;:::-;6626:3;6619:37;6544:118;;:::o;6668:222::-;6761:4;6799:2;6788:9;6784:18;6776:26;;6812:71;6880:1;6869:9;6865:17;6856:6;6812:71;:::i;:::-;6668:222;;;;:::o;6896:474::-;6964:6;6972;7021:2;7009:9;7000:7;6996:23;6992:32;6989:119;;;7027:79;;:::i;:::-;6989:119;7147:1;7172:53;7217:7;7208:6;7197:9;7193:22;7172:53;:::i;:::-;7162:63;;7118:117;7274:2;7300:53;7345:7;7336:6;7325:9;7321:22;7300:53;:::i;:::-;7290:63;;7245:118;6896:474;;;;;:::o;7376:182::-;7516:34;7512:1;7504:6;7500:14;7493:58;7376:182;:::o;7564:366::-;7706:3;7727:67;7791:2;7786:3;7727:67;:::i;:::-;7720:74;;7803:93;7892:3;7803:93;:::i;:::-;7921:2;7916:3;7912:12;7905:19;;7564:366;;;:::o;7936:419::-;8102:4;8140:2;8129:9;8125:18;8117:26;;8189:9;8183:4;8179:20;8175:1;8164:9;8160:17;8153:47;8217:131;8343:4;8217:131;:::i;:::-;8209:139;;7936:419;;;:::o;8361:171::-;8501:23;8497:1;8489:6;8485:14;8478:47;8361:171;:::o;8538:366::-;8680:3;8701:67;8765:2;8760:3;8701:67;:::i;:::-;8694:74;;8777:93;8866:3;8777:93;:::i;:::-;8895:2;8890:3;8886:12;8879:19;;8538:366;;;:::o;8910:419::-;9076:4;9114:2;9103:9;9099:18;9091:26;;9163:9;9157:4;9153:20;9149:1;9138:9;9134:17;9127:47;9191:131;9317:4;9191:131;:::i;:::-;9183:139;;8910:419;;;:::o;9335:143::-;9392:5;9423:6;9417:13;9408:22;;9439:33;9466:5;9439:33;:::i;:::-;9335:143;;;;:::o;9484:351::-;9554:6;9603:2;9591:9;9582:7;9578:23;9574:32;9571:119;;;9609:79;;:::i;:::-;9571:119;9729:1;9754:64;9810:7;9801:6;9790:9;9786:22;9754:64;:::i;:::-;9744:74;;9700:128;9484:351;;;;:::o;9841:332::-;9962:4;10000:2;9989:9;9985:18;9977:26;;10013:71;10081:1;10070:9;10066:17;10057:6;10013:71;:::i;:::-;10094:72;10162:2;10151:9;10147:18;10138:6;10094:72;:::i;:::-;9841:332;;;;;:::o;10179:116::-;10249:21;10264:5;10249:21;:::i;:::-;10242:5;10239:32;10229:60;;10285:1;10282;10275:12;10229:60;10179:116;:::o;10301:137::-;10355:5;10386:6;10380:13;10371:22;;10402:30;10426:5;10402:30;:::i;:::-;10301:137;;;;:::o;10444:345::-;10511:6;10560:2;10548:9;10539:7;10535:23;10531:32;10528:119;;;10566:79;;:::i;:::-;10528:119;10686:1;10711:61;10764:7;10755:6;10744:9;10740:22;10711:61;:::i;:::-;10701:71;;10657:125;10444:345;;;;:::o;10795:164::-;10935:16;10931:1;10923:6;10919:14;10912:40;10795:164;:::o;10965:366::-;11107:3;11128:67;11192:2;11187:3;11128:67;:::i;:::-;11121:74;;11204:93;11293:3;11204:93;:::i;:::-;11322:2;11317:3;11313:12;11306:19;;10965:366;;;:::o;11337:419::-;11503:4;11541:2;11530:9;11526:18;11518:26;;11590:9;11584:4;11580:20;11576:1;11565:9;11561:17;11554:47;11618:131;11744:4;11618:131;:::i;:::-;11610:139;;11337:419;;;:::o;11762:156::-;11902:8;11898:1;11890:6;11886:14;11879:32;11762:156;:::o;11924:365::-;12066:3;12087:66;12151:1;12146:3;12087:66;:::i;:::-;12080:73;;12162:93;12251:3;12162:93;:::i;:::-;12280:2;12275:3;12271:12;12264:19;;11924:365;;;:::o;12295:419::-;12461:4;12499:2;12488:9;12484:18;12476:26;;12548:9;12542:4;12538:20;12534:1;12523:9;12519:17;12512:47;12576:131;12702:4;12576:131;:::i;:::-;12568:139;;12295:419;;;:::o;12720:172::-;12860:24;12856:1;12848:6;12844:14;12837:48;12720:172;:::o;12898:366::-;13040:3;13061:67;13125:2;13120:3;13061:67;:::i;:::-;13054:74;;13137:93;13226:3;13137:93;:::i;:::-;13255:2;13250:3;13246:12;13239:19;;12898:366;;;:::o;13270:419::-;13436:4;13474:2;13463:9;13459:18;13451:26;;13523:9;13517:4;13513:20;13509:1;13498:9;13494:17;13487:47;13551:131;13677:4;13551:131;:::i;:::-;13543:139;;13270:419;;;:::o;13695:173::-;13835:25;13831:1;13823:6;13819:14;13812:49;13695:173;:::o;13874:366::-;14016:3;14037:67;14101:2;14096:3;14037:67;:::i;:::-;14030:74;;14113:93;14202:3;14113:93;:::i;:::-;14231:2;14226:3;14222:12;14215:19;;13874:366;;;:::o;14246:419::-;14412:4;14450:2;14439:9;14435:18;14427:26;;14499:9;14493:4;14489:20;14485:1;14474:9;14470:17;14463:47;14527:131;14653:4;14527:131;:::i;:::-;14519:139;;14246:419;;;:::o;14671:171::-;14811:23;14807:1;14799:6;14795:14;14788:47;14671:171;:::o;14848:366::-;14990:3;15011:67;15075:2;15070:3;15011:67;:::i;:::-;15004:74;;15087:93;15176:3;15087:93;:::i;:::-;15205:2;15200:3;15196:12;15189:19;;14848:366;;;:::o;15220:419::-;15386:4;15424:2;15413:9;15409:18;15401:26;;15473:9;15467:4;15463:20;15459:1;15448:9;15444:17;15437:47;15501:131;15627:4;15501:131;:::i;:::-;15493:139;;15220:419;;;:::o;15645:221::-;15785:34;15781:1;15773:6;15769:14;15762:58;15854:4;15849:2;15841:6;15837:15;15830:29;15645:221;:::o;15872:366::-;16014:3;16035:67;16099:2;16094:3;16035:67;:::i;:::-;16028:74;;16111:93;16200:3;16111:93;:::i;:::-;16229:2;16224:3;16220:12;16213:19;;15872:366;;;:::o;16244:419::-;16410:4;16448:2;16437:9;16433:18;16425:26;;16497:9;16491:4;16487:20;16483:1;16472:9;16468:17;16461:47;16525:131;16651:4;16525:131;:::i;:::-;16517:139;;16244:419;;;:::o;16669:180::-;16717:77;16714:1;16707:88;16814:4;16811:1;16804:15;16838:4;16835:1;16828:15;16855:348;16895:7;16918:20;16936:1;16918:20;:::i;:::-;16913:25;;16952:20;16970:1;16952:20;:::i;:::-;16947:25;;17140:1;17072:66;17068:74;17065:1;17062:81;17057:1;17050:9;17043:17;17039:105;17036:131;;;17147:18;;:::i;:::-;17036:131;17195:1;17192;17188:9;17177:20;;16855:348;;;;:::o;17209:180::-;17257:77;17254:1;17247:88;17354:4;17351:1;17344:15;17378:4;17375:1;17368:15;17395:185;17435:1;17452:20;17470:1;17452:20;:::i;:::-;17447:25;;17486:20;17504:1;17486:20;:::i;:::-;17481:25;;17525:1;17515:35;;17530:18;;:::i;:::-;17515:35;17572:1;17569;17565:9;17560:14;;17395:185;;;;:::o;17586:220::-;17726:34;17722:1;17714:6;17710:14;17703:58;17795:3;17790:2;17782:6;17778:15;17771:28;17586:220;:::o;17812:366::-;17954:3;17975:67;18039:2;18034:3;17975:67;:::i;:::-;17968:74;;18051:93;18140:3;18051:93;:::i;:::-;18169:2;18164:3;18160:12;18153:19;;17812:366;;;:::o;18184:419::-;18350:4;18388:2;18377:9;18373:18;18365:26;;18437:9;18431:4;18427:20;18423:1;18412:9;18408:17;18401:47;18465:131;18591:4;18465:131;:::i;:::-;18457:139;;18184:419;;;:::o;18609:167::-;18749:19;18745:1;18737:6;18733:14;18726:43;18609:167;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:165::-;19719:17;19715:1;19707:6;19703:14;19696:41;19579:165;:::o;19750:366::-;19892:3;19913:67;19977:2;19972:3;19913:67;:::i;:::-;19906:74;;19989:93;20078:3;19989:93;:::i;:::-;20107:2;20102:3;20098:12;20091:19;;19750:366;;;:::o;20122:419::-;20288:4;20326:2;20315:9;20311:18;20303:26;;20375:9;20369:4;20365:20;20361:1;20350:9;20346:17;20339:47;20403:131;20529:4;20403:131;:::i;:::-;20395:139;;20122:419;;;:::o;20547:168::-;20687:20;20683:1;20675:6;20671:14;20664:44;20547:168;:::o;20721:366::-;20863:3;20884:67;20948:2;20943:3;20884:67;:::i;:::-;20877:74;;20960:93;21049:3;20960:93;:::i;:::-;21078:2;21073:3;21069:12;21062:19;;20721:366;;;:::o;21093:419::-;21259:4;21297:2;21286:9;21282:18;21274:26;;21346:9;21340:4;21336:20;21332:1;21321:9;21317:17;21310:47;21374:131;21500:4;21374:131;:::i;:::-;21366:139;;21093:419;;;:::o;21518:166::-;21658:18;21654:1;21646:6;21642:14;21635:42;21518:166;:::o;21690:366::-;21832:3;21853:67;21917:2;21912:3;21853:67;:::i;:::-;21846:74;;21929:93;22018:3;21929:93;:::i;:::-;22047:2;22042:3;22038:12;22031:19;;21690:366;;;:::o;22062:419::-;22228:4;22266:2;22255:9;22251:18;22243:26;;22315:9;22309:4;22305:20;22301:1;22290:9;22286:17;22279:47;22343:131;22469:4;22343:131;:::i;:::-;22335:139;;22062:419;;;:::o;22487:170::-;22627:22;22623:1;22615:6;22611:14;22604:46;22487:170;:::o;22663:366::-;22805:3;22826:67;22890:2;22885:3;22826:67;:::i;:::-;22819:74;;22902:93;22991:3;22902:93;:::i;:::-;23020:2;23015:3;23011:12;23004:19;;22663:366;;;:::o;23035:419::-;23201:4;23239:2;23228:9;23224:18;23216:26;;23288:9;23282:4;23278:20;23274:1;23263:9;23259:17;23252:47;23316:131;23442:4;23316:131;:::i;:::-;23308:139;;23035:419;;;:::o;23460:169::-;23600:21;23596:1;23588:6;23584:14;23577:45;23460:169;:::o;23635:366::-;23777:3;23798:67;23862:2;23857:3;23798:67;:::i;:::-;23791:74;;23874:93;23963:3;23874:93;:::i;:::-;23992:2;23987:3;23983:12;23976:19;;23635:366;;;:::o;24007:419::-;24173:4;24211:2;24200:9;24196:18;24188:26;;24260:9;24254:4;24250:20;24246:1;24235:9;24231:17;24224:47;24288:131;24414:4;24288:131;:::i;:::-;24280:139;;24007:419;;;:::o;24432:170::-;24572:22;24568:1;24560:6;24556:14;24549:46;24432:170;:::o;24608:366::-;24750:3;24771:67;24835:2;24830:3;24771:67;:::i;:::-;24764:74;;24847:93;24936:3;24847:93;:::i;:::-;24965:2;24960:3;24956:12;24949:19;;24608:366;;;:::o;24980:419::-;25146:4;25184:2;25173:9;25169:18;25161:26;;25233:9;25227:4;25223:20;25219:1;25208:9;25204:17;25197:47;25261:131;25387:4;25261:131;:::i;:::-;25253:139;;24980:419;;;:::o;25405:168::-;25545:20;25541:1;25533:6;25529:14;25522:44;25405:168;:::o;25579:366::-;25721:3;25742:67;25806:2;25801:3;25742:67;:::i;:::-;25735:74;;25818:93;25907:3;25818:93;:::i;:::-;25936:2;25931:3;25927:12;25920:19;;25579:366;;;:::o;25951:419::-;26117:4;26155:2;26144:9;26140:18;26132:26;;26204:9;26198:4;26194:20;26190:1;26179:9;26175:17;26168:47;26232:131;26358:4;26232:131;:::i;:::-;26224:139;;25951:419;;;:::o;26376:191::-;26416:4;26436:20;26454:1;26436:20;:::i;:::-;26431:25;;26470:20;26488:1;26470:20;:::i;:::-;26465:25;;26509:1;26506;26503:8;26500:34;;;26514:18;;:::i;:::-;26500:34;26559:1;26556;26552:9;26544:17;;26376:191;;;;:::o;26573:305::-;26613:3;26632:20;26650:1;26632:20;:::i;:::-;26627:25;;26666:20;26684:1;26666:20;:::i;:::-;26661:25;;26820:1;26752:66;26748:74;26745:1;26742:81;26739:107;;;26826:18;;:::i;:::-;26739:107;26870:1;26867;26863:9;26856:16;;26573:305;;;;:::o;26884:177::-;27024:29;27020:1;27012:6;27008:14;27001:53;26884:177;:::o;27067:366::-;27209:3;27230:67;27294:2;27289:3;27230:67;:::i;:::-;27223:74;;27306:93;27395:3;27306:93;:::i;:::-;27424:2;27419:3;27415:12;27408:19;;27067:366;;;:::o;27439:419::-;27605:4;27643:2;27632:9;27628:18;27620:26;;27692:9;27686:4;27682:20;27678:1;27667:9;27663:17;27656:47;27720:131;27846:4;27720:131;:::i;:::-;27712:139;;27439:419;;;:::o;27864:180::-;27912:77;27909:1;27902:88;28009:4;28006:1;27999:15;28033:4;28030:1;28023:15;28050:180;28098:77;28095:1;28088:88;28195:4;28192:1;28185:15;28219:4;28216:1;28209:15;28236:143;28293:5;28324:6;28318:13;28309:22;;28340:33;28367:5;28340:33;:::i;:::-;28236:143;;;;:::o;28385:351::-;28455:6;28504:2;28492:9;28483:7;28479:23;28475:32;28472:119;;;28510:79;;:::i;:::-;28472:119;28630:1;28655:64;28711:7;28702:6;28691:9;28687:22;28655:64;:::i;:::-;28645:74;;28601:128;28385:351;;;;:::o;28742:85::-;28787:7;28816:5;28805:16;;28742:85;;;:::o;28833:158::-;28891:9;28924:61;28942:42;28951:32;28977:5;28951:32;:::i;:::-;28942:42;:::i;:::-;28924:61;:::i;:::-;28911:74;;28833:158;;;:::o;28997:147::-;29092:45;29131:5;29092:45;:::i;:::-;29087:3;29080:58;28997:147;;:::o;29150:114::-;29217:6;29251:5;29245:12;29235:22;;29150:114;;;:::o;29270:184::-;29369:11;29403:6;29398:3;29391:19;29443:4;29438:3;29434:14;29419:29;;29270:184;;;;:::o;29460:132::-;29527:4;29550:3;29542:11;;29580:4;29575:3;29571:14;29563:22;;29460:132;;;:::o;29598:108::-;29675:24;29693:5;29675:24;:::i;:::-;29670:3;29663:37;29598:108;;:::o;29712:179::-;29781:10;29802:46;29844:3;29836:6;29802:46;:::i;:::-;29880:4;29875:3;29871:14;29857:28;;29712:179;;;;:::o;29897:113::-;29967:4;29999;29994:3;29990:14;29982:22;;29897:113;;;:::o;30046:732::-;30165:3;30194:54;30242:5;30194:54;:::i;:::-;30264:86;30343:6;30338:3;30264:86;:::i;:::-;30257:93;;30374:56;30424:5;30374:56;:::i;:::-;30453:7;30484:1;30469:284;30494:6;30491:1;30488:13;30469:284;;;30570:6;30564:13;30597:63;30656:3;30641:13;30597:63;:::i;:::-;30590:70;;30683:60;30736:6;30683:60;:::i;:::-;30673:70;;30529:224;30516:1;30513;30509:9;30504:14;;30469:284;;;30473:14;30769:3;30762:10;;30170:608;;;30046:732;;;;:::o;30784:831::-;31047:4;31085:3;31074:9;31070:19;31062:27;;31099:71;31167:1;31156:9;31152:17;31143:6;31099:71;:::i;:::-;31180:80;31256:2;31245:9;31241:18;31232:6;31180:80;:::i;:::-;31307:9;31301:4;31297:20;31292:2;31281:9;31277:18;31270:48;31335:108;31438:4;31429:6;31335:108;:::i;:::-;31327:116;;31453:72;31521:2;31510:9;31506:18;31497:6;31453:72;:::i;:::-;31535:73;31603:3;31592:9;31588:19;31579:6;31535:73;:::i;:::-;30784:831;;;;;;;;:::o;31621:332::-;31742:4;31780:2;31769:9;31765:18;31757:26;;31793:71;31861:1;31850:9;31846:17;31837:6;31793:71;:::i;:::-;31874:72;31942:2;31931:9;31927:18;31918:6;31874:72;:::i;:::-;31621:332;;;;;:::o
Swarm Source
ipfs://3133c781c27c27cb6348225bf115dc557f9869e6433f002eab28b8a2b50a01b7
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)