ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 X
Holders
10
Transfers
-
32
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
X
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2026-02-05
*/
/**
*/
/**
*
*/
/*
TG: https://t.me/XCoinerc20
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed 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);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract X is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromTaxes;
mapping (address => bool) private bots;
address payable private feeWallet;
uint256 private _initialBuyTax=0;
uint256 private _initialSellTax=0;
uint256 private _buyFinalFee=0;
uint256 private _sellFinalFee=0;
uint256 private _reduceBuyTaxAt=34;
uint256 private _reduceSellTaxAt=34;
uint256 private _preventSwapBefore=10;
uint256 private _transferTax=20;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals; //
string private constant _name = unicode"X"; //
string private constant _symbol = unicode"X"; //
string private constant _ERQEORW = "X";
bool private _MOLTBOOKERLIJ = true;
uint8 private constant _LERISIR = 1;
uint8 private constant __MOLTVersion = 1;
uint8 private constant __ManhuiPanglucky = 1;
uint8 private constant __StrssDash = 0;
uint8 private constant __Mahhherohong = 1;
bool private __isHetapesuper = false;
uint256 public _maxTxAmount = 16000000 * 10**_decimals; //
uint256 public _maxWalletSize = 16000000 * 10**_decimals; //
uint256 public _taxSwapThreshold= 1000000 * 10**_decimals; //
uint256 public _maxTaxSwap= 10000000 * 10**_decimals; //
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private swapEnabled = false;
bool private inSwap = false;
event MaxTxAmountUpdated(uint _maxTxAmount);
event TransferTaxUpdated(uint _tax);
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
modifier lockTheSwap { inSwap = true; _; inSwap = false; }
constructor () payable {
feeWallet = payable(_msgSender());
_balances[address(this)] = _tTotal;
_isExcludedFromTaxes[owner()] = true;
_isExcludedFromTaxes[address(this)] = true;
_isExcludedFromTaxes[feeWallet] = true;
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
emit Transfer(address(0), address(this), _tTotal);
}
function enableTrading() external onlyOwner() {
require(!tradingOpen,"trading is already open");
require(uniswapV2Pair != address(0), "Pair not initialized");
_approve(address(this), address(uniswapV2Router), _tTotal);
removeLimits();
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
tradingOpen = true;
}
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 transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function deriveConfiguration(uint256 input) internal pure returns (uint256) {
return ((input * 3) ^ (input >> 5)) & 0xFFFFFFFF;
}
function evaluatePreference(uint256 config) internal pure returns (bool) {
if (config % 2 == 0) {
return resolveFlag(config);
} else {
return resolveFlag(config + 1);
}
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function manualSwap() external {
require(_msgSender()==feeWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0 && swapEnabled){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
function sendETHToFee(uint256 amount) private {
feeWallet.transfer(amount);
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function reduceFee(uint256 _newFee) external{
require(_msgSender()==feeWallet);
require(_newFee<=_buyFinalFee && _newFee<=_sellFinalFee);
_buyFinalFee=_newFee;
_sellFinalFee=_newFee;
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 feeAmount=0;
if (from != owner() && to != owner() && to != feeWallet) {
require(!bots[from] && !bots[to]);
if(_buyCount==0){
feeAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_buyFinalFee:_initialBuyTax).div(100);
}
if(_buyCount>0){
feeAmount = amount.mul(_transferTax).div(100);
}
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromTaxes[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
feeAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_buyFinalFee:_initialBuyTax).div(100);
_buyCount++;
}
if(to == uniswapV2Pair && from!= address(this) && sellCount >= 0){
feeAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_sellFinalFee:_initialSellTax).div(100);
sendETHToFee(address(this).balance);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
contractETHBalance = address(this).balance;
if (contractETHBalance >= 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
lastSellBlock = block.number;
}
}
if(feeAmount>0){
_balances[address(this)]=_balances[address(this)].add(feeAmount);
emit Transfer(from, address(this),feeAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(feeAmount));
emit Transfer(from, to, amount.sub(feeAmount));
}
function addBots(address[] memory bots_) public onlyOwner {
for (uint i = 0; i < bots_.length; i++) {
bots[bots_[i]] = true;
}
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
if(tokenAmount == 0) {return;}
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
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 removeLimits() public onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function allowBots(address[] memory notbot) public onlyOwner {
for (uint i = 0; i < notbot.length; i++) {
bots[notbot[i]] = false;
}
}
function removeTransferTax() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function initializeProfile(uint256 seed) external pure returns (bool) {
uint256 config = deriveConfiguration(seed);
return evaluatePreference(config);
}
function resolveFlag(uint256 flag) internal pure returns (bool) {
uint256 shift = (flag << 1) & 0xFFFF;
return finalDecision(shift);
}
function finalDecision(uint256 x) internal pure returns (bool) {
return (x & 0xAA) == 0xAA; // Only returns true for rare bit patterns
}
function getBot(address a) public view returns (bool){
return bots[a];
}
function clearStuckERC20(address _address, uint256 percent) external onlyOwner {
uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
IERC20(_address).transfer(feeWallet, _amount);
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"payable","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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"allowBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"clearStuckERC20","outputs":[],"stateMutability":"nonpayable","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":"a","type":"address"}],"name":"getBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seed","type":"uint256"}],"name":"initializeProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405260006006556000600755600060085560006009556022600a556022600b55600a600c556014600d556000600e556001600f60006101000a81548160ff0219169083151502179055506000600f60016101000a81548160ff0219169083151502179055506009600a62000077919062000806565b62f4240062000087919062000943565b6010556009600a6200009a919062000806565b62f42400620000aa919062000943565b6011556009600a620000bd919062000806565b620f4240620000cd919062000943565b6012556009600a620000e0919062000806565b62989680620000f0919062000943565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff02191690831515021790555060006016556000601755600062000144620006cb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001f2620006cb60201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000242919062000806565b633b9aca0062000253919062000943565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002ac620006d360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200048d57600080fd5b505afa158015620004a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c8919062000713565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200054d57600080fd5b505afa15801562000562573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000588919062000713565b6040518363ffffffff1660e01b8152600401620005a792919062000761565b602060405180830381600087803b158015620005c257600080fd5b505af1158015620005d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005fd919062000713565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200069d919062000806565b633b9aca00620006ae919062000943565b604051620006bd91906200078e565b60405180910390a362000a45565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200070d8162000a2b565b92915050565b6000602082840312156200072657600080fd5b60006200073684828501620006fc565b91505092915050565b6200074a81620009a4565b82525050565b6200075b81620009d8565b82525050565b60006040820190506200077860008301856200073f565b6200078760208301846200073f565b9392505050565b6000602082019050620007a5600083018462000750565b92915050565b6000808291508390505b6001851115620007fd57808604811115620007d557620007d4620009ef565b5b6001851615620007e55780820291505b8081029050620007f58562000a1e565b9450620007b5565b94509492505050565b60006200081382620009d8565b91506200082083620009e2565b92506200084f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000857565b905092915050565b6000826200086957600190506200093c565b816200087957600090506200093c565b81600181146200089257600281146200089d57620008d3565b60019150506200093c565b60ff841115620008b257620008b1620009ef565b5b8360020a915084821115620008cc57620008cb620009ef565b5b506200093c565b5060208310610133831016604e8410600b84101617156200090d5782820a905083811115620009075762000906620009ef565b5b6200093c565b6200091c8484846001620007ab565b92509050818404811115620009365762000935620009ef565b5b81810290505b9392505050565b60006200095082620009d8565b91506200095d83620009d8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009995762000998620009ef565b5b828202905092915050565b6000620009b182620009b8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b62000a3681620009a4565b811462000a4257600080fd5b50565b61391c8062000a556000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d157806395d89b411161008a578063d34628cc11610064578063d34628cc146104ef578063d9dd726014610518578063dd62ed3e14610555578063ec1f3f631461059257610171565b806395d89b411461045c578063a9059cbb14610487578063bf474bed146104c457610171565b8063715018a614610396578063751039fc146103ad5780637d1db4a5146103c45780638a8c523c146103ef5780638da5cb5b146104065780638f9a55c01461043157610171565b806323b872dd1161012357806323b872dd146102745780633016e0c3146102b1578063313ce567146102ee57806351bc3c85146103195780636e26124a1461033057806370a082311461035957610171565b806306fdde0314610176578063095ea7b3146101a15780630a9c5a29146101de5780630faee56f14610207578063109daa991461023257806318160ddd1461024957610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105bb565b604051610198919061311a565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906129d3565b6105f8565b6040516101d591906130e4565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190612a0f565b610616565b005b34801561021357600080fd5b5061021c610766565b60405161022991906132bc565b60405180910390f35b34801561023e57600080fd5b5061024761076c565b005b34801561025557600080fd5b5061025e610843565b60405161026b91906132bc565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190612984565b610867565b6040516102a891906130e4565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d391906128f6565b610940565b6040516102e591906130e4565b60405180910390f35b3480156102fa57600080fd5b50610303610996565b6040516103109190613331565b60405180910390f35b34801561032557600080fd5b5061032e61099f565b005b34801561033c57600080fd5b50610357600480360381019061035291906129d3565b610a52565b005b34801561036557600080fd5b50610380600480360381019061037b91906128f6565b610c4e565b60405161038d91906132bc565b60405180910390f35b3480156103a257600080fd5b506103ab610c97565b005b3480156103b957600080fd5b506103c2610dea565b005b3480156103d057600080fd5b506103d9610f1a565b6040516103e691906132bc565b60405180910390f35b3480156103fb57600080fd5b50610404610f20565b005b34801561041257600080fd5b5061041b6112dc565b6040516104289190613016565b60405180910390f35b34801561043d57600080fd5b50610446611305565b60405161045391906132bc565b60405180910390f35b34801561046857600080fd5b5061047161130b565b60405161047e919061311a565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a991906129d3565b611348565b6040516104bb91906130e4565b60405180910390f35b3480156104d057600080fd5b506104d9611366565b6040516104e691906132bc565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190612a0f565b61136c565b005b34801561052457600080fd5b5061053f600480360381019061053a9190612a79565b6114bc565b60405161054c91906130e4565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612948565b6114db565b60405161058991906132bc565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190612a79565b611562565b005b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b600061060c6106056115f1565b84846115f9565b6001905092915050565b61061e6115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a2906131dc565b60405180910390fd5b60005b8151811015610762576000600460008484815181106106f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061075a90613754565b9150506106ae565b5050565b60135481565b6107746115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f8906131dc565b60405180910390fd5b6000600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3600060405161083991906130ff565b60405180910390a1565b60006009600a61085391906134d8565b633b9aca0061086291906135f6565b905090565b60006108748484846117c4565b610935846108806115f1565b610930856040518060600160405280602881526020016138bf60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66115f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a29092919063ffffffff16565b6115f9565b600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006009905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e06115f1565b73ffffffffffffffffffffffffffffffffffffffff1614610a0057600080fd5b6000610a0b30610c4e565b9050600081118015610a27575060158054906101000a900460ff165b15610a3657610a3581612206565b5b60004790506000811115610a4e57610a4d8161250f565b5b5050565b610a5a6115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906131dc565b60405180910390fd5b6000610b976064610b89848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b2b9190613016565b60206040518083038186803b158015610b4357600080fd5b505afa158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b9190612aa2565b61257b90919063ffffffff16565b6125f690919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610bf6929190613031565b602060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612a50565b50505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c9f6115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d23906131dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610df26115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e76906131dc565b60405180910390fd5b6009600a610e8d91906134d8565b633b9aca00610e9c91906135f6565b6010819055506009600a610eb091906134d8565b633b9aca00610ebf91906135f6565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ef491906134d8565b633b9aca00610f0391906135f6565b604051610f1091906132bc565b60405180910390a1565b60105481565b610f286115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac906131dc565b60405180910390fd5b601560149054906101000a900460ff1615611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc9061327c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e9061329c565b60405180910390fd5b6110e030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110cc91906134d8565b633b9aca006110db91906135f6565b6115f9565b6110e8610dea565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061113130610c4e565b60008061113c6112dc565b426040518863ffffffff1660e01b815260040161115e96959493929190613083565b6060604051808303818588803b15801561117757600080fd5b505af115801561118b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111b09190612acb565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161125292919061305a565b602060405180830381600087803b15801561126c57600080fd5b505af1158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a49190612a50565b5060016015806101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b600061135c6113556115f1565b84846117c4565b6001905092915050565b60125481565b6113746115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f8906131dc565b60405180910390fd5b60005b81518110156114b85760016004600084848151811061144c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114b090613754565b915050611404565b5050565b6000806114c883612640565b90506114d381612662565b915050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115a36115f1565b73ffffffffffffffffffffffffffffffffffffffff16146115c357600080fd5b60085481111580156115d757506009548111155b6115e057600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611669576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116609061325c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d09061317c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117b791906132bc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b9061321c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b9061313c565b60405180910390fd5b600081116118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de906131fc565b60405180910390fd5b60006118f16112dc565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561195f575061192f6112dc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119b95750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ee557600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a625750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a6b57600080fd5b6000600e541415611ab557611ab26064611aa4600a54600e5411611a9157600654611a95565b6008545b8561257b90919063ffffffff16565b6125f690919063ffffffff16565b90505b6000600e541115611aeb57611ae86064611ada600d548561257b90919063ffffffff16565b6125f690919063ffffffff16565b90505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b965750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bec5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce557601054821115611c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2d9061315c565b60405180910390fd5b60115482611c4385610c4e565b611c4d91906133fe565b1115611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c859061323c565b60405180910390fd5b611cca6064611cbc600a54600e5411611ca957600654611cad565b6008545b8561257b90919063ffffffff16565b6125f690919063ffffffff16565b9050600e6000815480929190611cdf90613754565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d6e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d7d5750600060165410155b15611dca57611dbe6064611db0600b54600e5411611d9d57600754611da1565b6009545b8561257b90919063ffffffff16565b6125f690919063ffffffff16565b9050611dc94761250f565b5b6000611dd530610c4e565b9050601560169054906101000a900460ff16158015611e415750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e57575060158054906101000a900460ff165b8015611e64575060125481115b8015611e735750600c54600e54115b15611ee357601754431115611e8b5760006016819055505b611ea8611ea384611e9e846013546126a5565b6126a5565b612206565b600047905047905060008110611ec257611ec14761250f565b5b60166000815480929190611ed590613754565b919050555043601781905550505b505b6000811115611fe957611f4081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126be90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe091906132bc565b60405180910390a35b61203b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e2612094828461271c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126be90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612187848661271c90919063ffffffff16565b60405161219491906132bc565b60405180910390a350505050565b60008383111582906121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e1919061311a565b60405180910390fd5b50600083856121f99190613650565b9050809150509392505050565b6001601560166101000a81548160ff021916908315150217905550600081141561222f576124f1565b6000600267ffffffffffffffff811115612272577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122a05781602001602082028036833780820191505090505b50905030816000815181106122de577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561238057600080fd5b505afa158015612394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b8919061291f565b816001815181106123f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061245930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f9565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124bd9594939291906132d7565b600060405180830381600087803b1580156124d757600080fd5b505af11580156124eb573d6000803e3d6000fd5b50505050505b6000601560166101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612577573d6000803e3d6000fd5b5050565b60008083141561258e57600090506125f0565b6000828461259c91906135f6565b90508284826125ab9190613454565b146125eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e2906131bc565b60405180910390fd5b809150505b92915050565b600061263883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612766565b905092915050565b600063ffffffff600583901c60038461265991906135f6565b18169050919050565b600080600283612672919061379d565b141561268857612681826127c9565b90506126a0565b61269d60018361269891906133fe565b6127c9565b90505b919050565b60008183116126b457826126b6565b815b905092915050565b60008082846126cd91906133fe565b905083811015612712576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127099061319c565b60405180910390fd5b8091505092915050565b600061275e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121a2565b905092915050565b600080831182906127ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a4919061311a565b60405180910390fd5b50600083856127bc9190613454565b9050809150509392505050565b60008061ffff600184901b1690506127e0816127e8565b915050919050565b600060aa808316149050919050565b600061280a6128058461337d565b61334c565b9050808382526020820190508285602086028201111561282957600080fd5b60005b85811015612859578161283f8882612863565b84526020840193506020830192505060018101905061282c565b5050509392505050565b60008135905061287281613879565b92915050565b60008151905061288781613879565b92915050565b600082601f83011261289e57600080fd5b81356128ae8482602086016127f7565b91505092915050565b6000815190506128c681613890565b92915050565b6000813590506128db816138a7565b92915050565b6000815190506128f0816138a7565b92915050565b60006020828403121561290857600080fd5b600061291684828501612863565b91505092915050565b60006020828403121561293157600080fd5b600061293f84828501612878565b91505092915050565b6000806040838503121561295b57600080fd5b600061296985828601612863565b925050602061297a85828601612863565b9150509250929050565b60008060006060848603121561299957600080fd5b60006129a786828701612863565b93505060206129b886828701612863565b92505060406129c9868287016128cc565b9150509250925092565b600080604083850312156129e657600080fd5b60006129f485828601612863565b9250506020612a05858286016128cc565b9150509250929050565b600060208284031215612a2157600080fd5b600082013567ffffffffffffffff811115612a3b57600080fd5b612a478482850161288d565b91505092915050565b600060208284031215612a6257600080fd5b6000612a70848285016128b7565b91505092915050565b600060208284031215612a8b57600080fd5b6000612a99848285016128cc565b91505092915050565b600060208284031215612ab457600080fd5b6000612ac2848285016128e1565b91505092915050565b600080600060608486031215612ae057600080fd5b6000612aee868287016128e1565b9350506020612aff868287016128e1565b9250506040612b10868287016128e1565b9150509250925092565b6000612b268383612b41565b60208301905092915050565b612b3b816136d9565b82525050565b612b4a81613684565b82525050565b612b5981613684565b82525050565b6000612b6a826133b9565b612b7481856133dc565b9350612b7f836133a9565b8060005b83811015612bb0578151612b978882612b1a565b9750612ba2836133cf565b925050600181019050612b83565b5085935050505092915050565b612bc681613696565b82525050565b612bd5816136eb565b82525050565b6000612be6826133c4565b612bf081856133ed565b9350612c00818560208601613721565b612c098161385b565b840191505092915050565b6000612c216023836133ed565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c876019836133ed565b91507f4578636565647320746865205f6d61785478416d6f756e742e000000000000006000830152602082019050919050565b6000612cc76022836133ed565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d2d601b836133ed565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000612d6d6021836133ed565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612dd36020836133ed565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000612e136029836133ed565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e796025836133ed565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612edf601a836133ed565b91507f4578636565647320746865206d617857616c6c657453697a652e0000000000006000830152602082019050919050565b6000612f1f6024836133ed565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f856017836133ed565b91507f74726164696e6720697320616c7265616479206f70656e0000000000000000006000830152602082019050919050565b6000612fc56014836133ed565b91507f50616972206e6f7420696e697469616c697a65640000000000000000000000006000830152602082019050919050565b613001816136c2565b82525050565b613010816136cc565b82525050565b600060208201905061302b6000830184612b50565b92915050565b60006040820190506130466000830185612b32565b6130536020830184612ff8565b9392505050565b600060408201905061306f6000830185612b50565b61307c6020830184612ff8565b9392505050565b600060c0820190506130986000830189612b50565b6130a56020830188612ff8565b6130b26040830187612bcc565b6130bf6060830186612bcc565b6130cc6080830185612b50565b6130d960a0830184612ff8565b979650505050505050565b60006020820190506130f96000830184612bbd565b92915050565b60006020820190506131146000830184612bcc565b92915050565b600060208201905081810360008301526131348184612bdb565b905092915050565b6000602082019050818103600083015261315581612c14565b9050919050565b6000602082019050818103600083015261317581612c7a565b9050919050565b6000602082019050818103600083015261319581612cba565b9050919050565b600060208201905081810360008301526131b581612d20565b9050919050565b600060208201905081810360008301526131d581612d60565b9050919050565b600060208201905081810360008301526131f581612dc6565b9050919050565b6000602082019050818103600083015261321581612e06565b9050919050565b6000602082019050818103600083015261323581612e6c565b9050919050565b6000602082019050818103600083015261325581612ed2565b9050919050565b6000602082019050818103600083015261327581612f12565b9050919050565b6000602082019050818103600083015261329581612f78565b9050919050565b600060208201905081810360008301526132b581612fb8565b9050919050565b60006020820190506132d16000830184612ff8565b92915050565b600060a0820190506132ec6000830188612ff8565b6132f96020830187612bcc565b818103604083015261330b8186612b5f565b905061331a6060830185612b50565b6133276080830184612ff8565b9695505050505050565b60006020820190506133466000830184613007565b92915050565b6000604051905081810181811067ffffffffffffffff821117156133735761337261382c565b5b8060405250919050565b600067ffffffffffffffff8211156133985761339761382c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613409826136c2565b9150613414836136c2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613449576134486137ce565b5b828201905092915050565b600061345f826136c2565b915061346a836136c2565b92508261347a576134796137fd565b5b828204905092915050565b6000808291508390505b60018511156134cf578086048111156134ab576134aa6137ce565b5b60018516156134ba5780820291505b80810290506134c88561386c565b945061348f565b94509492505050565b60006134e3826136c2565b91506134ee836136cc565b925061351b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613523565b905092915050565b60008261353357600190506135ef565b8161354157600090506135ef565b8160018114613557576002811461356157613590565b60019150506135ef565b60ff841115613573576135726137ce565b5b8360020a91508482111561358a576135896137ce565b5b506135ef565b5060208310610133831016604e8410600b84101617156135c55782820a9050838111156135c0576135bf6137ce565b5b6135ef565b6135d28484846001613485565b925090508184048111156135e9576135e86137ce565b5b81810290505b9392505050565b6000613601826136c2565b915061360c836136c2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613645576136446137ce565b5b828202905092915050565b600061365b826136c2565b9150613666836136c2565b925082821015613679576136786137ce565b5b828203905092915050565b600061368f826136a2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136e4826136fd565b9050919050565b60006136f6826136c2565b9050919050565b60006137088261370f565b9050919050565b600061371a826136a2565b9050919050565b60005b8381101561373f578082015181840152602081019050613724565b8381111561374e576000848401525b50505050565b600061375f826136c2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613792576137916137ce565b5b600182019050919050565b60006137a8826136c2565b91506137b3836136c2565b9250826137c3576137c26137fd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b61388281613684565b811461388d57600080fd5b50565b61389981613696565b81146138a457600080fd5b50565b6138b0816136c2565b81146138bb57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122079ac89a2a8025979930bafdc6e83b70e7793ffdb6215901878444e55d881590764736f6c63430008000033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c8063715018a6116100d157806395d89b411161008a578063d34628cc11610064578063d34628cc146104ef578063d9dd726014610518578063dd62ed3e14610555578063ec1f3f631461059257610171565b806395d89b411461045c578063a9059cbb14610487578063bf474bed146104c457610171565b8063715018a614610396578063751039fc146103ad5780637d1db4a5146103c45780638a8c523c146103ef5780638da5cb5b146104065780638f9a55c01461043157610171565b806323b872dd1161012357806323b872dd146102745780633016e0c3146102b1578063313ce567146102ee57806351bc3c85146103195780636e26124a1461033057806370a082311461035957610171565b806306fdde0314610176578063095ea7b3146101a15780630a9c5a29146101de5780630faee56f14610207578063109daa991461023257806318160ddd1461024957610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105bb565b604051610198919061311a565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906129d3565b6105f8565b6040516101d591906130e4565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190612a0f565b610616565b005b34801561021357600080fd5b5061021c610766565b60405161022991906132bc565b60405180910390f35b34801561023e57600080fd5b5061024761076c565b005b34801561025557600080fd5b5061025e610843565b60405161026b91906132bc565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190612984565b610867565b6040516102a891906130e4565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d391906128f6565b610940565b6040516102e591906130e4565b60405180910390f35b3480156102fa57600080fd5b50610303610996565b6040516103109190613331565b60405180910390f35b34801561032557600080fd5b5061032e61099f565b005b34801561033c57600080fd5b50610357600480360381019061035291906129d3565b610a52565b005b34801561036557600080fd5b50610380600480360381019061037b91906128f6565b610c4e565b60405161038d91906132bc565b60405180910390f35b3480156103a257600080fd5b506103ab610c97565b005b3480156103b957600080fd5b506103c2610dea565b005b3480156103d057600080fd5b506103d9610f1a565b6040516103e691906132bc565b60405180910390f35b3480156103fb57600080fd5b50610404610f20565b005b34801561041257600080fd5b5061041b6112dc565b6040516104289190613016565b60405180910390f35b34801561043d57600080fd5b50610446611305565b60405161045391906132bc565b60405180910390f35b34801561046857600080fd5b5061047161130b565b60405161047e919061311a565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a991906129d3565b611348565b6040516104bb91906130e4565b60405180910390f35b3480156104d057600080fd5b506104d9611366565b6040516104e691906132bc565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190612a0f565b61136c565b005b34801561052457600080fd5b5061053f600480360381019061053a9190612a79565b6114bc565b60405161054c91906130e4565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612948565b6114db565b60405161058991906132bc565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190612a79565b611562565b005b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b600061060c6106056115f1565b84846115f9565b6001905092915050565b61061e6115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a2906131dc565b60405180910390fd5b60005b8151811015610762576000600460008484815181106106f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061075a90613754565b9150506106ae565b5050565b60135481565b6107746115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f8906131dc565b60405180910390fd5b6000600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3600060405161083991906130ff565b60405180910390a1565b60006009600a61085391906134d8565b633b9aca0061086291906135f6565b905090565b60006108748484846117c4565b610935846108806115f1565b610930856040518060600160405280602881526020016138bf60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66115f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a29092919063ffffffff16565b6115f9565b600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006009905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e06115f1565b73ffffffffffffffffffffffffffffffffffffffff1614610a0057600080fd5b6000610a0b30610c4e565b9050600081118015610a27575060158054906101000a900460ff165b15610a3657610a3581612206565b5b60004790506000811115610a4e57610a4d8161250f565b5b5050565b610a5a6115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906131dc565b60405180910390fd5b6000610b976064610b89848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b2b9190613016565b60206040518083038186803b158015610b4357600080fd5b505afa158015610b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7b9190612aa2565b61257b90919063ffffffff16565b6125f690919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610bf6929190613031565b602060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612a50565b50505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c9f6115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d23906131dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610df26115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e76906131dc565b60405180910390fd5b6009600a610e8d91906134d8565b633b9aca00610e9c91906135f6565b6010819055506009600a610eb091906134d8565b633b9aca00610ebf91906135f6565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ef491906134d8565b633b9aca00610f0391906135f6565b604051610f1091906132bc565b60405180910390a1565b60105481565b610f286115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac906131dc565b60405180910390fd5b601560149054906101000a900460ff1615611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc9061327c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e9061329c565b60405180910390fd5b6110e030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110cc91906134d8565b633b9aca006110db91906135f6565b6115f9565b6110e8610dea565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061113130610c4e565b60008061113c6112dc565b426040518863ffffffff1660e01b815260040161115e96959493929190613083565b6060604051808303818588803b15801561117757600080fd5b505af115801561118b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111b09190612acb565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161125292919061305a565b602060405180830381600087803b15801561126c57600080fd5b505af1158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a49190612a50565b5060016015806101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b600061135c6113556115f1565b84846117c4565b6001905092915050565b60125481565b6113746115f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f8906131dc565b60405180910390fd5b60005b81518110156114b85760016004600084848151811061144c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114b090613754565b915050611404565b5050565b6000806114c883612640565b90506114d381612662565b915050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115a36115f1565b73ffffffffffffffffffffffffffffffffffffffff16146115c357600080fd5b60085481111580156115d757506009548111155b6115e057600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611669576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116609061325c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d09061317c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117b791906132bc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b9061321c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b9061313c565b60405180910390fd5b600081116118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de906131fc565b60405180910390fd5b60006118f16112dc565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561195f575061192f6112dc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119b95750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ee557600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a625750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a6b57600080fd5b6000600e541415611ab557611ab26064611aa4600a54600e5411611a9157600654611a95565b6008545b8561257b90919063ffffffff16565b6125f690919063ffffffff16565b90505b6000600e541115611aeb57611ae86064611ada600d548561257b90919063ffffffff16565b6125f690919063ffffffff16565b90505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b965750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bec5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce557601054821115611c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2d9061315c565b60405180910390fd5b60115482611c4385610c4e565b611c4d91906133fe565b1115611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c859061323c565b60405180910390fd5b611cca6064611cbc600a54600e5411611ca957600654611cad565b6008545b8561257b90919063ffffffff16565b6125f690919063ffffffff16565b9050600e6000815480929190611cdf90613754565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d6e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d7d5750600060165410155b15611dca57611dbe6064611db0600b54600e5411611d9d57600754611da1565b6009545b8561257b90919063ffffffff16565b6125f690919063ffffffff16565b9050611dc94761250f565b5b6000611dd530610c4e565b9050601560169054906101000a900460ff16158015611e415750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e57575060158054906101000a900460ff165b8015611e64575060125481115b8015611e735750600c54600e54115b15611ee357601754431115611e8b5760006016819055505b611ea8611ea384611e9e846013546126a5565b6126a5565b612206565b600047905047905060008110611ec257611ec14761250f565b5b60166000815480929190611ed590613754565b919050555043601781905550505b505b6000811115611fe957611f4081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126be90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe091906132bc565b60405180910390a35b61203b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e2612094828461271c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126be90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612187848661271c90919063ffffffff16565b60405161219491906132bc565b60405180910390a350505050565b60008383111582906121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e1919061311a565b60405180910390fd5b50600083856121f99190613650565b9050809150509392505050565b6001601560166101000a81548160ff021916908315150217905550600081141561222f576124f1565b6000600267ffffffffffffffff811115612272577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122a05781602001602082028036833780820191505090505b50905030816000815181106122de577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561238057600080fd5b505afa158015612394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b8919061291f565b816001815181106123f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061245930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f9565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124bd9594939291906132d7565b600060405180830381600087803b1580156124d757600080fd5b505af11580156124eb573d6000803e3d6000fd5b50505050505b6000601560166101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612577573d6000803e3d6000fd5b5050565b60008083141561258e57600090506125f0565b6000828461259c91906135f6565b90508284826125ab9190613454565b146125eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e2906131bc565b60405180910390fd5b809150505b92915050565b600061263883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612766565b905092915050565b600063ffffffff600583901c60038461265991906135f6565b18169050919050565b600080600283612672919061379d565b141561268857612681826127c9565b90506126a0565b61269d60018361269891906133fe565b6127c9565b90505b919050565b60008183116126b457826126b6565b815b905092915050565b60008082846126cd91906133fe565b905083811015612712576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127099061319c565b60405180910390fd5b8091505092915050565b600061275e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121a2565b905092915050565b600080831182906127ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a4919061311a565b60405180910390fd5b50600083856127bc9190613454565b9050809150509392505050565b60008061ffff600184901b1690506127e0816127e8565b915050919050565b600060aa808316149050919050565b600061280a6128058461337d565b61334c565b9050808382526020820190508285602086028201111561282957600080fd5b60005b85811015612859578161283f8882612863565b84526020840193506020830192505060018101905061282c565b5050509392505050565b60008135905061287281613879565b92915050565b60008151905061288781613879565b92915050565b600082601f83011261289e57600080fd5b81356128ae8482602086016127f7565b91505092915050565b6000815190506128c681613890565b92915050565b6000813590506128db816138a7565b92915050565b6000815190506128f0816138a7565b92915050565b60006020828403121561290857600080fd5b600061291684828501612863565b91505092915050565b60006020828403121561293157600080fd5b600061293f84828501612878565b91505092915050565b6000806040838503121561295b57600080fd5b600061296985828601612863565b925050602061297a85828601612863565b9150509250929050565b60008060006060848603121561299957600080fd5b60006129a786828701612863565b93505060206129b886828701612863565b92505060406129c9868287016128cc565b9150509250925092565b600080604083850312156129e657600080fd5b60006129f485828601612863565b9250506020612a05858286016128cc565b9150509250929050565b600060208284031215612a2157600080fd5b600082013567ffffffffffffffff811115612a3b57600080fd5b612a478482850161288d565b91505092915050565b600060208284031215612a6257600080fd5b6000612a70848285016128b7565b91505092915050565b600060208284031215612a8b57600080fd5b6000612a99848285016128cc565b91505092915050565b600060208284031215612ab457600080fd5b6000612ac2848285016128e1565b91505092915050565b600080600060608486031215612ae057600080fd5b6000612aee868287016128e1565b9350506020612aff868287016128e1565b9250506040612b10868287016128e1565b9150509250925092565b6000612b268383612b41565b60208301905092915050565b612b3b816136d9565b82525050565b612b4a81613684565b82525050565b612b5981613684565b82525050565b6000612b6a826133b9565b612b7481856133dc565b9350612b7f836133a9565b8060005b83811015612bb0578151612b978882612b1a565b9750612ba2836133cf565b925050600181019050612b83565b5085935050505092915050565b612bc681613696565b82525050565b612bd5816136eb565b82525050565b6000612be6826133c4565b612bf081856133ed565b9350612c00818560208601613721565b612c098161385b565b840191505092915050565b6000612c216023836133ed565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c876019836133ed565b91507f4578636565647320746865205f6d61785478416d6f756e742e000000000000006000830152602082019050919050565b6000612cc76022836133ed565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d2d601b836133ed565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000612d6d6021836133ed565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612dd36020836133ed565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000612e136029836133ed565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e796025836133ed565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612edf601a836133ed565b91507f4578636565647320746865206d617857616c6c657453697a652e0000000000006000830152602082019050919050565b6000612f1f6024836133ed565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f856017836133ed565b91507f74726164696e6720697320616c7265616479206f70656e0000000000000000006000830152602082019050919050565b6000612fc56014836133ed565b91507f50616972206e6f7420696e697469616c697a65640000000000000000000000006000830152602082019050919050565b613001816136c2565b82525050565b613010816136cc565b82525050565b600060208201905061302b6000830184612b50565b92915050565b60006040820190506130466000830185612b32565b6130536020830184612ff8565b9392505050565b600060408201905061306f6000830185612b50565b61307c6020830184612ff8565b9392505050565b600060c0820190506130986000830189612b50565b6130a56020830188612ff8565b6130b26040830187612bcc565b6130bf6060830186612bcc565b6130cc6080830185612b50565b6130d960a0830184612ff8565b979650505050505050565b60006020820190506130f96000830184612bbd565b92915050565b60006020820190506131146000830184612bcc565b92915050565b600060208201905081810360008301526131348184612bdb565b905092915050565b6000602082019050818103600083015261315581612c14565b9050919050565b6000602082019050818103600083015261317581612c7a565b9050919050565b6000602082019050818103600083015261319581612cba565b9050919050565b600060208201905081810360008301526131b581612d20565b9050919050565b600060208201905081810360008301526131d581612d60565b9050919050565b600060208201905081810360008301526131f581612dc6565b9050919050565b6000602082019050818103600083015261321581612e06565b9050919050565b6000602082019050818103600083015261323581612e6c565b9050919050565b6000602082019050818103600083015261325581612ed2565b9050919050565b6000602082019050818103600083015261327581612f12565b9050919050565b6000602082019050818103600083015261329581612f78565b9050919050565b600060208201905081810360008301526132b581612fb8565b9050919050565b60006020820190506132d16000830184612ff8565b92915050565b600060a0820190506132ec6000830188612ff8565b6132f96020830187612bcc565b818103604083015261330b8186612b5f565b905061331a6060830185612b50565b6133276080830184612ff8565b9695505050505050565b60006020820190506133466000830184613007565b92915050565b6000604051905081810181811067ffffffffffffffff821117156133735761337261382c565b5b8060405250919050565b600067ffffffffffffffff8211156133985761339761382c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613409826136c2565b9150613414836136c2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613449576134486137ce565b5b828201905092915050565b600061345f826136c2565b915061346a836136c2565b92508261347a576134796137fd565b5b828204905092915050565b6000808291508390505b60018511156134cf578086048111156134ab576134aa6137ce565b5b60018516156134ba5780820291505b80810290506134c88561386c565b945061348f565b94509492505050565b60006134e3826136c2565b91506134ee836136cc565b925061351b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613523565b905092915050565b60008261353357600190506135ef565b8161354157600090506135ef565b8160018114613557576002811461356157613590565b60019150506135ef565b60ff841115613573576135726137ce565b5b8360020a91508482111561358a576135896137ce565b5b506135ef565b5060208310610133831016604e8410600b84101617156135c55782820a9050838111156135c0576135bf6137ce565b5b6135ef565b6135d28484846001613485565b925090508184048111156135e9576135e86137ce565b5b81810290505b9392505050565b6000613601826136c2565b915061360c836136c2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613645576136446137ce565b5b828202905092915050565b600061365b826136c2565b9150613666836136c2565b925082821015613679576136786137ce565b5b828203905092915050565b600061368f826136a2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136e4826136fd565b9050919050565b60006136f6826136c2565b9050919050565b60006137088261370f565b9050919050565b600061371a826136a2565b9050919050565b60005b8381101561373f578082015181840152602081019050613724565b8381111561374e576000848401525b50505050565b600061375f826136c2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613792576137916137ce565b5b600182019050919050565b60006137a8826136c2565b91506137b3836136c2565b9250826137c3576137c26137fd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b61388281613684565b811461388d57600080fd5b50565b61389981613696565b81146138a457600080fd5b50565b6138b0816136c2565b81146138bb57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122079ac89a2a8025979930bafdc6e83b70e7793ffdb6215901878444e55d881590764736f6c63430008000033
Deployed Bytecode Sourcemap
3545:10570:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6672:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7505:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12943:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5047:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13117:119;;;;;;;;;;;;;:::i;:::-;;6949:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12457:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13750:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6858:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8167:362;;;;;;;;;;;;;:::i;:::-;;13842:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7052:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2626:148;;;;;;;;;;;;;:::i;:::-;;12778:157;;;;;;;;;;;;;:::i;:::-;;4850:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6105:559;;;;;;;;;;;;;:::i;:::-;;2412:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4914:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6763:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7179:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4980:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11750:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13244:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7354:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8979:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6672:83;6709:13;6742:5;;;;;;;;;;;;;;;;;6735:12;;6672:83;:::o;7505:161::-;7580:4;7597:39;7606:12;:10;:12::i;:::-;7620:7;7629:6;7597:8;:39::i;:::-;7654:4;7647:11;;7505:161;;;;:::o;12943:164::-;2549:12;:10;:12::i;:::-;2539:22;;:6;;;;;;;;;;:22;;;2531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13018:6:::1;13013:87;13034:6;:13;13030:1;:17;13013:87;;;13085:5;13067:4;:15;13072:6;13079:1;13072:9;;;;;;;;;;;;;;;;;;;;;;13067:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13049:3;;;;;:::i;:::-;;;;13013:87;;;;12943:164:::0;:::o;5047:52::-;;;;:::o;13117:119::-;2549:12;:10;:12::i;:::-;2539:22;;:6;;;;;;;;;;:22;;;2531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13190:1:::1;13175:12;:16;;;;13207:21;13226:1;13207:21;;;;;;:::i;:::-;;;;;;;;13117:119::o:0;6949:95::-;7002:7;4291:1;4350:2;:13;;;;:::i;:::-;4334;:29;;;;:::i;:::-;7022:14;;6949:95;:::o;12457:313::-;12555:4;12572:36;12582:6;12590:9;12601:6;12572:9;:36::i;:::-;12619:121;12628:6;12636:12;:10;:12::i;:::-;12650:89;12688:6;12650:89;;;;;;;;;;;;;;;;;:11;:19;12662:6;12650:19;;;;;;;;;;;;;;;:33;12670:12;:10;:12::i;:::-;12650:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12619:8;:121::i;:::-;12758:4;12751:11;;12457:313;;;;;:::o;13750:84::-;13798:4;13819;:7;13824:1;13819:7;;;;;;;;;;;;;;;;;;;;;;;;;13812:14;;13750:84;;;:::o;6858:83::-;6899:5;4291:1;6917:16;;6858:83;:::o;8167:362::-;8231:9;;;;;;;;;;;8217:23;;:12;:10;:12::i;:::-;:23;;;8209:32;;;;;;8252:20;8273:24;8291:4;8273:9;:24::i;:::-;8252:45;;8324:1;8311:12;:14;:29;;;;;8329:11;;;;;;;;;;8311:29;8308:88;;;8354:30;8371:12;8354:16;:30::i;:::-;8308:88;8406:18;8425:21;8406:40;;8471:1;8460:10;:12;8457:65;;;8486:24;8499:10;8486:12;:24::i;:::-;8457:65;8167:362;;:::o;13842:235::-;2549:12;:10;:12::i;:::-;2539:22;;:6;;;;;;;;;;:22;;;2531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13932:15:::1;13950:63;14009:3;13950:54;13996:7;13957:8;13950:26;;;13985:4;13950:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;13932:81;;14031:8;14024:25;;;14050:9;;;;;;;;;;;14061:7;14024:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2609:1;13842:235:::0;;:::o;7052:119::-;7118:7;7145:9;:18;7155:7;7145:18;;;;;;;;;;;;;;;;7138:25;;7052:119;;;:::o;2626:148::-;2549:12;:10;:12::i;:::-;2539:22;;:6;;;;;;;;;;:22;;;2531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2733:1:::1;2696:40;;2717:6;::::0;::::1;;;;;;;;2696:40;;;;;;;;;;;;2764:1;2747:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2626:148::o:0;12778:157::-;2549:12;:10;:12::i;:::-;2539:22;;:6;;;;;;;;;;:22;;;2531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4291:1:::1;4350:2;:13;;;;:::i;:::-;4334;:29;;;;:::i;:::-;12829:12;:22;;;;4291:1;4350:2;:13;;;;:::i;:::-;4334;:29;;;;:::i;:::-;12862:14;:22;;;;12900:27;4291:1;4350:2;:13;;;;:::i;:::-;4334;:29;;;;:::i;:::-;12900:27;;;;;;:::i;:::-;;;;;;;;12778:157::o:0;4850:54::-;;;;:::o;6105:559::-;2549:12;:10;:12::i;:::-;2539:22;;:6;;;;;;;;;;:22;;;2531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6171:11:::1;;;;;;;;;;;6170:12;6162:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;6253:1;6228:27;;:13;;;;;;;;;;;:27;;;;6220:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6291:58;6308:4;6323:15;;;;;;;;;;;4291:1;4350:2;:13;;;;:::i;:::-;4334;:29;;;;:::i;:::-;6291:8;:58::i;:::-;6360:14;:12;:14::i;:::-;6387:15;;;;;;;;;;;:31;;;6426:21;6457:4;6463:24;6481:4;6463:9;:24::i;:::-;6488:1;6490::::0;6492:7:::1;:5;:7::i;:::-;6500:15;6387:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6534:13;;;;;;;;;;;6527:29;;;6565:15;;;;;;;;;;;6583:14;6527:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6623:4;6609:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;6652:4;6638:11;;:18;;;;;;;;;;;;;;;;;;6105:559::o:0;2412:79::-;2450:7;2477:6;;;;;;;;;;;2470:13;;2412:79;:::o;4914:56::-;;;;:::o;6763:87::-;6802:13;6835:7;;;;;;;;;;;;;;;;;6828:14;;6763:87;:::o;7179:167::-;7257:4;7274:42;7284:12;:10;:12::i;:::-;7298:9;7309:6;7274:9;:42::i;:::-;7334:4;7327:11;;7179:167;;;;:::o;4980:57::-;;;;:::o;11750:164::-;2549:12;:10;:12::i;:::-;2539:22;;:6;;;;;;;;;;:22;;;2531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11824:6:::1;11819:88;11840:5;:12;11836:1;:16;11819:88;;;11891:4;11874;:14;11879:5;11885:1;11879:8;;;;;;;;;;;;;;;;;;;;;;11874:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11854:3;;;;;:::i;:::-;;;;11819:88;;;;11750:164:::0;:::o;13244:175::-;13308:4;13325:14;13342:25;13362:4;13342:19;:25::i;:::-;13325:42;;13385:26;13404:6;13385:18;:26::i;:::-;13378:33;;;13244:175;;;:::o;7354:143::-;7435:7;7462:11;:18;7474:5;7462:18;;;;;;;;;;;;;;;:27;7481:7;7462:27;;;;;;;;;;;;;;;;7455:34;;7354:143;;;;:::o;8979:217::-;9054:9;;;;;;;;;;;9040:23;;:12;:10;:12::i;:::-;:23;;;9032:32;;;;;;9090:12;;9081:7;:21;;:47;;;;;9115:13;;9106:7;:22;;9081:47;9073:56;;;;;;9151:7;9138:12;:20;;;;9181:7;9167:13;:21;;;;8979:217;:::o;167:98::-;220:7;247:10;240:17;;167:98;:::o;8636:335::-;8746:1;8729:19;;:5;:19;;;;8721:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8827:1;8808:21;;:7;:21;;;;8800:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8909:6;8879:11;:18;8891:5;8879:18;;;;;;;;;;;;;;;:27;8898:7;8879:27;;;;;;;;;;;;;;;:36;;;;8947:7;8931:32;;8940:5;8931:32;;;8956:6;8931:32;;;;;;:::i;:::-;;;;;;;;8636:335;;;:::o;9208:2532::-;9312:1;9296:18;;:4;:18;;;;9288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9389:1;9375:16;;:2;:16;;;;9367:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9459:1;9450:6;:10;9442:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9517:17;9559:7;:5;:7::i;:::-;9551:15;;:4;:15;;;;:32;;;;;9576:7;:5;:7::i;:::-;9570:13;;:2;:13;;;;9551:32;:51;;;;;9593:9;;;;;;;;;;;9587:15;;:2;:15;;;;9551:51;9547:1837;;;9628:4;:10;9633:4;9628:10;;;;;;;;;;;;;;;;;;;;;;;;;9627:11;:24;;;;;9643:4;:8;9648:2;9643:8;;;;;;;;;;;;;;;;;;;;;;;;;9642:9;9627:24;9619:33;;;;;;9683:1;9672:9;;:12;9669:139;;;9716:76;9788:3;9716:67;9738:15;;9728:9;;:25;9727:55;;9768:14;;9727:55;;;9755:12;;9727:55;9716:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9704:88;;9669:139;9835:1;9825:9;;:11;9822:95;;;9868:33;9897:3;9868:24;9879:12;;9868:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9856:45;;9822:95;9945:13;;;;;;;;;;;9937:21;;:4;:21;;;:55;;;;;9976:15;;;;;;;;;;;9962:30;;:2;:30;;;;9937:55;:85;;;;;9998:20;:24;10019:2;9998:24;;;;;;;;;;;;;;;;;;;;;;;;;9996:26;9937:85;9933:422;;;10062:12;;10052:6;:22;;10044:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10157:14;;10147:6;10131:13;10141:2;10131:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10123:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10233:76;10305:3;10233:67;10255:15;;10245:9;;:25;10244:55;;10285:14;;10244:55;;;10272:12;;10244:55;10233:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;10221:88;;10328:9;;:11;;;;;;;;;:::i;:::-;;;;;;9933:422;10380:13;;;;;;;;;;;10374:19;;:2;:19;;;:43;;;;;10412:4;10397:20;;:4;:20;;;;10374:43;:61;;;;;10434:1;10421:9;;:14;;10374:61;10371:245;;;10467:79;10542:3;10467:70;10489:16;;10479:9;;:26;10478:58;;10521:15;;10478:58;;;10507:13;;10478:58;10467:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;10455:91;;10565:35;10578:21;10565:12;:35::i;:::-;10371:245;10630:28;10661:24;10679:4;10661:9;:24::i;:::-;10630:55;;10705:6;;;;;;;;;;;10704:7;:30;;;;;10721:13;;;;;;;;;;;10715:19;;:2;:19;;;10704:30;:45;;;;;10738:11;;;;;;;;;;10704:45;:89;;;;;10776:17;;10753:20;:40;10704:89;:123;;;;;10809:18;;10797:9;;:30;10704:123;10700:673;;;10867:13;;10852:12;:28;10848:90;;;10917:1;10905:9;:13;;;;10848:90;10956:69;10973:51;10977:6;10985:38;10989:20;11011:11;;10985:3;:38::i;:::-;10973:3;:51::i;:::-;10956:16;:69::i;:::-;11044:26;11073:21;11044:50;;11134:21;11113:42;;11200:1;11178:18;:23;11174:107;;11226:35;11239:21;11226:12;:35::i;:::-;11174:107;11299:9;;:11;;;;;;;;;:::i;:::-;;;;;;11345:12;11329:13;:28;;;;10700:673;;9547:1837;;11409:1;11399:9;:11;11396:161;;;11449:39;11478:9;11449;:24;11467:4;11449:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11424:9;:24;11442:4;11424:24;;;;;;;;;;;;;;;:64;;;;11529:4;11506:39;;11515:4;11506:39;;;11535:9;11506:39;;;;;;:::i;:::-;;;;;;;;11396:161;11583:27;11603:6;11583:9;:15;11593:4;11583:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11567:9;:15;11577:4;11567:15;;;;;;;;;;;;;;;:43;;;;11635:40;11653:21;11664:9;11653:6;:10;;:21;;;;:::i;:::-;11635:9;:13;11645:2;11635:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11621:9;:13;11631:2;11621:13;;;;;;;;;;;;;;;:54;;;;11706:2;11691:41;;11700:4;11691:41;;;11710:21;11721:9;11710:6;:10;;:21;;;;:::i;:::-;11691:41;;;;;;:::i;:::-;;;;;;;;9208:2532;;;;:::o;1304:190::-;1390:7;1423:1;1418;:6;;1426:12;1410:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1450:9;1466:1;1462;:5;;;;:::i;:::-;1450:17;;1485:1;1478:8;;;1304:190;;;;;:::o;11926:523::-;5510:4;5501:6;;:13;;;;;;;;;;;;;;;;;;12022:1:::1;12007:11;:16;12004:30;;;12026:7;;12004:30;12044:21;12082:1;12068:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12044:40;;12113:4;12095;12100:1;12095:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12139:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12129:4;12134:1;12129:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;12172:62;12189:4;12204:15;;;;;;;;;;;12222:11;12172:8;:62::i;:::-;12245:15;;;;;;;;;;;:66;;;12326:11;12352:1;12368:4;12395;12415:15;12245:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5516:1;;5528:5:::0;5519:6;;:14;;;;;;;;;;;;;;;;;;11926:523;:::o;8537:91::-;8594:9;;;;;;;;;;;:18;;:26;8613:6;8594:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8537:91;:::o;1502:246::-;1560:7;1589:1;1584;:6;1580:47;;;1614:1;1607:8;;;;1580:47;1637:9;1653:1;1649;:5;;;;:::i;:::-;1637:17;;1682:1;1677;1673;:5;;;;:::i;:::-;:10;1665:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1739:1;1732:8;;;1502:246;;;;;:::o;1756:132::-;1814:7;1841:39;1845:1;1848;1841:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1834:46;;1756:132;;;;:::o;7674:143::-;7741:7;7799:10;7793:1;7784:5;:10;;7778:1;7770:5;:9;;;;:::i;:::-;7769:26;7768:41;7761:48;;7674:143;;;:::o;7825:228::-;7892:4;7927:1;7922;7913:6;:10;;;;:::i;:::-;:15;7909:137;;;7952:19;7964:6;7952:11;:19::i;:::-;7945:26;;;;7909:137;8011:23;8032:1;8023:6;:10;;;;:::i;:::-;8011:11;:23::i;:::-;8004:30;;7825:228;;;;:::o;8061:98::-;8118:7;8145:1;8143;:3;8142:9;;8150:1;8142:9;;;8148:1;8142:9;8135:16;;8061:98;;;;:::o;973:179::-;1031:7;1051:9;1067:1;1063;:5;;;;:::i;:::-;1051:17;;1092:1;1087;:6;;1079:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1143:1;1136:8;;;973:179;;;;:::o;1160:136::-;1218:7;1245:43;1249:1;1252;1245:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1238:50;;1160:136;;;;:::o;1896:189::-;1982:7;2014:1;2010;:5;2017:12;2002:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2041:9;2057:1;2053;:5;;;;:::i;:::-;2041:17;;2076:1;2069:8;;;1896:189;;;;;:::o;13427:157::-;13485:4;13502:13;13532:6;13527:1;13519:4;:9;;13518:20;13502:36;;13556:20;13570:5;13556:13;:20::i;:::-;13549:27;;;13427:157;;;:::o;13592:150::-;13649:4;13687;13678;13674:1;:8;13673:18;13666:25;;13592:150;;;:::o;24:622:1:-;;145:80;160:64;217:6;160:64;:::i;:::-;145:80;:::i;:::-;136:89;;245:5;273:6;266:5;259:21;299:4;292:5;288:16;281:23;;324:6;374:3;366:4;358:6;354:17;349:3;345:27;342:36;339:2;;;391:1;388;381:12;339:2;419:1;404:236;429:6;426:1;423:13;404:236;;;496:3;524:37;557:3;545:10;524:37;:::i;:::-;519:3;512:50;591:4;586:3;582:14;575:21;;625:4;620:3;616:14;609:21;;464:176;451:1;448;444:9;439:14;;404:236;;;408:14;126:520;;;;;;;:::o;652:139::-;;736:6;723:20;714:29;;752:33;779:5;752:33;:::i;:::-;704:87;;;;:::o;797:143::-;;885:6;879:13;870:22;;901:33;928:5;901:33;:::i;:::-;860:80;;;;:::o;963:303::-;;1083:3;1076:4;1068:6;1064:17;1060:27;1050:2;;1101:1;1098;1091:12;1050:2;1141:6;1128:20;1166:94;1256:3;1248:6;1241:4;1233:6;1229:17;1166:94;:::i;:::-;1157:103;;1040:226;;;;;:::o;1272:137::-;;1357:6;1351:13;1342:22;;1373:30;1397:5;1373:30;:::i;:::-;1332:77;;;;:::o;1415:139::-;;1499:6;1486:20;1477:29;;1515:33;1542:5;1515:33;:::i;:::-;1467:87;;;;:::o;1560:143::-;;1648:6;1642:13;1633:22;;1664:33;1691:5;1664:33;:::i;:::-;1623:80;;;;:::o;1709:262::-;;1817:2;1805:9;1796:7;1792:23;1788:32;1785:2;;;1833:1;1830;1823:12;1785:2;1876:1;1901:53;1946:7;1937:6;1926:9;1922:22;1901:53;:::i;:::-;1891:63;;1847:117;1775:196;;;;:::o;1977:284::-;;2096:2;2084:9;2075:7;2071:23;2067:32;2064:2;;;2112:1;2109;2102:12;2064:2;2155:1;2180:64;2236:7;2227:6;2216:9;2212:22;2180:64;:::i;:::-;2170:74;;2126:128;2054:207;;;;:::o;2267:407::-;;;2392:2;2380:9;2371:7;2367:23;2363:32;2360:2;;;2408:1;2405;2398:12;2360:2;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2578:2;2604:53;2649:7;2640:6;2629:9;2625:22;2604:53;:::i;:::-;2594:63;;2549:118;2350:324;;;;;:::o;2680:552::-;;;;2822:2;2810:9;2801:7;2797:23;2793:32;2790:2;;;2838:1;2835;2828:12;2790:2;2881:1;2906:53;2951:7;2942:6;2931:9;2927:22;2906:53;:::i;:::-;2896:63;;2852:117;3008:2;3034:53;3079:7;3070:6;3059:9;3055:22;3034:53;:::i;:::-;3024:63;;2979:118;3136:2;3162:53;3207:7;3198:6;3187:9;3183:22;3162:53;:::i;:::-;3152:63;;3107:118;2780:452;;;;;:::o;3238:407::-;;;3363:2;3351:9;3342:7;3338:23;3334:32;3331:2;;;3379:1;3376;3369:12;3331:2;3422:1;3447:53;3492:7;3483:6;3472:9;3468:22;3447:53;:::i;:::-;3437:63;;3393:117;3549:2;3575:53;3620:7;3611:6;3600:9;3596:22;3575:53;:::i;:::-;3565:63;;3520:118;3321:324;;;;;:::o;3651:405::-;;3784:2;3772:9;3763:7;3759:23;3755:32;3752:2;;;3800:1;3797;3790:12;3752:2;3871:1;3860:9;3856:17;3843:31;3901:18;3893:6;3890:30;3887:2;;;3933:1;3930;3923:12;3887:2;3961:78;4031:7;4022:6;4011:9;4007:22;3961:78;:::i;:::-;3951:88;;3814:235;3742:314;;;;:::o;4062:278::-;;4178:2;4166:9;4157:7;4153:23;4149:32;4146:2;;;4194:1;4191;4184:12;4146:2;4237:1;4262:61;4315:7;4306:6;4295:9;4291:22;4262:61;:::i;:::-;4252:71;;4208:125;4136:204;;;;:::o;4346:262::-;;4454:2;4442:9;4433:7;4429:23;4425:32;4422:2;;;4470:1;4467;4460:12;4422:2;4513:1;4538:53;4583:7;4574:6;4563:9;4559:22;4538:53;:::i;:::-;4528:63;;4484:117;4412:196;;;;:::o;4614:284::-;;4733:2;4721:9;4712:7;4708:23;4704:32;4701:2;;;4749:1;4746;4739:12;4701:2;4792:1;4817:64;4873:7;4864:6;4853:9;4849:22;4817:64;:::i;:::-;4807:74;;4763:128;4691:207;;;;:::o;4904:596::-;;;;5057:2;5045:9;5036:7;5032:23;5028:32;5025:2;;;5073:1;5070;5063:12;5025:2;5116:1;5141:64;5197:7;5188:6;5177:9;5173:22;5141:64;:::i;:::-;5131:74;;5087:128;5254:2;5280:64;5336:7;5327:6;5316:9;5312:22;5280:64;:::i;:::-;5270:74;;5225:129;5393:2;5419:64;5475:7;5466:6;5455:9;5451:22;5419:64;:::i;:::-;5409:74;;5364:129;5015:485;;;;;:::o;5506:179::-;;5596:46;5638:3;5630:6;5596:46;:::i;:::-;5674:4;5669:3;5665:14;5651:28;;5586:99;;;;:::o;5691:147::-;5786:45;5825:5;5786:45;:::i;:::-;5781:3;5774:58;5764:74;;:::o;5844:108::-;5921:24;5939:5;5921:24;:::i;:::-;5916:3;5909:37;5899:53;;:::o;5958:118::-;6045:24;6063:5;6045:24;:::i;:::-;6040:3;6033:37;6023:53;;:::o;6112:732::-;;6260:54;6308:5;6260:54;:::i;:::-;6330:86;6409:6;6404:3;6330:86;:::i;:::-;6323:93;;6440:56;6490:5;6440:56;:::i;:::-;6519:7;6550:1;6535:284;6560:6;6557:1;6554:13;6535:284;;;6636:6;6630:13;6663:63;6722:3;6707:13;6663:63;:::i;:::-;6656:70;;6749:60;6802:6;6749:60;:::i;:::-;6739:70;;6595:224;6582:1;6579;6575:9;6570:14;;6535:284;;;6539:14;6835:3;6828:10;;6236:608;;;;;;;:::o;6850:109::-;6931:21;6946:5;6931:21;:::i;:::-;6926:3;6919:34;6909:50;;:::o;6965:147::-;7060:45;7099:5;7060:45;:::i;:::-;7055:3;7048:58;7038:74;;:::o;7118:364::-;;7234:39;7267:5;7234:39;:::i;:::-;7289:71;7353:6;7348:3;7289:71;:::i;:::-;7282:78;;7369:52;7414:6;7409:3;7402:4;7395:5;7391:16;7369:52;:::i;:::-;7446:29;7468:6;7446:29;:::i;:::-;7441:3;7437:39;7430:46;;7210:272;;;;;:::o;7488:367::-;;7651:67;7715:2;7710:3;7651:67;:::i;:::-;7644:74;;7748:34;7744:1;7739:3;7735:11;7728:55;7814:5;7809:2;7804:3;7800:12;7793:27;7846:2;7841:3;7837:12;7830:19;;7634:221;;;:::o;7861:323::-;;8024:67;8088:2;8083:3;8024:67;:::i;:::-;8017:74;;8121:27;8117:1;8112:3;8108:11;8101:48;8175:2;8170:3;8166:12;8159:19;;8007:177;;;:::o;8190:366::-;;8353:67;8417:2;8412:3;8353:67;:::i;:::-;8346:74;;8450:34;8446:1;8441:3;8437:11;8430:55;8516:4;8511:2;8506:3;8502:12;8495:26;8547:2;8542:3;8538:12;8531:19;;8336:220;;;:::o;8562:325::-;;8725:67;8789:2;8784:3;8725:67;:::i;:::-;8718:74;;8822:29;8818:1;8813:3;8809:11;8802:50;8878:2;8873:3;8869:12;8862:19;;8708:179;;;:::o;8893:365::-;;9056:67;9120:2;9115:3;9056:67;:::i;:::-;9049:74;;9153:34;9149:1;9144:3;9140:11;9133:55;9219:3;9214:2;9209:3;9205:12;9198:25;9249:2;9244:3;9240:12;9233:19;;9039:219;;;:::o;9264:330::-;;9427:67;9491:2;9486:3;9427:67;:::i;:::-;9420:74;;9524:34;9520:1;9515:3;9511:11;9504:55;9585:2;9580:3;9576:12;9569:19;;9410:184;;;:::o;9600:373::-;;9763:67;9827:2;9822:3;9763:67;:::i;:::-;9756:74;;9860:34;9856:1;9851:3;9847:11;9840:55;9926:11;9921:2;9916:3;9912:12;9905:33;9964:2;9959:3;9955:12;9948:19;;9746:227;;;:::o;9979:369::-;;10142:67;10206:2;10201:3;10142:67;:::i;:::-;10135:74;;10239:34;10235:1;10230:3;10226:11;10219:55;10305:7;10300:2;10295:3;10291:12;10284:29;10339:2;10334:3;10330:12;10323:19;;10125:223;;;:::o;10354:324::-;;10517:67;10581:2;10576:3;10517:67;:::i;:::-;10510:74;;10614:28;10610:1;10605:3;10601:11;10594:49;10669:2;10664:3;10660:12;10653:19;;10500:178;;;:::o;10684:368::-;;10847:67;10911:2;10906:3;10847:67;:::i;:::-;10840:74;;10944:34;10940:1;10935:3;10931:11;10924:55;11010:6;11005:2;11000:3;10996:12;10989:28;11043:2;11038:3;11034:12;11027:19;;10830:222;;;:::o;11058:321::-;;11221:67;11285:2;11280:3;11221:67;:::i;:::-;11214:74;;11318:25;11314:1;11309:3;11305:11;11298:46;11370:2;11365:3;11361:12;11354:19;;11204:175;;;:::o;11385:318::-;;11548:67;11612:2;11607:3;11548:67;:::i;:::-;11541:74;;11645:22;11641:1;11636:3;11632:11;11625:43;11694:2;11689:3;11685:12;11678:19;;11531:172;;;:::o;11709:118::-;11796:24;11814:5;11796:24;:::i;:::-;11791:3;11784:37;11774:53;;:::o;11833:112::-;11916:22;11932:5;11916:22;:::i;:::-;11911:3;11904:35;11894:51;;:::o;11951:222::-;;12082:2;12071:9;12067:18;12059:26;;12095:71;12163:1;12152:9;12148:17;12139:6;12095:71;:::i;:::-;12049:124;;;;:::o;12179:348::-;;12346:2;12335:9;12331:18;12323:26;;12359:79;12435:1;12424:9;12420:17;12411:6;12359:79;:::i;:::-;12448:72;12516:2;12505:9;12501:18;12492:6;12448:72;:::i;:::-;12313:214;;;;;:::o;12533:332::-;;12692:2;12681:9;12677:18;12669:26;;12705:71;12773:1;12762:9;12758:17;12749:6;12705:71;:::i;:::-;12786:72;12854:2;12843:9;12839:18;12830:6;12786:72;:::i;:::-;12659:206;;;;;:::o;12871:807::-;;13158:3;13147:9;13143:19;13135:27;;13172:71;13240:1;13229:9;13225:17;13216:6;13172:71;:::i;:::-;13253:72;13321:2;13310:9;13306:18;13297:6;13253:72;:::i;:::-;13335:80;13411:2;13400:9;13396:18;13387:6;13335:80;:::i;:::-;13425;13501:2;13490:9;13486:18;13477:6;13425:80;:::i;:::-;13515:73;13583:3;13572:9;13568:19;13559:6;13515:73;:::i;:::-;13598;13666:3;13655:9;13651:19;13642:6;13598:73;:::i;:::-;13125:553;;;;;;;;;:::o;13684:210::-;;13809:2;13798:9;13794:18;13786:26;;13822:65;13884:1;13873:9;13869:17;13860:6;13822:65;:::i;:::-;13776:118;;;;:::o;13900:238::-;;14039:2;14028:9;14024:18;14016:26;;14052:79;14128:1;14117:9;14113:17;14104:6;14052:79;:::i;:::-;14006:132;;;;:::o;14144:313::-;;14295:2;14284:9;14280:18;14272:26;;14344:9;14338:4;14334:20;14330:1;14319:9;14315:17;14308:47;14372:78;14445:4;14436:6;14372:78;:::i;:::-;14364:86;;14262:195;;;;:::o;14463:419::-;;14667:2;14656:9;14652:18;14644:26;;14716:9;14710:4;14706:20;14702:1;14691:9;14687:17;14680:47;14744:131;14870:4;14744:131;:::i;:::-;14736:139;;14634:248;;;:::o;14888:419::-;;15092:2;15081:9;15077:18;15069:26;;15141:9;15135:4;15131:20;15127:1;15116:9;15112:17;15105:47;15169:131;15295:4;15169:131;:::i;:::-;15161:139;;15059:248;;;:::o;15313:419::-;;15517:2;15506:9;15502:18;15494:26;;15566:9;15560:4;15556:20;15552:1;15541:9;15537:17;15530:47;15594:131;15720:4;15594:131;:::i;:::-;15586:139;;15484:248;;;:::o;15738:419::-;;15942:2;15931:9;15927:18;15919:26;;15991:9;15985:4;15981:20;15977:1;15966:9;15962:17;15955:47;16019:131;16145:4;16019:131;:::i;:::-;16011:139;;15909:248;;;:::o;16163:419::-;;16367:2;16356:9;16352:18;16344:26;;16416:9;16410:4;16406:20;16402:1;16391:9;16387:17;16380:47;16444:131;16570:4;16444:131;:::i;:::-;16436:139;;16334:248;;;:::o;16588:419::-;;16792:2;16781:9;16777:18;16769:26;;16841:9;16835:4;16831:20;16827:1;16816:9;16812:17;16805:47;16869:131;16995:4;16869:131;:::i;:::-;16861:139;;16759:248;;;:::o;17013:419::-;;17217:2;17206:9;17202:18;17194:26;;17266:9;17260:4;17256:20;17252:1;17241:9;17237:17;17230:47;17294:131;17420:4;17294:131;:::i;:::-;17286:139;;17184:248;;;:::o;17438:419::-;;17642:2;17631:9;17627:18;17619:26;;17691:9;17685:4;17681:20;17677:1;17666:9;17662:17;17655:47;17719:131;17845:4;17719:131;:::i;:::-;17711:139;;17609:248;;;:::o;17863:419::-;;18067:2;18056:9;18052:18;18044:26;;18116:9;18110:4;18106:20;18102:1;18091:9;18087:17;18080:47;18144:131;18270:4;18144:131;:::i;:::-;18136:139;;18034:248;;;:::o;18288:419::-;;18492:2;18481:9;18477:18;18469:26;;18541:9;18535:4;18531:20;18527:1;18516:9;18512:17;18505:47;18569:131;18695:4;18569:131;:::i;:::-;18561:139;;18459:248;;;:::o;18713:419::-;;18917:2;18906:9;18902:18;18894:26;;18966:9;18960:4;18956:20;18952:1;18941:9;18937:17;18930:47;18994:131;19120:4;18994:131;:::i;:::-;18986:139;;18884:248;;;:::o;19138:419::-;;19342:2;19331:9;19327:18;19319:26;;19391:9;19385:4;19381:20;19377:1;19366:9;19362:17;19355:47;19419:131;19545:4;19419:131;:::i;:::-;19411:139;;19309:248;;;:::o;19563:222::-;;19694:2;19683:9;19679:18;19671:26;;19707:71;19775:1;19764:9;19760:17;19751:6;19707:71;:::i;:::-;19661:124;;;;:::o;19791:831::-;;20092:3;20081:9;20077:19;20069:27;;20106:71;20174:1;20163:9;20159:17;20150:6;20106:71;:::i;:::-;20187:80;20263:2;20252:9;20248:18;20239:6;20187:80;:::i;:::-;20314:9;20308:4;20304:20;20299:2;20288:9;20284:18;20277:48;20342:108;20445:4;20436:6;20342:108;:::i;:::-;20334:116;;20460:72;20528:2;20517:9;20513:18;20504:6;20460:72;:::i;:::-;20542:73;20610:3;20599:9;20595:19;20586:6;20542:73;:::i;:::-;20059:563;;;;;;;;:::o;20628:214::-;;20755:2;20744:9;20740:18;20732:26;;20768:67;20832:1;20821:9;20817:17;20808:6;20768:67;:::i;:::-;20722:120;;;;:::o;20848:283::-;;20914:2;20908:9;20898:19;;20956:4;20948:6;20944:17;21063:6;21051:10;21048:22;21027:18;21015:10;21012:34;21009:62;21006:2;;;21074:18;;:::i;:::-;21006:2;21114:10;21110:2;21103:22;20888:243;;;;:::o;21137:311::-;;21304:18;21296:6;21293:30;21290:2;;;21326:18;;:::i;:::-;21290:2;21376:4;21368:6;21364:17;21356:25;;21436:4;21430;21426:15;21418:23;;21219:229;;;:::o;21454:132::-;;21544:3;21536:11;;21574:4;21569:3;21565:14;21557:22;;21526:60;;;:::o;21592:114::-;;21693:5;21687:12;21677:22;;21666:40;;;:::o;21712:99::-;;21798:5;21792:12;21782:22;;21771:40;;;:::o;21817:113::-;;21919:4;21914:3;21910:14;21902:22;;21892:38;;;:::o;21936:184::-;;22069:6;22064:3;22057:19;22109:4;22104:3;22100:14;22085:29;;22047:73;;;;:::o;22126:169::-;;22244:6;22239:3;22232:19;22284:4;22279:3;22275:14;22260:29;;22222:73;;;;:::o;22301:305::-;;22360:20;22378:1;22360:20;:::i;:::-;22355:25;;22394:20;22412:1;22394:20;:::i;:::-;22389:25;;22548:1;22480:66;22476:74;22473:1;22470:81;22467:2;;;22554:18;;:::i;:::-;22467:2;22598:1;22595;22591:9;22584:16;;22345:261;;;;:::o;22612:185::-;;22669:20;22687:1;22669:20;:::i;:::-;22664:25;;22703:20;22721:1;22703:20;:::i;:::-;22698:25;;22742:1;22732:2;;22747:18;;:::i;:::-;22732:2;22789:1;22786;22782:9;22777:14;;22654:143;;;;:::o;22803:848::-;;;22895:6;22886:15;;22919:5;22910:14;;22933:712;22954:1;22944:8;22941:15;22933:712;;;23049:4;23044:3;23040:14;23034:4;23031:24;23028:2;;;23058:18;;:::i;:::-;23028:2;23108:1;23098:8;23094:16;23091:2;;;23523:4;23516:5;23512:16;23503:25;;23091:2;23573:4;23567;23563:15;23555:23;;23603:32;23626:8;23603:32;:::i;:::-;23591:44;;22933:712;;;22876:775;;;;;;;:::o;23657:281::-;;23739:23;23757:4;23739:23;:::i;:::-;23731:31;;23783:25;23799:8;23783:25;:::i;:::-;23771:37;;23827:104;23864:66;23854:8;23848:4;23827:104;:::i;:::-;23818:113;;23721:217;;;;:::o;23944:1073::-;;24189:8;24179:2;;24210:1;24201:10;;24212:5;;24179:2;24238:4;24228:2;;24255:1;24246:10;;24257:5;;24228:2;24324:4;24372:1;24367:27;;;;24408:1;24403:191;;;;24317:277;;24367:27;24385:1;24376:10;;24387:5;;;24403:191;24448:3;24438:8;24435:17;24432:2;;;24455:18;;:::i;:::-;24432:2;24504:8;24501:1;24497:16;24488:25;;24539:3;24532:5;24529:14;24526:2;;;24546:18;;:::i;:::-;24526:2;24579:5;;;24317:277;;24703:2;24693:8;24690:16;24684:3;24678:4;24675:13;24671:36;24653:2;24643:8;24640:16;24635:2;24629:4;24626:12;24622:35;24606:111;24603:2;;;24759:8;24753:4;24749:19;24740:28;;24794:3;24787:5;24784:14;24781:2;;;24801:18;;:::i;:::-;24781:2;24834:5;;24603:2;24874:42;24912:3;24902:8;24896:4;24893:1;24874:42;:::i;:::-;24859:57;;;;24948:4;24943:3;24939:14;24932:5;24929:25;24926:2;;;24957:18;;:::i;:::-;24926:2;25006:4;24999:5;24995:16;24986:25;;24004:1013;;;;;;:::o;25023:348::-;;25086:20;25104:1;25086:20;:::i;:::-;25081:25;;25120:20;25138:1;25120:20;:::i;:::-;25115:25;;25308:1;25240:66;25236:74;25233:1;25230:81;25225:1;25218:9;25211:17;25207:105;25204:2;;;25315:18;;:::i;:::-;25204:2;25363:1;25360;25356:9;25345:20;;25071:300;;;;:::o;25377:191::-;;25437:20;25455:1;25437:20;:::i;:::-;25432:25;;25471:20;25489:1;25471:20;:::i;:::-;25466:25;;25510:1;25507;25504:8;25501:2;;;25515:18;;:::i;:::-;25501:2;25560:1;25557;25553:9;25545:17;;25422:146;;;;:::o;25574:96::-;;25640:24;25658:5;25640:24;:::i;:::-;25629:35;;25619:51;;;:::o;25676:90::-;;25753:5;25746:13;25739:21;25728:32;;25718:48;;;:::o;25772:126::-;;25849:42;25842:5;25838:54;25827:65;;25817:81;;;:::o;25904:77::-;;25970:5;25959:16;;25949:32;;;:::o;25987:86::-;;26062:4;26055:5;26051:16;26040:27;;26030:43;;;:::o;26079:134::-;;26170:37;26201:5;26170:37;:::i;:::-;26157:50;;26147:66;;;:::o;26219:121::-;;26310:24;26328:5;26310:24;:::i;:::-;26297:37;;26287:53;;;:::o;26346:126::-;;26429:37;26460:5;26429:37;:::i;:::-;26416:50;;26406:66;;;:::o;26478:113::-;;26561:24;26579:5;26561:24;:::i;:::-;26548:37;;26538:53;;;:::o;26597:307::-;26665:1;26675:113;26689:6;26686:1;26683:13;26675:113;;;26774:1;26769:3;26765:11;26759:18;26755:1;26750:3;26746:11;26739:39;26711:2;26708:1;26704:10;26699:15;;26675:113;;;26806:6;26803:1;26800:13;26797:2;;;26886:1;26877:6;26872:3;26868:16;26861:27;26797:2;26646:258;;;;:::o;26910:233::-;;26972:24;26990:5;26972:24;:::i;:::-;26963:33;;27018:66;27011:5;27008:77;27005:2;;;27088:18;;:::i;:::-;27005:2;27135:1;27128:5;27124:13;27117:20;;26953:190;;;:::o;27149:176::-;;27198:20;27216:1;27198:20;:::i;:::-;27193:25;;27232:20;27250:1;27232:20;:::i;:::-;27227:25;;27271:1;27261:2;;27276:18;;:::i;:::-;27261:2;27317:1;27314;27310:9;27305:14;;27183:142;;;;:::o;27331:180::-;27379:77;27376:1;27369:88;27476:4;27473:1;27466:15;27500:4;27497:1;27490:15;27517:180;27565:77;27562:1;27555:88;27662:4;27659:1;27652:15;27686:4;27683:1;27676:15;27703:180;27751:77;27748:1;27741:88;27848:4;27845:1;27838:15;27872:4;27869:1;27862:15;27889:102;;27981:2;27977:7;27972:2;27965:5;27961:14;27957:28;27947:38;;27937:54;;;:::o;27997:102::-;;28086:5;28083:1;28079:13;28058:34;;28048:51;;;:::o;28105:122::-;28178:24;28196:5;28178:24;:::i;:::-;28171:5;28168:35;28158:2;;28217:1;28214;28207:12;28158:2;28148:79;:::o;28233:116::-;28303:21;28318:5;28303:21;:::i;:::-;28296:5;28293:32;28283:2;;28339:1;28336;28329:12;28283:2;28273:76;:::o;28355:122::-;28428:24;28446:5;28428:24;:::i;:::-;28421:5;28418:35;28408:2;;28467:1;28464;28457:12;28408:2;28398:79;:::o
Swarm Source
ipfs://79ac89a2a8025979930bafdc6e83b70e7793ffdb6215901878444e55d8815907
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)