Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
420,000,000,000 Xai-Shiba
Holders
16
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
XAISHIBA
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-07-14
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.16;
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address _owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface DexFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface DexRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {return 0;}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this;
return msg.data;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
authorizations[_owner] = true;
emit OwnershipTransferred(address(0), msgSender);
}
mapping (address => bool) internal authorizations;
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
contract XAISHIBA is Ownable, IERC20 {
using SafeMath for uint256;
uint8 constant private _decimals = 18;
uint256 private _totalSupply = 420000000000 * (10 ** _decimals);
uint256 public _maxTxAmount = _totalSupply * 10 / 1000;
uint256 public _walletMax = _totalSupply * 10 / 1000;
address private constant DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
address private constant ZERO_WALLET = 0x0000000000000000000000000000000000000000;
address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
string constant private _name = "XAISHIBA";
string constant private _symbol = "Xai-Shiba";
bool public restrictWhales = true;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public isFeeExempt;
mapping(address => bool) public isTxLimitExempt;
uint256 private liquidityFee = 0;
uint256 private buybackFee = 2;
uint256 private marketingFee = 3;
uint256 private blaFee = 0;
uint256 public rewardFee = 0;
uint256 public totalFee = 0;
uint256 public totalFeeIfSelling = 0;
bool public takeBuyFee = true;
bool public takeSellFee = true;
bool public takeTransferFee = true;
address private autoLiquidityReceiver;
address private marketingWallet;
address private buybackWallet;
address private blaWallet;
address private nativeWallet;
DexRouter public router;
address public pair;
mapping(address => bool) public isPair;
uint256 public launchedAt;
bool public tradingOpen = false;
bool public blacklistMode = true;
bool public canUseBlacklist = true;
mapping(address => bool) public isBlacklisted;
bool private inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
uint256 public swapThreshold = _totalSupply * 4 / 2000;
event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor() {
router = DexRouter(routerAddress);
pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
isPair[pair] = true;
_allowances[address(this)][address(router)] = type(uint256).max;
_allowances[address(this)][address(pair)] = type(uint256).max;
isFeeExempt[msg.sender] = true;
isFeeExempt[address(this)] = true;
isFeeExempt[DEAD_WALLET] = true;
isFeeExempt[nativeWallet] = true;
isTxLimitExempt[nativeWallet] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[pair] = true;
isTxLimitExempt[DEAD_WALLET] = true;
autoLiquidityReceiver = msg.sender;
marketingWallet = 0xFD261a3DaA637EA6a6c73e11bc1834D59bb46BfA;
buybackWallet = 0xc4f8EBb4E8bda9e00dd7019E6C5a279FBfeb01Ab;
blaWallet = 0xc4f8EBb4E8bda9e00dd7019E6C5a279FBfeb01Ab;
nativeWallet = 0xc4f8EBb4E8bda9e00dd7019E6C5a279FBfeb01Ab;
isFeeExempt[marketingWallet] = true;
totalFee = liquidityFee.add(marketingFee).add(blaFee).add(rewardFee).add(buybackFee);
totalFeeIfSelling = totalFee;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable {}
function name() external pure override returns (string memory) {return _name;}
function symbol() external pure override returns (string memory) {return _symbol;}
function decimals() external pure override returns (uint8) {return _decimals;}
function totalSupply() external view override returns (uint256) {return _totalSupply;}
function getOwner() external view override returns (address) {return owner();}
function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET));
}
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function launched() internal view returns (bool) {
return launchedAt != 0;
}
function launch() internal {
launchedAt = block.number;
}
function checkTxLimit(address sender, uint256 amount) internal view {
require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
if(!authorizations[sender] && !authorizations[recipient]){
require(tradingOpen, "Trading not open yet");
}
require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
if (!launched() && isPair[recipient]) {
require(_balances[sender] > 0, "Zero balance violated!");
launch();
}
// Blacklist
if (blacklistMode) {
require(!isBlacklisted[sender],"Blacklisted");
}
//Exchange tokens
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
if (!isTxLimitExempt[recipient] && restrictWhales) {
require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
}
uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
_balances[recipient] = _balances[recipient].add(finalAmount);
emit Transfer(sender, recipient, finalAmount);
return true;
}
function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint feeApplicable = 0;
uint nativeAmount = 0;
if (isPair[recipient] && takeSellFee) {
feeApplicable = totalFeeIfSelling.sub(rewardFee);
}
if (isPair[sender] && takeBuyFee) {
feeApplicable = totalFee.sub(rewardFee);
}
if (!isPair[sender] && !isPair[recipient]){
if (takeTransferFee){
feeApplicable = totalFeeIfSelling.sub(rewardFee);
}
else{
feeApplicable = 0;
}
}
if(feeApplicable > 0 && rewardFee >0){
nativeAmount = amount.mul(rewardFee).div(100);
_balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
emit Transfer(sender, nativeWallet, nativeAmount);
}
uint256 feeAmount = amount.mul(feeApplicable).div(100);
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount).sub(nativeAmount);
}
function marketingAndLiquidity() internal lockTheSwap {
uint256 tokensToLiquify = _balances[address(this)];
uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee.sub(rewardFee)).div(2);
uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountBNB = address(this).balance;
uint256 totalBNBFee = totalFee.sub(rewardFee).sub(liquidityFee.div(2));
uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
uint256 amountBNBbla = amountBNB.mul(blaFee).div(totalBNBFee);
uint256 amountBNBbuyback = amountBNB.mul(buybackFee).div(totalBNBFee);
(bool tmpSuccess1,) = payable(marketingWallet).call{value : amountBNBMarketing, gas : 30000}("");
tmpSuccess1 = false;
(tmpSuccess1,) = payable(blaWallet).call{value : amountBNBbla, gas : 30000}("");
tmpSuccess1 = false;
(tmpSuccess1,) = payable(buybackWallet).call{value : amountBNBbuyback, gas : 30000}("");
tmpSuccess1 = false;
if (amountToLiquify > 0) {
router.addLiquidityETH{value : amountBNBLiquidity}(
address(this),
amountToLiquify,
0,
0,
autoLiquidityReceiver,
block.timestamp
);
emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
}
}
function setWalletLimit(uint256 newLimit) external onlyOwner {
require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
_walletMax = _totalSupply * newLimit / 1000;
}
function setTxLimit(uint256 newLimit) external onlyOwner {
require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
_maxTxAmount = _totalSupply * newLimit / 1000;
}
function tradingStatus(bool newStatus) public onlyOwner {
require(canUseBlacklist, "Can no longer pause trading");
tradingOpen = newStatus;
}
function openTrading() public onlyOwner {
tradingOpen = true;
}
function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
}
function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
isTxLimitExempt[holder] = exempt;
}
function fullWhitelist(address target) public onlyOwner{
authorizations[target] = true;
isFeeExempt[target] = true;
isTxLimitExempt[target] = true;
}
function setFees(uint256 newLiqFee, uint256 newMarketingFee, uint256 newblaFee, uint256 newrewardFee, uint256 extraSellFee) external onlyOwner {
liquidityFee = newLiqFee;
marketingFee = newMarketingFee;
blaFee = newblaFee;
rewardFee = newrewardFee;
totalFee = liquidityFee.add(marketingFee).add(buybackFee).add(blaFee).add(rewardFee);
totalFeeIfSelling = totalFee + extraSellFee;
require (totalFeeIfSelling + totalFee < 40);
}
function enable_blacklist(bool _status) public onlyOwner {
require(canUseBlacklist, "Can no longer add blacklists");
blacklistMode = _status;
}
function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
require(canUseBlacklist, "Can no longer add blacklists");
for (uint256 i; i < addresses.length; ++i) {
isBlacklisted[addresses[i]] = status;
}
}
function isAuth(address _address, bool status) public onlyOwner{
authorizations[_address] = status;
}
function setPair(address _address, bool status) public onlyOwner{
isPair[_address] = status;
}
function renounceBlacklist() public onlyOwner{
canUseBlacklist = false;
}
function disableBlacklistDONTUSETHIS() public onlyOwner{
blacklistMode = false;
}
function setTakeBuyfee(bool status) public onlyOwner{
takeBuyFee = status;
}
function setTakeSellfee(bool status) public onlyOwner{
takeSellFee = status;
}
function setTakeTransferfee(bool status) public onlyOwner{
takeTransferFee = status;
}
function setSwapbackSettings(bool status, uint256 newAmount) public onlyOwner{
swapAndLiquifyEnabled = status;
swapThreshold = newAmount;
}
function setFeeReceivers(address newMktWallet, address newblaWallet, address newLpWallet, address newNativeWallet) public onlyOwner{
autoLiquidityReceiver = newLpWallet;
marketingWallet = newMktWallet;
blaWallet = newblaWallet;
nativeWallet = newNativeWallet;
}
function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
require(tokenAddress != address(this), "Cant remove the native token");
return IERC20(tokenAddress).transfer(msg.sender, tokens);
}
function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
uint256 amountETH = address(this).balance;
payable(msg.sender).transfer(amountETH * amountPercentage / 100);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canUseBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableBlacklistDONTUSETHIS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"fullWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMktWallet","type":"address"},{"internalType":"address","name":"newblaWallet","type":"address"},{"internalType":"address","name":"newLpWallet","type":"address"},{"internalType":"address","name":"newNativeWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newblaFee","type":"uint256"},{"internalType":"uint256","name":"newrewardFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526012600a62000014919062000ff1565b6461c9f3680062000026919062001042565b6002556103e8600a6002546200003d919062001042565b620000499190620010d2565b6003556103e8600a60025462000060919062001042565b6200006c9190620010d2565b600455737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560146101000a81548160ff0219169083151502179055506000600a556002600b556003600c556000600d556000600e556000600f5560006010556001601160006101000a81548160ff0219169083151502179055506001601160016101000a81548160ff0219169083151502179055506001601160026101000a81548160ff0219169083151502179055506000601a60006101000a81548160ff0219169083151502179055506001601a60016101000a81548160ff0219169083151502179055506001601a60026101000a81548160ff0219169083151502179055506001601c60016101000a81548160ff0219169083151502179055506000601c60026101000a81548160ff0219169083151502179055506107d06004600254620001ee919062001042565b620001fa9190620010d2565b601d553480156200020a57600080fd5b5060006200021d62000dec60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042a919062001174565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d9919062001174565b306040518363ffffffff1660e01b8152600401620004f9929190620011b7565b6020604051808303816000875af115801562000519573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053f919062001174565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160186000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fd261a3daa637ea6a6c73e11bc1834d59bb46bfa601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c4f8ebb4e8bda9e00dd7019e6c5a279fbfeb01ab601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c4f8ebb4e8bda9e00dd7019e6c5a279fbfeb01ab601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c4f8ebb4e8bda9e00dd7019e6c5a279fbfeb01ab601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d27600b5462000d13600e5462000cff600d5462000ceb600c54600a5462000df460201b62002c951790919060201c565b62000df460201b62002c951790919060201c565b62000df460201b62002c951790919060201c565b62000df460201b62002c951790919060201c565b600f81905550600f54601081905550600254600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000dde9190620011f5565b60405180910390a3620012d0565b600033905090565b600080828462000e05919062001212565b90508381101562000e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e4490620012ae565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ee55780860481111562000ebd5762000ebc62000e57565b5b600185161562000ecd5780820291505b808102905062000edd8562000e86565b945062000e9d565b94509492505050565b60008262000f00576001905062000fd3565b8162000f10576000905062000fd3565b816001811462000f29576002811462000f345762000f6a565b600191505062000fd3565b60ff84111562000f495762000f4862000e57565b5b8360020a91508482111562000f635762000f6262000e57565b5b5062000fd3565b5060208310610133831016604e8410600b841016171562000fa45782820a90508381111562000f9e5762000f9d62000e57565b5b62000fd3565b62000fb3848484600162000e93565b9250905081840481111562000fcd5762000fcc62000e57565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ffe8262000fda565b91506200100b8362000fe4565b92506200103a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000eee565b905092915050565b60006200104f8262000fda565b91506200105c8362000fda565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001098576200109762000e57565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010df8262000fda565b9150620010ec8362000fda565b925082620010ff57620010fe620010a3565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200113c826200110f565b9050919050565b6200114e816200112f565b81146200115a57600080fd5b50565b6000815190506200116e8162001143565b92915050565b6000602082840312156200118d576200118c6200110a565b5b60006200119d848285016200115d565b91505092915050565b620011b1816200112f565b82525050565b6000604082019050620011ce6000830185620011a6565b620011dd6020830184620011a6565b9392505050565b620011ef8162000fda565b82525050565b60006020820190506200120c6000830184620011e4565b92915050565b60006200121f8262000fda565b91506200122c8362000fda565b925082820190508082111562001247576200124662000e57565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001296601b836200124d565b9150620012a3826200125e565b602082019050919050565b60006020820190508181036000830152620012c98162001287565b9050919050565b6155c780620012e06000396000f3fe6080604052600436106103855760003560e01c8063807c2d9c116101d1578063bf56b37111610102578063f1d5f517116100a0578063fb32b5c21161006f578063fb32b5c214610ce5578063fbdec15314610d10578063fe575a8714610d39578063ffb54a9914610d765761038c565b8063f1d5f51714610c3f578063f2fde38b14610c68578063f84ba65d14610c91578063f887ea4014610cba5761038c565b8063da00097d116100dc578063da00097d14610b6f578063dd62ed3e14610b9a578063e5e31b1314610bd7578063f0ef821f14610c145761038c565b8063bf56b37114610b02578063c9567bf914610b2d578063ca987b0e14610b445761038c565b80638e2eee841161016f578063a535598911610149578063a535598914610a46578063a8aa1b3114610a71578063a9059cbb14610a9c578063aba1193d14610ad95761038c565b80638e2eee84146109c95780639153eb6c146109f257806395d89b4114610a1b5761038c565b8063896648c1116101ab578063896648c11461090b5780638b424267146109365780638b42507f146109615780638da5cb5b1461099e5761038c565b8063807c2d9c1461088c57806386a22eff146108b7578063893d20e8146108e05761038c565b80633f4218e0116102b6578063658d4b7f116102545780637cc5d7eb116102235780637cc5d7eb146107f85780637d1db4a5146108215780637df4d7441461084c5780637fa442ff146108635761038c565b8063658d4b7f14610750578063705409331461077957806370a08231146107a4578063715018a6146107e15761038c565b8063571ac8b011610290578063571ac8b0146106aa5780635c85974f146106e75780635e562f3b146107105780635f189361146107395761038c565b80633f4218e01461061757806344de2e4c146106545780634a74bb021461067f5761038c565b80631df4ccfc116103235780632b112e49116102fd5780632b112e491461055b578063313ce5671461058657806333f3d628146105b15780633c8e556d146105ee5761038c565b80631df4ccfc146104ca57806323b872dd146104f557806329977491146105325761038c565b8063095ea7b31161035f578063095ea7b3146104105780630d2959801461044d57806318160ddd146104765780631da1db5e146104a15761038c565b80630445b6671461039157806304a66b48146103bc57806306fdde03146103e55761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610da1565b6040516103b39190614455565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de91906144a6565b610da7565b005b3480156103f157600080fd5b506103fa610ee8565b60405161040791906145b1565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190614631565b610f25565b604051610444919061468c565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f91906146d3565b611017565b005b34801561048257600080fd5b5061048b611118565b6040516104989190614455565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c39190614700565b611122565b005b3480156104d657600080fd5b506104df61121e565b6040516104ec9190614455565b60405180910390f35b34801561050157600080fd5b5061051c6004803603810190610517919061472d565b611224565b604051610529919061468c565b60405180910390f35b34801561053e57600080fd5b50610559600480360381019061055491906146d3565b611424565b005b34801561056757600080fd5b506105706114d6565b60405161057d9190614455565b60405180910390f35b34801561059257600080fd5b5061059b611517565b6040516105a8919061479c565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190614631565b611520565b6040516105e5919061468c565b60405180910390f35b3480156105fa57600080fd5b50610615600480360381019061061091906147b7565b6116ab565b005b34801561062357600080fd5b5061063e6004803603810190610639919061481e565b61184a565b60405161064b919061468c565b60405180910390f35b34801561066057600080fd5b5061066961186a565b604051610676919061468c565b60405180910390f35b34801561068b57600080fd5b5061069461187d565b6040516106a1919061468c565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc919061481e565b611890565b6040516106de919061468c565b60405180910390f35b3480156106f357600080fd5b5061070e60048036038101906107099190614700565b6118c3565b005b34801561071c57600080fd5b50610737600480360381019061073291906146d3565b6119c0565b005b34801561074557600080fd5b5061074e611ac1565b005b34801561075c57600080fd5b506107776004803603810190610772919061484b565b611b73565b005b34801561078557600080fd5b5061078e611c63565b60405161079b919061468c565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c6919061481e565b611c76565b6040516107d89190614455565b60405180910390f35b3480156107ed57600080fd5b506107f6611cbf565b005b34801561080457600080fd5b5061081f600480360381019061081a919061484b565b611e12565b005b34801561082d57600080fd5b50610836611f02565b6040516108439190614455565b60405180910390f35b34801561085857600080fd5b50610861611f08565b005b34801561086f57600080fd5b5061088a600480360381019061088591906146d3565b611fba565b005b34801561089857600080fd5b506108a161206c565b6040516108ae9190614455565b60405180910390f35b3480156108c357600080fd5b506108de60048036038101906108d9919061484b565b612072565b005b3480156108ec57600080fd5b506108f5612162565b604051610902919061489a565b60405180910390f35b34801561091757600080fd5b50610920612171565b60405161092d919061468c565b60405180910390f35b34801561094257600080fd5b5061094b612184565b6040516109589190614455565b60405180910390f35b34801561096d57600080fd5b506109886004803603810190610983919061481e565b61218a565b604051610995919061468c565b60405180910390f35b3480156109aa57600080fd5b506109b36121aa565b6040516109c0919061489a565b60405180910390f35b3480156109d557600080fd5b506109f060048036038101906109eb919061491a565b6121d3565b005b3480156109fe57600080fd5b50610a196004803603810190610a14919061481e565b61235a565b005b348015610a2757600080fd5b50610a306124f9565b604051610a3d91906145b1565b60405180910390f35b348015610a5257600080fd5b50610a5b612536565b604051610a68919061468c565b60405180910390f35b348015610a7d57600080fd5b50610a86612549565b604051610a93919061489a565b60405180910390f35b348015610aa857600080fd5b50610ac36004803603810190610abe9190614631565b61256f565b604051610ad0919061468c565b60405180910390f35b348015610ae557600080fd5b50610b006004803603810190610afb919061497a565b612584565b005b348015610b0e57600080fd5b50610b1761263e565b604051610b249190614455565b60405180910390f35b348015610b3957600080fd5b50610b42612644565b005b348015610b5057600080fd5b50610b596126f6565b604051610b669190614455565b60405180910390f35b348015610b7b57600080fd5b50610b846126fc565b604051610b91919061468c565b60405180910390f35b348015610ba657600080fd5b50610bc16004803603810190610bbc91906149ba565b61270f565b604051610bce9190614455565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf9919061481e565b612796565b604051610c0b919061468c565b60405180910390f35b348015610c2057600080fd5b50610c296127b6565b604051610c36919061468c565b60405180910390f35b348015610c4b57600080fd5b50610c666004803603810190610c619190614700565b6127c9565b005b348015610c7457600080fd5b50610c8f6004803603810190610c8a919061481e565b6128c6565b005b348015610c9d57600080fd5b50610cb86004803603810190610cb3919061484b565b612a87565b005b348015610cc657600080fd5b50610ccf612b77565b604051610cdc9190614a59565b60405180910390f35b348015610cf157600080fd5b50610cfa612b9d565b604051610d07919061468c565b60405180910390f35b348015610d1c57600080fd5b50610d376004803603810190610d3291906146d3565b612bb0565b005b348015610d4557600080fd5b50610d606004803603810190610d5b919061481e565b612c62565b604051610d6d919061468c565b60405180910390f35b348015610d8257600080fd5b50610d8b612c82565b604051610d98919061468c565b60405180910390f35b601d5481565b610daf612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390614ac0565b60405180910390fd5b84600a8190555083600c8190555082600d8190555081600e81905550610eab600e54610e9d600d54610e8f600b54610e81600c54600a54612c9590919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b600f8190555080600f54610ebf9190614b0f565b6010819055506028600f54601054610ed79190614b0f565b10610ee157600080fd5b5050505050565b60606040518060400160405280600881526020017f5841495348494241000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110059190614455565b60405180910390a36001905092915050565b61101f612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a390614ac0565b60405180910390fd5b601a60029054906101000a900460ff166110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290614b8f565b60405180910390fd5b80601a60006101000a81548160ff02191690831515021790555050565b6000600254905090565b61112a612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90614ac0565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846111e49190614baf565b6111ee9190614c38565b9081150290604051600060405180830381858888f19350505050158015611219573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114105761138f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cfb9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61141b848484612d5f565b90509392505050565b61142c612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090614ac0565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60006115126114e56000611c76565b6115046114f361dead611c76565b60025461351790919063ffffffff16565b61351790919063ffffffff16565b905090565b60006012905090565b600061152a612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae90614ac0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161c90614cb5565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611660929190614cd5565b6020604051808303816000875af115801561167f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a39190614d13565b905092915050565b6116b3612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173790614ac0565b60405180910390fd5b81601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600560149054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b60006118bc827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f25565b9050919050565b6118cb612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194f90614ac0565b60405180910390fd5b600581101561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390614db2565b60405180910390fd5b6103e8816002546119ad9190614baf565b6119b79190614c38565b60038190555050565b6119c8612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90614ac0565b60405180910390fd5b601a60029054906101000a900460ff16611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90614e1e565b60405180910390fd5b80601a60016101000a81548160ff02191690831515021790555050565b611ac9612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d90614ac0565b60405180910390fd5b6000601a60026101000a81548160ff021916908315150217905550565b611b7b612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff90614ac0565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611cc7612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4b90614ac0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611e1a612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9e90614ac0565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b611f10612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9490614ac0565b60405180910390fd5b6000601a60016101000a81548160ff021916908315150217905550565b611fc2612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461204f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204690614ac0565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b60045481565b61207a612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fe90614ac0565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061216c6121aa565b905090565b601a60019054906101000a900460ff1681565b600e5481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121db612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225f90614ac0565b60405180910390fd5b601a60029054906101000a900460ff166122b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ae90614e1e565b60405180910390fd5b60005b838390508110156123545781601b60008686858181106122dd576122dc614e3e565b5b90506020020160208101906122f2919061481e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061234d90614e6d565b90506122ba565b50505050565b612362612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e690614ac0565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600981526020017f5861692d53686962610000000000000000000000000000000000000000000000815250905090565b601160029054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061257c338484612d5f565b905092915050565b61258c612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261090614ac0565b60405180910390fd5b81601c60016101000a81548160ff02191690831515021790555080601d819055505050565b60195481565b61264c612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d090614ac0565b60405180910390fd5b6001601a60006101000a81548160ff021916908315150217905550565b60105481565b601c60029054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900460ff1681565b6127d1612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461285e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285590614ac0565b60405180910390fd5b60058110156128a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289990614db2565b60405180910390fd5b6103e8816002546128b39190614baf565b6128bd9190614c38565b60048190555050565b6128ce612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461295b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295290614ac0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036129ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c190614f27565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a8f612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1390614ac0565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a60029054906101000a900460ff1681565b612bb8612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3c90614ac0565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900460ff1681565b6000808284612ca49190614b0f565b905083811015612ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce090614f93565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3a91906145b1565b60405180910390fd5b5060008385612d529190614fb3565b9050809150509392505050565b6000601c60009054906101000a900460ff1615612d8857612d81848484613561565b9050613510565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e2c5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e8157601a60009054906101000a900460ff16612e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7790615033565b60405180910390fd5b5b60035482111580612edb5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f119061509f565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f805750601c60009054906101000a900460ff16155b8015612f985750601c60019054906101000a900460ff165b8015612fe55750601d54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612ff357612ff2613734565b5b612ffb613e15565b1580156130515750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130e1576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116130d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130cf9061510b565b60405180910390fd5b6130e0613e22565b5b601a60019054906101000a900460ff161561318457601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317a90615177565b60405180910390fd5b5b61320d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cfb9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132b65750600560149054906101000a900460ff165b156133525760045461331083600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b1115613351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613348906151e3565b60405180910390fd5b5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133f85750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613402578261340e565b61340d858585613e2b565b5b905061346281600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135029190614455565b60405180910390a360019150505b9392505050565b600061355983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cfb565b905092915050565b60006135ec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cfb9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516137219190614455565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006137e560026137d76137b4600e54600f5461351790919063ffffffff16565b6137c9600a548761431590919063ffffffff16565b61438f90919063ffffffff16565b61438f90919063ffffffff16565b905060006137fc828461351790919063ffffffff16565b90506000600267ffffffffffffffff81111561381b5761381a615203565b5b6040519080825280602002602001820160405280156138495781602001602082028036833780820191505090505b509050308160008151811061386157613860614e3e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392c9190615247565b816001815181106139405761393f614e3e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016139de95949392919061536d565b600060405180830381600087803b1580156139f857600080fd5b505af1158015613a0c573d6000803e3d6000fd5b5050505060004790506000613a55613a306002600a5461438f90919063ffffffff16565b613a47600e54600f5461351790919063ffffffff16565b61351790919063ffffffff16565b90506000613a936002613a8584613a77600a548861431590919063ffffffff16565b61438f90919063ffffffff16565b61438f90919063ffffffff16565b90506000613abe83613ab0600c548761431590919063ffffffff16565b61438f90919063ffffffff16565b90506000613ae984613adb600d548861431590919063ffffffff16565b61438f90919063ffffffff16565b90506000613b1485613b06600b548961431590919063ffffffff16565b61438f90919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613b62906153f8565b600060405180830381858888f193505050503d8060008114613ba0576040519150601f19603f3d011682016040523d82523d6000602084013e613ba5565b606091505b5050905060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613bf7906153f8565b600060405180830381858888f193505050503d8060008114613c35576040519150601f19603f3d011682016040523d82523d6000602084013e613c3a565b606091505b50508091505060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051613c8e906153f8565b600060405180830381858888f193505050503d8060008114613ccc576040519150601f19603f3d011682016040523d82523d6000602084013e613cd1565b606091505b5050809150506000905060008a1115613ded57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613d6d9695949392919061540d565b60606040518083038185885af1158015613d8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613db09190615483565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b604051613de49291906154d6565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806019541415905090565b43601981905550565b600080600090506000601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613e995750601160019054906101000a900460ff165b15613eb857613eb5600e5460105461351790919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613f1d5750601160009054906101000a900460ff165b15613f3c57613f39600e54600f5461351790919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613fe05750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561401e57601160029054906101000a900460ff161561401857614011600e5460105461351790919063ffffffff16565b915061401d565b600091505b5b60008211801561403057506000600e54115b156141c05761405d606461404f600e548761431590919063ffffffff16565b61438f90919063ffffffff16565b90506140d38160066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b60066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516141b79190614455565b60405180910390a35b60006141e860646141da858861431590919063ffffffff16565b61438f90919063ffffffff16565b905061423c81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516142dc9190614455565b60405180910390a3614309826142fb838861351790919063ffffffff16565b61351790919063ffffffff16565b93505050509392505050565b60008083036143275760009050614389565b600082846143359190614baf565b90508284826143449190614c38565b14614384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161437b90615571565b60405180910390fd5b809150505b92915050565b60006143d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506143d9565b905092915050565b60008083118290614420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161441791906145b1565b60405180910390fd5b506000838561442f9190614c38565b9050809150509392505050565b6000819050919050565b61444f8161443c565b82525050565b600060208201905061446a6000830184614446565b92915050565b600080fd5b600080fd5b6144838161443c565b811461448e57600080fd5b50565b6000813590506144a08161447a565b92915050565b600080600080600060a086880312156144c2576144c1614470565b5b60006144d088828901614491565b95505060206144e188828901614491565b94505060406144f288828901614491565b935050606061450388828901614491565b925050608061451488828901614491565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b8381101561455b578082015181840152602081019050614540565b60008484015250505050565b6000601f19601f8301169050919050565b600061458382614521565b61458d818561452c565b935061459d81856020860161453d565b6145a681614567565b840191505092915050565b600060208201905081810360008301526145cb8184614578565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006145fe826145d3565b9050919050565b61460e816145f3565b811461461957600080fd5b50565b60008135905061462b81614605565b92915050565b6000806040838503121561464857614647614470565b5b60006146568582860161461c565b925050602061466785828601614491565b9150509250929050565b60008115159050919050565b61468681614671565b82525050565b60006020820190506146a1600083018461467d565b92915050565b6146b081614671565b81146146bb57600080fd5b50565b6000813590506146cd816146a7565b92915050565b6000602082840312156146e9576146e8614470565b5b60006146f7848285016146be565b91505092915050565b60006020828403121561471657614715614470565b5b600061472484828501614491565b91505092915050565b60008060006060848603121561474657614745614470565b5b60006147548682870161461c565b93505060206147658682870161461c565b925050604061477686828701614491565b9150509250925092565b600060ff82169050919050565b61479681614780565b82525050565b60006020820190506147b1600083018461478d565b92915050565b600080600080608085870312156147d1576147d0614470565b5b60006147df8782880161461c565b94505060206147f08782880161461c565b93505060406148018782880161461c565b92505060606148128782880161461c565b91505092959194509250565b60006020828403121561483457614833614470565b5b60006148428482850161461c565b91505092915050565b6000806040838503121561486257614861614470565b5b60006148708582860161461c565b9250506020614881858286016146be565b9150509250929050565b614894816145f3565b82525050565b60006020820190506148af600083018461488b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126148da576148d96148b5565b5b8235905067ffffffffffffffff8111156148f7576148f66148ba565b5b602083019150836020820283011115614913576149126148bf565b5b9250929050565b60008060006040848603121561493357614932614470565b5b600084013567ffffffffffffffff81111561495157614950614475565b5b61495d868287016148c4565b93509350506020614970868287016146be565b9150509250925092565b6000806040838503121561499157614990614470565b5b600061499f858286016146be565b92505060206149b085828601614491565b9150509250929050565b600080604083850312156149d1576149d0614470565b5b60006149df8582860161461c565b92505060206149f08582860161461c565b9150509250929050565b6000819050919050565b6000614a1f614a1a614a15846145d3565b6149fa565b6145d3565b9050919050565b6000614a3182614a04565b9050919050565b6000614a4382614a26565b9050919050565b614a5381614a38565b82525050565b6000602082019050614a6e6000830184614a4a565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614aaa60208361452c565b9150614ab582614a74565b602082019050919050565b60006020820190508181036000830152614ad981614a9d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614b1a8261443c565b9150614b258361443c565b9250828201905080821115614b3d57614b3c614ae0565b5b92915050565b7f43616e206e6f206c6f6e6765722070617573652074726164696e670000000000600082015250565b6000614b79601b8361452c565b9150614b8482614b43565b602082019050919050565b60006020820190508181036000830152614ba881614b6c565b9050919050565b6000614bba8261443c565b9150614bc58361443c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bfe57614bfd614ae0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614c438261443c565b9150614c4e8361443c565b925082614c5e57614c5d614c09565b5b828204905092915050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b6000614c9f601c8361452c565b9150614caa82614c69565b602082019050919050565b60006020820190508181036000830152614cce81614c92565b9050919050565b6000604082019050614cea600083018561488b565b614cf76020830184614446565b9392505050565b600081519050614d0d816146a7565b92915050565b600060208284031215614d2957614d28614470565b5b6000614d3784828501614cfe565b91505092915050565b7f57616c6c6574204c696d6974206e6565647320746f206265206174206c65617360008201527f7420302e35250000000000000000000000000000000000000000000000000000602082015250565b6000614d9c60268361452c565b9150614da782614d40565b604082019050919050565b60006020820190508181036000830152614dcb81614d8f565b9050919050565b7f43616e206e6f206c6f6e6765722061646420626c61636b6c6973747300000000600082015250565b6000614e08601c8361452c565b9150614e1382614dd2565b602082019050919050565b60006020820190508181036000830152614e3781614dfb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e788261443c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614eaa57614ea9614ae0565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614f1160268361452c565b9150614f1c82614eb5565b604082019050919050565b60006020820190508181036000830152614f4081614f04565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614f7d601b8361452c565b9150614f8882614f47565b602082019050919050565b60006020820190508181036000830152614fac81614f70565b9050919050565b6000614fbe8261443c565b9150614fc98361443c565b9250828203905081811115614fe157614fe0614ae0565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061501d60148361452c565b915061502882614fe7565b602082019050919050565b6000602082019050818103600083015261504c81615010565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061508960118361452c565b915061509482615053565b602082019050919050565b600060208201905081810360008301526150b88161507c565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b60006150f560168361452c565b9150615100826150bf565b602082019050919050565b60006020820190508181036000830152615124816150e8565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615161600b8361452c565b915061516c8261512b565b602082019050919050565b6000602082019050818103600083015261519081615154565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b60006151cd60148361452c565b91506151d882615197565b602082019050919050565b600060208201905081810360008301526151fc816151c0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061524181614605565b92915050565b60006020828403121561525d5761525c614470565b5b600061526b84828501615232565b91505092915050565b6000819050919050565b600061529961529461528f84615274565b6149fa565b61443c565b9050919050565b6152a98161527e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6152e4816145f3565b82525050565b60006152f683836152db565b60208301905092915050565b6000602082019050919050565b600061531a826152af565b61532481856152ba565b935061532f836152cb565b8060005b8381101561536057815161534788826152ea565b975061535283615302565b925050600181019050615333565b5085935050505092915050565b600060a0820190506153826000830188614446565b61538f60208301876152a0565b81810360408301526153a1818661530f565b90506153b0606083018561488b565b6153bd6080830184614446565b9695505050505050565b600081905092915050565b50565b60006153e26000836153c7565b91506153ed826153d2565b600082019050919050565b6000615403826153d5565b9150819050919050565b600060c082019050615422600083018961488b565b61542f6020830188614446565b61543c60408301876152a0565b61544960608301866152a0565b615456608083018561488b565b61546360a0830184614446565b979650505050505050565b60008151905061547d8161447a565b92915050565b60008060006060848603121561549c5761549b614470565b5b60006154aa8682870161546e565b93505060206154bb8682870161546e565b92505060406154cc8682870161546e565b9150509250925092565b60006040820190506154eb6000830185614446565b6154f86020830184614446565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061555b60218361452c565b9150615566826154ff565b604082019050919050565b6000602082019050818103600083015261558a8161554e565b905091905056fea264697066735822122031849211d33841e176f613ae1428bb591bfc7e45f61b6b16a139b1d75165940464736f6c63430008100033
Deployed Bytecode
0x6080604052600436106103855760003560e01c8063807c2d9c116101d1578063bf56b37111610102578063f1d5f517116100a0578063fb32b5c21161006f578063fb32b5c214610ce5578063fbdec15314610d10578063fe575a8714610d39578063ffb54a9914610d765761038c565b8063f1d5f51714610c3f578063f2fde38b14610c68578063f84ba65d14610c91578063f887ea4014610cba5761038c565b8063da00097d116100dc578063da00097d14610b6f578063dd62ed3e14610b9a578063e5e31b1314610bd7578063f0ef821f14610c145761038c565b8063bf56b37114610b02578063c9567bf914610b2d578063ca987b0e14610b445761038c565b80638e2eee841161016f578063a535598911610149578063a535598914610a46578063a8aa1b3114610a71578063a9059cbb14610a9c578063aba1193d14610ad95761038c565b80638e2eee84146109c95780639153eb6c146109f257806395d89b4114610a1b5761038c565b8063896648c1116101ab578063896648c11461090b5780638b424267146109365780638b42507f146109615780638da5cb5b1461099e5761038c565b8063807c2d9c1461088c57806386a22eff146108b7578063893d20e8146108e05761038c565b80633f4218e0116102b6578063658d4b7f116102545780637cc5d7eb116102235780637cc5d7eb146107f85780637d1db4a5146108215780637df4d7441461084c5780637fa442ff146108635761038c565b8063658d4b7f14610750578063705409331461077957806370a08231146107a4578063715018a6146107e15761038c565b8063571ac8b011610290578063571ac8b0146106aa5780635c85974f146106e75780635e562f3b146107105780635f189361146107395761038c565b80633f4218e01461061757806344de2e4c146106545780634a74bb021461067f5761038c565b80631df4ccfc116103235780632b112e49116102fd5780632b112e491461055b578063313ce5671461058657806333f3d628146105b15780633c8e556d146105ee5761038c565b80631df4ccfc146104ca57806323b872dd146104f557806329977491146105325761038c565b8063095ea7b31161035f578063095ea7b3146104105780630d2959801461044d57806318160ddd146104765780631da1db5e146104a15761038c565b80630445b6671461039157806304a66b48146103bc57806306fdde03146103e55761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610da1565b6040516103b39190614455565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de91906144a6565b610da7565b005b3480156103f157600080fd5b506103fa610ee8565b60405161040791906145b1565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190614631565b610f25565b604051610444919061468c565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f91906146d3565b611017565b005b34801561048257600080fd5b5061048b611118565b6040516104989190614455565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c39190614700565b611122565b005b3480156104d657600080fd5b506104df61121e565b6040516104ec9190614455565b60405180910390f35b34801561050157600080fd5b5061051c6004803603810190610517919061472d565b611224565b604051610529919061468c565b60405180910390f35b34801561053e57600080fd5b50610559600480360381019061055491906146d3565b611424565b005b34801561056757600080fd5b506105706114d6565b60405161057d9190614455565b60405180910390f35b34801561059257600080fd5b5061059b611517565b6040516105a8919061479c565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190614631565b611520565b6040516105e5919061468c565b60405180910390f35b3480156105fa57600080fd5b50610615600480360381019061061091906147b7565b6116ab565b005b34801561062357600080fd5b5061063e6004803603810190610639919061481e565b61184a565b60405161064b919061468c565b60405180910390f35b34801561066057600080fd5b5061066961186a565b604051610676919061468c565b60405180910390f35b34801561068b57600080fd5b5061069461187d565b6040516106a1919061468c565b60405180910390f35b3480156106b657600080fd5b506106d160048036038101906106cc919061481e565b611890565b6040516106de919061468c565b60405180910390f35b3480156106f357600080fd5b5061070e60048036038101906107099190614700565b6118c3565b005b34801561071c57600080fd5b50610737600480360381019061073291906146d3565b6119c0565b005b34801561074557600080fd5b5061074e611ac1565b005b34801561075c57600080fd5b506107776004803603810190610772919061484b565b611b73565b005b34801561078557600080fd5b5061078e611c63565b60405161079b919061468c565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c6919061481e565b611c76565b6040516107d89190614455565b60405180910390f35b3480156107ed57600080fd5b506107f6611cbf565b005b34801561080457600080fd5b5061081f600480360381019061081a919061484b565b611e12565b005b34801561082d57600080fd5b50610836611f02565b6040516108439190614455565b60405180910390f35b34801561085857600080fd5b50610861611f08565b005b34801561086f57600080fd5b5061088a600480360381019061088591906146d3565b611fba565b005b34801561089857600080fd5b506108a161206c565b6040516108ae9190614455565b60405180910390f35b3480156108c357600080fd5b506108de60048036038101906108d9919061484b565b612072565b005b3480156108ec57600080fd5b506108f5612162565b604051610902919061489a565b60405180910390f35b34801561091757600080fd5b50610920612171565b60405161092d919061468c565b60405180910390f35b34801561094257600080fd5b5061094b612184565b6040516109589190614455565b60405180910390f35b34801561096d57600080fd5b506109886004803603810190610983919061481e565b61218a565b604051610995919061468c565b60405180910390f35b3480156109aa57600080fd5b506109b36121aa565b6040516109c0919061489a565b60405180910390f35b3480156109d557600080fd5b506109f060048036038101906109eb919061491a565b6121d3565b005b3480156109fe57600080fd5b50610a196004803603810190610a14919061481e565b61235a565b005b348015610a2757600080fd5b50610a306124f9565b604051610a3d91906145b1565b60405180910390f35b348015610a5257600080fd5b50610a5b612536565b604051610a68919061468c565b60405180910390f35b348015610a7d57600080fd5b50610a86612549565b604051610a93919061489a565b60405180910390f35b348015610aa857600080fd5b50610ac36004803603810190610abe9190614631565b61256f565b604051610ad0919061468c565b60405180910390f35b348015610ae557600080fd5b50610b006004803603810190610afb919061497a565b612584565b005b348015610b0e57600080fd5b50610b1761263e565b604051610b249190614455565b60405180910390f35b348015610b3957600080fd5b50610b42612644565b005b348015610b5057600080fd5b50610b596126f6565b604051610b669190614455565b60405180910390f35b348015610b7b57600080fd5b50610b846126fc565b604051610b91919061468c565b60405180910390f35b348015610ba657600080fd5b50610bc16004803603810190610bbc91906149ba565b61270f565b604051610bce9190614455565b60405180910390f35b348015610be357600080fd5b50610bfe6004803603810190610bf9919061481e565b612796565b604051610c0b919061468c565b60405180910390f35b348015610c2057600080fd5b50610c296127b6565b604051610c36919061468c565b60405180910390f35b348015610c4b57600080fd5b50610c666004803603810190610c619190614700565b6127c9565b005b348015610c7457600080fd5b50610c8f6004803603810190610c8a919061481e565b6128c6565b005b348015610c9d57600080fd5b50610cb86004803603810190610cb3919061484b565b612a87565b005b348015610cc657600080fd5b50610ccf612b77565b604051610cdc9190614a59565b60405180910390f35b348015610cf157600080fd5b50610cfa612b9d565b604051610d07919061468c565b60405180910390f35b348015610d1c57600080fd5b50610d376004803603810190610d3291906146d3565b612bb0565b005b348015610d4557600080fd5b50610d606004803603810190610d5b919061481e565b612c62565b604051610d6d919061468c565b60405180910390f35b348015610d8257600080fd5b50610d8b612c82565b604051610d98919061468c565b60405180910390f35b601d5481565b610daf612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390614ac0565b60405180910390fd5b84600a8190555083600c8190555082600d8190555081600e81905550610eab600e54610e9d600d54610e8f600b54610e81600c54600a54612c9590919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b600f8190555080600f54610ebf9190614b0f565b6010819055506028600f54601054610ed79190614b0f565b10610ee157600080fd5b5050505050565b60606040518060400160405280600881526020017f5841495348494241000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110059190614455565b60405180910390a36001905092915050565b61101f612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a390614ac0565b60405180910390fd5b601a60029054906101000a900460ff166110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290614b8f565b60405180910390fd5b80601a60006101000a81548160ff02191690831515021790555050565b6000600254905090565b61112a612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90614ac0565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846111e49190614baf565b6111ee9190614c38565b9081150290604051600060405180830381858888f19350505050158015611219573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114105761138f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cfb9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61141b848484612d5f565b90509392505050565b61142c612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090614ac0565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60006115126114e56000611c76565b6115046114f361dead611c76565b60025461351790919063ffffffff16565b61351790919063ffffffff16565b905090565b60006012905090565b600061152a612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae90614ac0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161c90614cb5565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611660929190614cd5565b6020604051808303816000875af115801561167f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a39190614d13565b905092915050565b6116b3612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173790614ac0565b60405180910390fd5b81601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600560149054906101000a900460ff1681565b601c60019054906101000a900460ff1681565b60006118bc827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f25565b9050919050565b6118cb612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194f90614ac0565b60405180910390fd5b600581101561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390614db2565b60405180910390fd5b6103e8816002546119ad9190614baf565b6119b79190614c38565b60038190555050565b6119c8612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90614ac0565b60405180910390fd5b601a60029054906101000a900460ff16611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90614e1e565b60405180910390fd5b80601a60016101000a81548160ff02191690831515021790555050565b611ac9612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d90614ac0565b60405180910390fd5b6000601a60026101000a81548160ff021916908315150217905550565b611b7b612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff90614ac0565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611cc7612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4b90614ac0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611e1a612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9e90614ac0565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b611f10612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9490614ac0565b60405180910390fd5b6000601a60016101000a81548160ff021916908315150217905550565b611fc2612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461204f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204690614ac0565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b60045481565b61207a612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fe90614ac0565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061216c6121aa565b905090565b601a60019054906101000a900460ff1681565b600e5481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6121db612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225f90614ac0565b60405180910390fd5b601a60029054906101000a900460ff166122b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ae90614e1e565b60405180910390fd5b60005b838390508110156123545781601b60008686858181106122dd576122dc614e3e565b5b90506020020160208101906122f2919061481e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061234d90614e6d565b90506122ba565b50505050565b612362612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e690614ac0565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600981526020017f5861692d53686962610000000000000000000000000000000000000000000000815250905090565b601160029054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061257c338484612d5f565b905092915050565b61258c612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261090614ac0565b60405180910390fd5b81601c60016101000a81548160ff02191690831515021790555080601d819055505050565b60195481565b61264c612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d090614ac0565b60405180910390fd5b6001601a60006101000a81548160ff021916908315150217905550565b60105481565b601c60029054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900460ff1681565b6127d1612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461285e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285590614ac0565b60405180910390fd5b60058110156128a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289990614db2565b60405180910390fd5b6103e8816002546128b39190614baf565b6128bd9190614c38565b60048190555050565b6128ce612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461295b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295290614ac0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036129ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c190614f27565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a8f612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1390614ac0565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a60029054906101000a900460ff1681565b612bb8612cf3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3c90614ac0565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b601b6020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900460ff1681565b6000808284612ca49190614b0f565b905083811015612ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce090614f93565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290612d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3a91906145b1565b60405180910390fd5b5060008385612d529190614fb3565b9050809150509392505050565b6000601c60009054906101000a900460ff1615612d8857612d81848484613561565b9050613510565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e2c5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e8157601a60009054906101000a900460ff16612e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7790615033565b60405180910390fd5b5b60035482111580612edb5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f119061509f565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f805750601c60009054906101000a900460ff16155b8015612f985750601c60019054906101000a900460ff165b8015612fe55750601d54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612ff357612ff2613734565b5b612ffb613e15565b1580156130515750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130e1576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116130d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130cf9061510b565b60405180910390fd5b6130e0613e22565b5b601a60019054906101000a900460ff161561318457601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317a90615177565b60405180910390fd5b5b61320d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cfb9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132b65750600560149054906101000a900460ff165b156133525760045461331083600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b1115613351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613348906151e3565b60405180910390fd5b5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133f85750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613402578261340e565b61340d858585613e2b565b5b905061346281600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135029190614455565b60405180910390a360019150505b9392505050565b600061355983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cfb565b905092915050565b60006135ec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cfb9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516137219190614455565b60405180910390a3600190509392505050565b6001601c60006101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006137e560026137d76137b4600e54600f5461351790919063ffffffff16565b6137c9600a548761431590919063ffffffff16565b61438f90919063ffffffff16565b61438f90919063ffffffff16565b905060006137fc828461351790919063ffffffff16565b90506000600267ffffffffffffffff81111561381b5761381a615203565b5b6040519080825280602002602001820160405280156138495781602001602082028036833780820191505090505b509050308160008151811061386157613860614e3e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392c9190615247565b816001815181106139405761393f614e3e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016139de95949392919061536d565b600060405180830381600087803b1580156139f857600080fd5b505af1158015613a0c573d6000803e3d6000fd5b5050505060004790506000613a55613a306002600a5461438f90919063ffffffff16565b613a47600e54600f5461351790919063ffffffff16565b61351790919063ffffffff16565b90506000613a936002613a8584613a77600a548861431590919063ffffffff16565b61438f90919063ffffffff16565b61438f90919063ffffffff16565b90506000613abe83613ab0600c548761431590919063ffffffff16565b61438f90919063ffffffff16565b90506000613ae984613adb600d548861431590919063ffffffff16565b61438f90919063ffffffff16565b90506000613b1485613b06600b548961431590919063ffffffff16565b61438f90919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613b62906153f8565b600060405180830381858888f193505050503d8060008114613ba0576040519150601f19603f3d011682016040523d82523d6000602084013e613ba5565b606091505b5050905060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613bf7906153f8565b600060405180830381858888f193505050503d8060008114613c35576040519150601f19603f3d011682016040523d82523d6000602084013e613c3a565b606091505b50508091505060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051613c8e906153f8565b600060405180830381858888f193505050503d8060008114613ccc576040519150601f19603f3d011682016040523d82523d6000602084013e613cd1565b606091505b5050809150506000905060008a1115613ded57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613d6d9695949392919061540d565b60606040518083038185885af1158015613d8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613db09190615483565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b604051613de49291906154d6565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000806019541415905090565b43601981905550565b600080600090506000601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613e995750601160019054906101000a900460ff165b15613eb857613eb5600e5460105461351790919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613f1d5750601160009054906101000a900460ff165b15613f3c57613f39600e54600f5461351790919063ffffffff16565b91505b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613fe05750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561401e57601160029054906101000a900460ff161561401857614011600e5460105461351790919063ffffffff16565b915061401d565b600091505b5b60008211801561403057506000600e54115b156141c05761405d606461404f600e548761431590919063ffffffff16565b61438f90919063ffffffff16565b90506140d38160066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b60066000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516141b79190614455565b60405180910390a35b60006141e860646141da858861431590919063ffffffff16565b61438f90919063ffffffff16565b905061423c81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516142dc9190614455565b60405180910390a3614309826142fb838861351790919063ffffffff16565b61351790919063ffffffff16565b93505050509392505050565b60008083036143275760009050614389565b600082846143359190614baf565b90508284826143449190614c38565b14614384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161437b90615571565b60405180910390fd5b809150505b92915050565b60006143d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506143d9565b905092915050565b60008083118290614420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161441791906145b1565b60405180910390fd5b506000838561442f9190614c38565b9050809150509392505050565b6000819050919050565b61444f8161443c565b82525050565b600060208201905061446a6000830184614446565b92915050565b600080fd5b600080fd5b6144838161443c565b811461448e57600080fd5b50565b6000813590506144a08161447a565b92915050565b600080600080600060a086880312156144c2576144c1614470565b5b60006144d088828901614491565b95505060206144e188828901614491565b94505060406144f288828901614491565b935050606061450388828901614491565b925050608061451488828901614491565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b8381101561455b578082015181840152602081019050614540565b60008484015250505050565b6000601f19601f8301169050919050565b600061458382614521565b61458d818561452c565b935061459d81856020860161453d565b6145a681614567565b840191505092915050565b600060208201905081810360008301526145cb8184614578565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006145fe826145d3565b9050919050565b61460e816145f3565b811461461957600080fd5b50565b60008135905061462b81614605565b92915050565b6000806040838503121561464857614647614470565b5b60006146568582860161461c565b925050602061466785828601614491565b9150509250929050565b60008115159050919050565b61468681614671565b82525050565b60006020820190506146a1600083018461467d565b92915050565b6146b081614671565b81146146bb57600080fd5b50565b6000813590506146cd816146a7565b92915050565b6000602082840312156146e9576146e8614470565b5b60006146f7848285016146be565b91505092915050565b60006020828403121561471657614715614470565b5b600061472484828501614491565b91505092915050565b60008060006060848603121561474657614745614470565b5b60006147548682870161461c565b93505060206147658682870161461c565b925050604061477686828701614491565b9150509250925092565b600060ff82169050919050565b61479681614780565b82525050565b60006020820190506147b1600083018461478d565b92915050565b600080600080608085870312156147d1576147d0614470565b5b60006147df8782880161461c565b94505060206147f08782880161461c565b93505060406148018782880161461c565b92505060606148128782880161461c565b91505092959194509250565b60006020828403121561483457614833614470565b5b60006148428482850161461c565b91505092915050565b6000806040838503121561486257614861614470565b5b60006148708582860161461c565b9250506020614881858286016146be565b9150509250929050565b614894816145f3565b82525050565b60006020820190506148af600083018461488b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126148da576148d96148b5565b5b8235905067ffffffffffffffff8111156148f7576148f66148ba565b5b602083019150836020820283011115614913576149126148bf565b5b9250929050565b60008060006040848603121561493357614932614470565b5b600084013567ffffffffffffffff81111561495157614950614475565b5b61495d868287016148c4565b93509350506020614970868287016146be565b9150509250925092565b6000806040838503121561499157614990614470565b5b600061499f858286016146be565b92505060206149b085828601614491565b9150509250929050565b600080604083850312156149d1576149d0614470565b5b60006149df8582860161461c565b92505060206149f08582860161461c565b9150509250929050565b6000819050919050565b6000614a1f614a1a614a15846145d3565b6149fa565b6145d3565b9050919050565b6000614a3182614a04565b9050919050565b6000614a4382614a26565b9050919050565b614a5381614a38565b82525050565b6000602082019050614a6e6000830184614a4a565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614aaa60208361452c565b9150614ab582614a74565b602082019050919050565b60006020820190508181036000830152614ad981614a9d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614b1a8261443c565b9150614b258361443c565b9250828201905080821115614b3d57614b3c614ae0565b5b92915050565b7f43616e206e6f206c6f6e6765722070617573652074726164696e670000000000600082015250565b6000614b79601b8361452c565b9150614b8482614b43565b602082019050919050565b60006020820190508181036000830152614ba881614b6c565b9050919050565b6000614bba8261443c565b9150614bc58361443c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bfe57614bfd614ae0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614c438261443c565b9150614c4e8361443c565b925082614c5e57614c5d614c09565b5b828204905092915050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b6000614c9f601c8361452c565b9150614caa82614c69565b602082019050919050565b60006020820190508181036000830152614cce81614c92565b9050919050565b6000604082019050614cea600083018561488b565b614cf76020830184614446565b9392505050565b600081519050614d0d816146a7565b92915050565b600060208284031215614d2957614d28614470565b5b6000614d3784828501614cfe565b91505092915050565b7f57616c6c6574204c696d6974206e6565647320746f206265206174206c65617360008201527f7420302e35250000000000000000000000000000000000000000000000000000602082015250565b6000614d9c60268361452c565b9150614da782614d40565b604082019050919050565b60006020820190508181036000830152614dcb81614d8f565b9050919050565b7f43616e206e6f206c6f6e6765722061646420626c61636b6c6973747300000000600082015250565b6000614e08601c8361452c565b9150614e1382614dd2565b602082019050919050565b60006020820190508181036000830152614e3781614dfb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614e788261443c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614eaa57614ea9614ae0565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614f1160268361452c565b9150614f1c82614eb5565b604082019050919050565b60006020820190508181036000830152614f4081614f04565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614f7d601b8361452c565b9150614f8882614f47565b602082019050919050565b60006020820190508181036000830152614fac81614f70565b9050919050565b6000614fbe8261443c565b9150614fc98361443c565b9250828203905081811115614fe157614fe0614ae0565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061501d60148361452c565b915061502882614fe7565b602082019050919050565b6000602082019050818103600083015261504c81615010565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061508960118361452c565b915061509482615053565b602082019050919050565b600060208201905081810360008301526150b88161507c565b9050919050565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b60006150f560168361452c565b9150615100826150bf565b602082019050919050565b60006020820190508181036000830152615124816150e8565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615161600b8361452c565b915061516c8261512b565b602082019050919050565b6000602082019050818103600083015261519081615154565b9050919050565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b60006151cd60148361452c565b91506151d882615197565b602082019050919050565b600060208201905081810360008301526151fc816151c0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061524181614605565b92915050565b60006020828403121561525d5761525c614470565b5b600061526b84828501615232565b91505092915050565b6000819050919050565b600061529961529461528f84615274565b6149fa565b61443c565b9050919050565b6152a98161527e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6152e4816145f3565b82525050565b60006152f683836152db565b60208301905092915050565b6000602082019050919050565b600061531a826152af565b61532481856152ba565b935061532f836152cb565b8060005b8381101561536057815161534788826152ea565b975061535283615302565b925050600181019050615333565b5085935050505092915050565b600060a0820190506153826000830188614446565b61538f60208301876152a0565b81810360408301526153a1818661530f565b90506153b0606083018561488b565b6153bd6080830184614446565b9695505050505050565b600081905092915050565b50565b60006153e26000836153c7565b91506153ed826153d2565b600082019050919050565b6000615403826153d5565b9150819050919050565b600060c082019050615422600083018961488b565b61542f6020830188614446565b61543c60408301876152a0565b61544960608301866152a0565b615456608083018561488b565b61546360a0830184614446565b979650505050505050565b60008151905061547d8161447a565b92915050565b60008060006060848603121561549c5761549b614470565b5b60006154aa8682870161546e565b93505060206154bb8682870161546e565b92505060406154cc8682870161546e565b9150509250925092565b60006040820190506154eb6000830185614446565b6154f86020830184614446565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061555b60218361452c565b9150615566826154ff565b604082019050919050565b6000602082019050818103600083015261558a8161554e565b905091905056fea264697066735822122031849211d33841e176f613ae1428bb591bfc7e45f61b6b16a139b1d75165940464736f6c63430008100033
Deployed Bytecode Sourcemap
4914:14288:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6884:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16530:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8469:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9325:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15822:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8731:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18990:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6056:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10532:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18029:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9161:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8645:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18727:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18407:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5765:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5595:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6783:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9549:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15618:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17035:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17733:87;;;;;;;;;;;;;:::i;:::-;;16079:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6171:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8911:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4507:148;;;;;;;;;;;;;:::i;:::-;;17494:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5109:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17828:95;;;;;;;;;;;;;:::i;:::-;;18129:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5170:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17617:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8825:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6613:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6019:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5815:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4291:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17209:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16341:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8555:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6208:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6468:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10030:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18237:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6543:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15994:77;;;;;;;;;;;;;:::i;:::-;;6090:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6830:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9022:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6494:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6135:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15412:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4663:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16206:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6438:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6652:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17931:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6693:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6884:54;;;;:::o;16530:497::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16700:9:::1;16685:12;:24;;;;16735:15;16720:12;:30;;;;16770:9;16761:6;:18;;;;16802:12;16790:9;:24;;;;16838:73;16901:9;;16838:58;16889:6;;16838:46;16873:10;;16838:30;16855:12;;16838;;:16;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;:50;;:58;;;;:::i;:::-;:62;;:73;;;;:::i;:::-;16827:8;:84;;;;16953:12;16942:8;;:23;;;;:::i;:::-;16922:17;:43;;;;17016:2;17005:8;;16985:17;;:28;;;;:::i;:::-;:33;16976:43;;;::::0;::::1;;16530:497:::0;;;;;:::o;8469:78::-;8517:13;8540:5;;;;;;;;;;;;;;;;;8533:12;;8469:78;:::o;9325:216::-;9400:4;9452:6;9417:11;:23;9429:10;9417:23;;;;;;;;;;;;;;;:32;9441:7;9417:32;;;;;;;;;;;;;;;:41;;;;9495:7;9474:37;;9483:10;9474:37;;;9504:6;9474:37;;;;;;:::i;:::-;;;;;;;;9529:4;9522:11;;9325:216;;;;:::o;15822:164::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15897:15:::1;;;;;;;;;;;15889:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;15969:9;15955:11;;:23;;;;;;;;;;;;;;;;;;15822:164:::0;:::o;8731:86::-;8786:7;8803:12;;8796:19;;8731:86;:::o;18990:207::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19073:17:::1;19093:21;19073:41;;19133:10;19125:28;;:64;19185:3;19166:16;19154:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;19125:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19062:135;18990:207:::0;:::o;6056:27::-;;;;:::o;10532:370::-;10632:4;10688:17;10653:11;:19;10665:6;10653:19;;;;;;;;;;;;;;;:31;10673:10;10653:31;;;;;;;;;;;;;;;;:52;10649:188;;10756:69;10792:6;10756:69;;;;;;;;;;;;;;;;;:11;:19;10768:6;10756:19;;;;;;;;;;;;;;;:31;10776:10;10756:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10722:11;:19;10734:6;10722:19;;;;;;;;;;;;;;;:31;10742:10;10722:31;;;;;;;;;;;;;;;:103;;;;10649:188;10854:40;10868:6;10876:9;10887:6;10854:13;:40::i;:::-;10847:47;;10532:370;;;;;:::o;18029:92::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18107:6:::1;18093:11;;:20;;;;;;;;;;;;;;;;;;18029:92:::0;:::o;9161:156::-;9214:7;9241:68;9286:22;5358:42;9286:9;:22::i;:::-;9241:40;9258:22;5270:42;9258:9;:22::i;:::-;9241:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;9234:75;;9161:156;:::o;8645:78::-;8697:5;5028:2;8705:16;;8645:78;:::o;18727:255::-;18812:12;4428;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18869:4:::1;18845:29;;:12;:29;;::::0;18837:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18932:12;18925:29;;;18955:10;18967:6;18925:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18918:56;;18727:255:::0;;;;:::o;18407:312::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18573:11:::1;18549:21;;:35;;;;;;;;;;;;;;;;;;18613:12;18595:15;;:30;;;;;;;;;;;;;;;;;;18658:12;18646:9;;:24;;;;;;;;;;;;;;;;;;18696:15;18681:12;;:30;;;;;;;;;;;;;;;;;;18407:312:::0;;;;:::o;5765:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5595:33::-;;;;;;;;;;;;;:::o;6783:40::-;;;;;;;;;;;;;:::o;9549:122::-;9604:4;9628:35;9636:7;9645:17;9628:7;:35::i;:::-;9621:42;;9549:122;;;:::o;15618:196::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15706:1:::1;15694:8;:13;;15686:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15802:4;15791:8;15776:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;15761:12;:45;;;;15618:196:::0;:::o;17035:166::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17111:15:::1;;;;;;;;;;;17103:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;17186:7;17170:13;;:23;;;;;;;;;;;;;;;;;;17035:166:::0;:::o;17733:87::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17807:5:::1;17789:15;;:23;;;;;;;;;;;;;;;;;;17733:87::o:0;16079:119::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16184:6:::1;16162:11;:19;16174:6;16162:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16079:119:::0;;:::o;6171:30::-;;;;;;;;;;;;;:::o;8911:103::-;8977:7;8994:9;:18;9004:7;8994:18;;;;;;;;;;;;;;;;8987:25;;8911:103;;;:::o;4507:148::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4614:1:::1;4577:40;;4598:6;::::0;::::1;;;;;;;;4577:40;;;;;;;;;;;;4645:1;4628:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4507:148::o:0;17494:115::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17595:6:::1;17568:14;:24;17583:8;17568:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17494:115:::0;;:::o;5109:54::-;;;;:::o;17828:95::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17910:5:::1;17894:13;;:21;;;;;;;;;;;;;;;;;;17828:95::o:0;18129:100::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18215:6:::1;18197:15;;:24;;;;;;;;;;;;;;;;;;18129:100:::0;:::o;5170:52::-;;;;:::o;17617:108::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17711:6:::1;17692;:16;17699:8;17692:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;17617:108:::0;;:::o;8825:78::-;8877:7;8894;:5;:7::i;:::-;8887:14;;8825:78;:::o;6613:32::-;;;;;;;;;;;;;:::o;6019:28::-;;;;:::o;5815:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4291:79::-;4329:7;4356:6;;;;;;;;;;;4349:13;;4291:79;:::o;17209:277::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17314:15:::1;;;;;;;;;;;17306:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;17378:9;17373:106;17393:9;;:16;;17389:1;:20;17373:106;;;17461:6;17431:13;:27;17445:9;;17455:1;17445:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17431:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17411:3;;;;:::i;:::-;;;17373:106;;;;17209:277:::0;;;:::o;16341:181::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16432:4:::1;16407:14:::0;:22:::1;16422:6;16407:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16469:4;16447:11;:19;16459:6;16447:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;16510:4;16484:15;:23;16500:6;16484:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;16341:181:::0;:::o;8555:82::-;8605:13;8628:7;;;;;;;;;;;;;;;;;8621:14;;8555:82;:::o;6208:34::-;;;;;;;;;;;;;:::o;6468:19::-;;;;;;;;;;;;;:::o;10030:156::-;10110:4;10134:44;10148:10;10160:9;10171:6;10134:13;:44::i;:::-;10127:51;;10030:156;;;;:::o;18237:162::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18349:6:::1;18325:21;;:30;;;;;;;;;;;;;;;;;;18382:9;18366:13;:25;;;;18237:162:::0;;:::o;6543:25::-;;;;:::o;15994:77::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16059:4:::1;16045:11;;:18;;;;;;;;;;;;;;;;;;15994:77::o:0;6090:36::-;;;;:::o;6830:45::-;;;;;;;;;;;;;:::o;9022:131::-;9106:7;9123:11;:19;9135:6;9123:19;;;;;;;;;;;;;;;:28;9143:7;9123:28;;;;;;;;;;;;;;;;9116:35;;9022:131;;;;:::o;6494:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;6135:29::-;;;;;;;;;;;;;:::o;15412:198::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15504:1:::1;15492:8;:13;;15484:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15598:4;15587:8;15572:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;15559:10;:43;;;;15412:198:::0;:::o;4663:244::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4772:1:::1;4752:22;;:8;:22;;::::0;4744:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4862:8;4833:38;;4854:6;::::0;::::1;;;;;;;;4833:38;;;;;;;;;;;;4891:8;4882:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4663:244:::0;:::o;16206:127::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16319:6:::1;16293:15;:23;16309:6;16293:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16206:127:::0;;:::o;6438:23::-;;;;;;;;;;;;;:::o;6652:34::-;;;;;;;;;;;;;:::o;17931:90::-;4428:12;:10;:12::i;:::-;4418:22;;:6;;;;;;;;;;:22;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18007:6:::1;17994:10;;:19;;;;;;;;;;;;;;;;;;17931:90:::0;:::o;6693:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6575:31::-;;;;;;;;;;;;;:::o;2503:179::-;2561:7;2581:9;2597:1;2593;:5;;;;:::i;:::-;2581:17;;2622:1;2617;:6;;2609:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2673:1;2666:8;;;2503:179;;;;:::o;3631:115::-;3684:15;3727:10;3712:26;;3631:115;:::o;2834:190::-;2920:7;2953:1;2948;:6;;2956:12;2940:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2980:9;2996:1;2992;:5;;;;:::i;:::-;2980:17;;3015:1;3008:8;;;2834:190;;;;;:::o;10910:1417::-;11002:4;11023:16;;;;;;;;;;;11019:73;;;11049:41;11064:6;11072:9;11083:6;11049:14;:41::i;:::-;11042:48;;;;11019:73;11106:14;:22;11121:6;11106:22;;;;;;;;;;;;;;;;;;;;;;;;;11105:23;:53;;;;;11133:14;:25;11148:9;11133:25;;;;;;;;;;;;;;;;;;;;;;;;;11132:26;11105:53;11102:128;;;11182:11;;;;;;;;;;;11174:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11102:128;11260:12;;11250:6;:22;;:49;;;;11276:15;:23;11292:6;11276:23;;;;;;;;;;;;;;;;;;;;;;;;;11250:49;11242:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11336:6;:17;11343:9;11336:17;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;11358:16;;;;;;;;;;;11357:17;11336:38;:63;;;;;11378:21;;;;;;;;;;;11336:63;:108;;;;;11431:13;;11403:9;:24;11421:4;11403:24;;;;;;;;;;;;;;;;:41;;11336:108;11332:140;;;11447:23;:21;:23::i;:::-;11332:140;11487:10;:8;:10::i;:::-;11486:11;:32;;;;;11501:6;:17;11508:9;11501:17;;;;;;;;;;;;;;;;;;;;;;;;;11486:32;11482:144;;;11563:1;11543:9;:17;11553:6;11543:17;;;;;;;;;;;;;;;;:21;11535:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11606:8;:6;:8::i;:::-;11482:144;11668:13;;;;;;;;;;;11664:91;;;11707:13;:21;11721:6;11707:21;;;;;;;;;;;;;;;;;;;;;;;;;11706:22;11698:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11664:91;11815:53;11837:6;11815:53;;;;;;;;;;;;;;;;;:9;:17;11825:6;11815:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11795:9;:17;11805:6;11795:17;;;;;;;;;;;;;;;:73;;;;11886:15;:26;11902:9;11886:26;;;;;;;;;;;;;;;;;;;;;;;;;11885:27;:45;;;;;11916:14;;;;;;;;;;;11885:45;11881:157;;;11991:10;;11955:32;11980:6;11955:9;:20;11965:9;11955:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;11947:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11881:157;12050:19;12073:11;:19;12085:6;12073:19;;;;;;;;;;;;;;;;;;;;;;;;;12072:20;:47;;;;;12097:11;:22;12109:9;12097:22;;;;;;;;;;;;;;;;;;;;;;;;;12096:23;12072:47;:96;;12162:6;12072:96;;;12122:37;12133:6;12141:9;12152:6;12122:10;:37::i;:::-;12072:96;12050:118;;12202:37;12227:11;12202:9;:20;12212:9;12202:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;12179:9;:20;12189:9;12179:20;;;;;;;;;;;;;;;:60;;;;12274:9;12257:40;;12266:6;12257:40;;;12285:11;12257:40;;;;;;:::i;:::-;;;;;;;;12315:4;12308:11;;;10910:1417;;;;;;:::o;2690:136::-;2748:7;2775:43;2779:1;2782;2775:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2768:50;;2690:136;;;;:::o;10194:330::-;10287:4;10324:53;10346:6;10324:53;;;;;;;;;;;;;;;;;:9;:17;10334:6;10324:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10304:9;:17;10314:6;10304:17;;;;;;;;;;;;;;;:73;;;;10411:32;10436:6;10411:9;:20;10421:9;10411:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10388:9;:20;10398:9;10388:20;;;;;;;;;;;;;;;:55;;;;10476:9;10459:35;;10468:6;10459:35;;;10487:6;10459:35;;;;;;:::i;:::-;;;;;;;;10512:4;10505:11;;10194:330;;;;;:::o;13541:1863::-;7062:4;7043:16;;:23;;;;;;;;;;;;;;;;;;13606::::1;13632:9;:24;13650:4;13632:24;;;;;;;;;;;;;;;;13606:50;;13667:23;13693:69;13760:1;13693:62;13731:23;13744:9;;13731:8;;:12;;:23;;;;:::i;:::-;13693:33;13713:12;;13693:15;:19;;:33;;;;:::i;:::-;:37;;:62;;;;:::i;:::-;:66;;:69;;;;:::i;:::-;13667:95;;13773:20;13796:36;13816:15;13796;:19;;:36;;;;:::i;:::-;13773:59;;13845:21;13883:1;13869:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13845:40;;13914:4;13896;13901:1;13896:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13940:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13930:4;13935:1;13930:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13966:6;;;;;;;;;;;:57;;;14038:12;14065:1;14081:4;14108;14128:15;13966:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14167:17;14187:21;14167:41;;14221:19;14243:48;14271:19;14288:1;14271:12;;:16;;:19;;;;:::i;:::-;14243:23;14256:9;;14243:8;;:12;;:23;;;;:::i;:::-;:27;;:48;;;;:::i;:::-;14221:70;;14304:26;14333:51;14382:1;14333:44;14365:11;14333:27;14347:12;;14333:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;14304:80;;14395:26;14424:44;14456:11;14424:27;14438:12;;14424:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;14395:73;;14479:20;14502:38;14528:11;14502:21;14516:6;;14502:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;14479:61;;14551:24;14578:42;14608:11;14578:25;14592:10;;14578:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;14551:69;;14642:16;14671:15;;;;;;;;;;;14663:29;;14701:18;14727:5;14663:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14641:96;;;14762:5;14748:19;;14805:9;;;;;;;;;;;14797:23;;14829:12;14849:5;14797:62;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14780:79;;;;;14884:5;14870:19;;14927:13;;;;;;;;;;;14919:27;;14955:16;14979:5;14919:70;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14902:87;;;;;15014:5;15000:19;;15054:1;15036:15;:19;15032:365;;;15072:6;;;;;;;;;;;:22;;;15103:18;15149:4;15173:15;15207:1;15227::::0;15247:21:::1;;;;;;;;;;;15287:15;15072:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15337:48;15349:18;15369:15;15337:48;;;;;;;:::i;:::-;;;;;;;;15032:365;13595:1809;;;;;;;;;;;7108:5:::0;7089:16;;:24;;;;;;;;;;;;;;;;;;13541:1863::o;9679:90::-;9722:4;9760:1;9746:10;;:15;;9739:22;;9679:90;:::o;9777:71::-;9828:12;9815:10;:25;;;;9777:71::o;12335:1198::-;12424:7;12444:18;12465:1;12444:22;;12477:17;12513:6;:17;12520:9;12513:17;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;12534:11;;;;;;;;;;;12513:32;12509:121;;;12578:32;12600:9;;12578:17;;:21;;:32;;;;:::i;:::-;12562:48;;12509:121;12644:6;:14;12651:6;12644:14;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;12662:10;;;;;;;;;;;12644:28;12640:108;;;12705:23;12718:9;;12705:8;;:12;;:23;;;;:::i;:::-;12689:39;;12640:108;12763:6;:14;12770:6;12763:14;;;;;;;;;;;;;;;;;;;;;;;;;12762:15;:37;;;;;12782:6;:17;12789:9;12782:17;;;;;;;;;;;;;;;;;;;;;;;;;12781:18;12762:37;12758:242;;;12819:15;;;;;;;;;;;12815:174;;;12870:32;12892:9;;12870:17;;:21;;:32;;;;:::i;:::-;12854:48;;12815:174;;;12972:1;12956:17;;12815:174;12758:242;13029:1;13013:13;:17;:33;;;;;13045:1;13034:9;;:12;13013:33;13010:255;;;13077:30;13103:3;13077:21;13088:9;;13077:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;13062:45;;13148:41;13176:12;13148:9;:23;13158:12;;;;;;;;;;;13148:23;;;;;;;;;;;;;;;;:27;;:41;;;;:::i;:::-;13122:9;:23;13132:12;;;;;;;;;;;13122:23;;;;;;;;;;;;;;;:67;;;;13226:12;;;;;;;;;;;13209:44;;13218:6;13209:44;;;13240:12;13209:44;;;;;;:::i;:::-;;;;;;;;13010:255;13275:17;13295:34;13325:3;13295:25;13306:13;13295:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;13275:54;;13369:39;13398:9;13369;:24;13387:4;13369:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13342:9;:24;13360:4;13342:24;;;;;;;;;;;;;;;:66;;;;13449:4;13424:42;;13433:6;13424:42;;;13456:9;13424:42;;;;;;:::i;:::-;;;;;;;;13486:39;13512:12;13486:21;13497:9;13486:6;:10;;:21;;;;:::i;:::-;:25;;:39;;;;:::i;:::-;13479:46;;;;;12335:1198;;;;;:::o;3032:222::-;3090:7;3119:1;3114;:6;3110:23;;3130:1;3123:8;;;;3110:23;3143:9;3159:1;3155;:5;;;;:::i;:::-;3143:17;;3188:1;3183;3179;:5;;;;:::i;:::-;:10;3171:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3245:1;3238:8;;;3032:222;;;;;:::o;3262:132::-;3320:7;3347:39;3351:1;3354;3347:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3340:46;;3262:132;;;;:::o;3402:189::-;3488:7;3520:1;3516;:5;3523:12;3508:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3547:9;3563:1;3559;:5;;;;:::i;:::-;3547:17;;3582:1;3575:8;;;3402:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:911::-;1137:6;1145;1153;1161;1169;1218:3;1206:9;1197:7;1193:23;1189:33;1186:120;;;1225:79;;:::i;:::-;1186:120;1345:1;1370:53;1415:7;1406:6;1395:9;1391:22;1370:53;:::i;:::-;1360:63;;1316:117;1472:2;1498:53;1543:7;1534:6;1523:9;1519:22;1498:53;:::i;:::-;1488:63;;1443:118;1600:2;1626:53;1671:7;1662:6;1651:9;1647:22;1626:53;:::i;:::-;1616:63;;1571:118;1728:2;1754:53;1799:7;1790:6;1779:9;1775:22;1754:53;:::i;:::-;1744:63;;1699:118;1856:3;1883:53;1928:7;1919:6;1908:9;1904:22;1883:53;:::i;:::-;1873:63;;1827:119;1042:911;;;;;;;;:::o;1959:99::-;2011:6;2045:5;2039:12;2029:22;;1959:99;;;:::o;2064:169::-;2148:11;2182:6;2177:3;2170:19;2222:4;2217:3;2213:14;2198:29;;2064:169;;;;:::o;2239:246::-;2320:1;2330:113;2344:6;2341:1;2338:13;2330:113;;;2429:1;2424:3;2420:11;2414:18;2410:1;2405:3;2401:11;2394:39;2366:2;2363:1;2359:10;2354:15;;2330:113;;;2477:1;2468:6;2463:3;2459:16;2452:27;2301:184;2239:246;;;:::o;2491:102::-;2532:6;2583:2;2579:7;2574:2;2567:5;2563:14;2559:28;2549:38;;2491:102;;;:::o;2599:377::-;2687:3;2715:39;2748:5;2715:39;:::i;:::-;2770:71;2834:6;2829:3;2770:71;:::i;:::-;2763:78;;2850:65;2908:6;2903:3;2896:4;2889:5;2885:16;2850:65;:::i;:::-;2940:29;2962:6;2940:29;:::i;:::-;2935:3;2931:39;2924:46;;2691:285;2599:377;;;;:::o;2982:313::-;3095:4;3133:2;3122:9;3118:18;3110:26;;3182:9;3176:4;3172:20;3168:1;3157:9;3153:17;3146:47;3210:78;3283:4;3274:6;3210:78;:::i;:::-;3202:86;;2982:313;;;;:::o;3301:126::-;3338:7;3378:42;3371:5;3367:54;3356:65;;3301:126;;;:::o;3433:96::-;3470:7;3499:24;3517:5;3499:24;:::i;:::-;3488:35;;3433:96;;;:::o;3535:122::-;3608:24;3626:5;3608:24;:::i;:::-;3601:5;3598:35;3588:63;;3647:1;3644;3637:12;3588:63;3535:122;:::o;3663:139::-;3709:5;3747:6;3734:20;3725:29;;3763:33;3790:5;3763:33;:::i;:::-;3663:139;;;;:::o;3808:474::-;3876:6;3884;3933:2;3921:9;3912:7;3908:23;3904:32;3901:119;;;3939:79;;:::i;:::-;3901:119;4059:1;4084:53;4129:7;4120:6;4109:9;4105:22;4084:53;:::i;:::-;4074:63;;4030:117;4186:2;4212:53;4257:7;4248:6;4237:9;4233:22;4212:53;:::i;:::-;4202:63;;4157:118;3808:474;;;;;:::o;4288:90::-;4322:7;4365:5;4358:13;4351:21;4340:32;;4288:90;;;:::o;4384:109::-;4465:21;4480:5;4465:21;:::i;:::-;4460:3;4453:34;4384:109;;:::o;4499:210::-;4586:4;4624:2;4613:9;4609:18;4601:26;;4637:65;4699:1;4688:9;4684:17;4675:6;4637:65;:::i;:::-;4499:210;;;;:::o;4715:116::-;4785:21;4800:5;4785:21;:::i;:::-;4778:5;4775:32;4765:60;;4821:1;4818;4811:12;4765:60;4715:116;:::o;4837:133::-;4880:5;4918:6;4905:20;4896:29;;4934:30;4958:5;4934:30;:::i;:::-;4837:133;;;;:::o;4976:323::-;5032:6;5081:2;5069:9;5060:7;5056:23;5052:32;5049:119;;;5087:79;;:::i;:::-;5049:119;5207:1;5232:50;5274:7;5265:6;5254:9;5250:22;5232:50;:::i;:::-;5222:60;;5178:114;4976:323;;;;:::o;5305:329::-;5364:6;5413:2;5401:9;5392:7;5388:23;5384:32;5381:119;;;5419:79;;:::i;:::-;5381:119;5539:1;5564:53;5609:7;5600:6;5589:9;5585:22;5564:53;:::i;:::-;5554:63;;5510:117;5305:329;;;;:::o;5640:619::-;5717:6;5725;5733;5782:2;5770:9;5761:7;5757:23;5753:32;5750:119;;;5788:79;;:::i;:::-;5750:119;5908:1;5933:53;5978:7;5969:6;5958:9;5954:22;5933:53;:::i;:::-;5923:63;;5879:117;6035:2;6061:53;6106:7;6097:6;6086:9;6082:22;6061:53;:::i;:::-;6051:63;;6006:118;6163:2;6189:53;6234:7;6225:6;6214:9;6210:22;6189:53;:::i;:::-;6179:63;;6134:118;5640:619;;;;;:::o;6265:86::-;6300:7;6340:4;6333:5;6329:16;6318:27;;6265:86;;;:::o;6357:112::-;6440:22;6456:5;6440:22;:::i;:::-;6435:3;6428:35;6357:112;;:::o;6475:214::-;6564:4;6602:2;6591:9;6587:18;6579:26;;6615:67;6679:1;6668:9;6664:17;6655:6;6615:67;:::i;:::-;6475:214;;;;:::o;6695:765::-;6781:6;6789;6797;6805;6854:3;6842:9;6833:7;6829:23;6825:33;6822:120;;;6861:79;;:::i;:::-;6822:120;6981:1;7006:53;7051:7;7042:6;7031:9;7027:22;7006:53;:::i;:::-;6996:63;;6952:117;7108:2;7134:53;7179:7;7170:6;7159:9;7155:22;7134:53;:::i;:::-;7124:63;;7079:118;7236:2;7262:53;7307:7;7298:6;7287:9;7283:22;7262:53;:::i;:::-;7252:63;;7207:118;7364:2;7390:53;7435:7;7426:6;7415:9;7411:22;7390:53;:::i;:::-;7380:63;;7335:118;6695:765;;;;;;;:::o;7466:329::-;7525:6;7574:2;7562:9;7553:7;7549:23;7545:32;7542:119;;;7580:79;;:::i;:::-;7542:119;7700:1;7725:53;7770:7;7761:6;7750:9;7746:22;7725:53;:::i;:::-;7715:63;;7671:117;7466:329;;;;:::o;7801:468::-;7866:6;7874;7923:2;7911:9;7902:7;7898:23;7894:32;7891:119;;;7929:79;;:::i;:::-;7891:119;8049:1;8074:53;8119:7;8110:6;8099:9;8095:22;8074:53;:::i;:::-;8064:63;;8020:117;8176:2;8202:50;8244:7;8235:6;8224:9;8220:22;8202:50;:::i;:::-;8192:60;;8147:115;7801:468;;;;;:::o;8275:118::-;8362:24;8380:5;8362:24;:::i;:::-;8357:3;8350:37;8275:118;;:::o;8399:222::-;8492:4;8530:2;8519:9;8515:18;8507:26;;8543:71;8611:1;8600:9;8596:17;8587:6;8543:71;:::i;:::-;8399:222;;;;:::o;8627:117::-;8736:1;8733;8726:12;8750:117;8859:1;8856;8849:12;8873:117;8982:1;8979;8972:12;9013:568;9086:8;9096:6;9146:3;9139:4;9131:6;9127:17;9123:27;9113:122;;9154:79;;:::i;:::-;9113:122;9267:6;9254:20;9244:30;;9297:18;9289:6;9286:30;9283:117;;;9319:79;;:::i;:::-;9283:117;9433:4;9425:6;9421:17;9409:29;;9487:3;9479:4;9471:6;9467:17;9457:8;9453:32;9450:41;9447:128;;;9494:79;;:::i;:::-;9447:128;9013:568;;;;;:::o;9587:698::-;9679:6;9687;9695;9744:2;9732:9;9723:7;9719:23;9715:32;9712:119;;;9750:79;;:::i;:::-;9712:119;9898:1;9887:9;9883:17;9870:31;9928:18;9920:6;9917:30;9914:117;;;9950:79;;:::i;:::-;9914:117;10063:80;10135:7;10126:6;10115:9;10111:22;10063:80;:::i;:::-;10045:98;;;;9841:312;10192:2;10218:50;10260:7;10251:6;10240:9;10236:22;10218:50;:::i;:::-;10208:60;;10163:115;9587:698;;;;;:::o;10291:468::-;10356:6;10364;10413:2;10401:9;10392:7;10388:23;10384:32;10381:119;;;10419:79;;:::i;:::-;10381:119;10539:1;10564:50;10606:7;10597:6;10586:9;10582:22;10564:50;:::i;:::-;10554:60;;10510:114;10663:2;10689:53;10734:7;10725:6;10714:9;10710:22;10689:53;:::i;:::-;10679:63;;10634:118;10291:468;;;;;:::o;10765:474::-;10833:6;10841;10890:2;10878:9;10869:7;10865:23;10861:32;10858:119;;;10896:79;;:::i;:::-;10858:119;11016:1;11041:53;11086:7;11077:6;11066:9;11062:22;11041:53;:::i;:::-;11031:63;;10987:117;11143:2;11169:53;11214:7;11205:6;11194:9;11190:22;11169:53;:::i;:::-;11159:63;;11114:118;10765:474;;;;;:::o;11245:60::-;11273:3;11294:5;11287:12;;11245:60;;;:::o;11311:142::-;11361:9;11394:53;11412:34;11421:24;11439:5;11421:24;:::i;:::-;11412:34;:::i;:::-;11394:53;:::i;:::-;11381:66;;11311:142;;;:::o;11459:126::-;11509:9;11542:37;11573:5;11542:37;:::i;:::-;11529:50;;11459:126;;;:::o;11591:143::-;11658:9;11691:37;11722:5;11691:37;:::i;:::-;11678:50;;11591:143;;;:::o;11740:165::-;11844:54;11892:5;11844:54;:::i;:::-;11839:3;11832:67;11740:165;;:::o;11911:256::-;12021:4;12059:2;12048:9;12044:18;12036:26;;12072:88;12157:1;12146:9;12142:17;12133:6;12072:88;:::i;:::-;11911:256;;;;:::o;12173:182::-;12313:34;12309:1;12301:6;12297:14;12290:58;12173:182;:::o;12361:366::-;12503:3;12524:67;12588:2;12583:3;12524:67;:::i;:::-;12517:74;;12600:93;12689:3;12600:93;:::i;:::-;12718:2;12713:3;12709:12;12702:19;;12361:366;;;:::o;12733:419::-;12899:4;12937:2;12926:9;12922:18;12914:26;;12986:9;12980:4;12976:20;12972:1;12961:9;12957:17;12950:47;13014:131;13140:4;13014:131;:::i;:::-;13006:139;;12733:419;;;:::o;13158:180::-;13206:77;13203:1;13196:88;13303:4;13300:1;13293:15;13327:4;13324:1;13317:15;13344:191;13384:3;13403:20;13421:1;13403:20;:::i;:::-;13398:25;;13437:20;13455:1;13437:20;:::i;:::-;13432:25;;13480:1;13477;13473:9;13466:16;;13501:3;13498:1;13495:10;13492:36;;;13508:18;;:::i;:::-;13492:36;13344:191;;;;:::o;13541:177::-;13681:29;13677:1;13669:6;13665:14;13658:53;13541:177;:::o;13724:366::-;13866:3;13887:67;13951:2;13946:3;13887:67;:::i;:::-;13880:74;;13963:93;14052:3;13963:93;:::i;:::-;14081:2;14076:3;14072:12;14065:19;;13724:366;;;:::o;14096:419::-;14262:4;14300:2;14289:9;14285:18;14277:26;;14349:9;14343:4;14339:20;14335:1;14324:9;14320:17;14313:47;14377:131;14503:4;14377:131;:::i;:::-;14369:139;;14096:419;;;:::o;14521:348::-;14561:7;14584:20;14602:1;14584:20;:::i;:::-;14579:25;;14618:20;14636:1;14618:20;:::i;:::-;14613:25;;14806:1;14738:66;14734:74;14731:1;14728:81;14723:1;14716:9;14709:17;14705:105;14702:131;;;14813:18;;:::i;:::-;14702:131;14861:1;14858;14854:9;14843:20;;14521:348;;;;:::o;14875:180::-;14923:77;14920:1;14913:88;15020:4;15017:1;15010:15;15044:4;15041:1;15034:15;15061:185;15101:1;15118:20;15136:1;15118:20;:::i;:::-;15113:25;;15152:20;15170:1;15152:20;:::i;:::-;15147:25;;15191:1;15181:35;;15196:18;;:::i;:::-;15181:35;15238:1;15235;15231:9;15226:14;;15061:185;;;;:::o;15252:178::-;15392:30;15388:1;15380:6;15376:14;15369:54;15252:178;:::o;15436:366::-;15578:3;15599:67;15663:2;15658:3;15599:67;:::i;:::-;15592:74;;15675:93;15764:3;15675:93;:::i;:::-;15793:2;15788:3;15784:12;15777:19;;15436:366;;;:::o;15808:419::-;15974:4;16012:2;16001:9;15997:18;15989:26;;16061:9;16055:4;16051:20;16047:1;16036:9;16032:17;16025:47;16089:131;16215:4;16089:131;:::i;:::-;16081:139;;15808:419;;;:::o;16233:332::-;16354:4;16392:2;16381:9;16377:18;16369:26;;16405:71;16473:1;16462:9;16458:17;16449:6;16405:71;:::i;:::-;16486:72;16554:2;16543:9;16539:18;16530:6;16486:72;:::i;:::-;16233:332;;;;;:::o;16571:137::-;16625:5;16656:6;16650:13;16641:22;;16672:30;16696:5;16672:30;:::i;:::-;16571:137;;;;:::o;16714:345::-;16781:6;16830:2;16818:9;16809:7;16805:23;16801:32;16798:119;;;16836:79;;:::i;:::-;16798:119;16956:1;16981:61;17034:7;17025:6;17014:9;17010:22;16981:61;:::i;:::-;16971:71;;16927:125;16714:345;;;;:::o;17065:225::-;17205:34;17201:1;17193:6;17189:14;17182:58;17274:8;17269:2;17261:6;17257:15;17250:33;17065:225;:::o;17296:366::-;17438:3;17459:67;17523:2;17518:3;17459:67;:::i;:::-;17452:74;;17535:93;17624:3;17535:93;:::i;:::-;17653:2;17648:3;17644:12;17637:19;;17296:366;;;:::o;17668:419::-;17834:4;17872:2;17861:9;17857:18;17849:26;;17921:9;17915:4;17911:20;17907:1;17896:9;17892:17;17885:47;17949:131;18075:4;17949:131;:::i;:::-;17941:139;;17668:419;;;:::o;18093:178::-;18233:30;18229:1;18221:6;18217:14;18210:54;18093:178;:::o;18277:366::-;18419:3;18440:67;18504:2;18499:3;18440:67;:::i;:::-;18433:74;;18516:93;18605:3;18516:93;:::i;:::-;18634:2;18629:3;18625:12;18618:19;;18277:366;;;:::o;18649:419::-;18815:4;18853:2;18842:9;18838:18;18830:26;;18902:9;18896:4;18892:20;18888:1;18877:9;18873:17;18866:47;18930:131;19056:4;18930:131;:::i;:::-;18922:139;;18649:419;;;:::o;19074:180::-;19122:77;19119:1;19112:88;19219:4;19216:1;19209:15;19243:4;19240:1;19233:15;19260:233;19299:3;19322:24;19340:5;19322:24;:::i;:::-;19313:33;;19368:66;19361:5;19358:77;19355:103;;19438:18;;:::i;:::-;19355:103;19485:1;19478:5;19474:13;19467:20;;19260:233;;;:::o;19499:225::-;19639:34;19635:1;19627:6;19623:14;19616:58;19708:8;19703:2;19695:6;19691:15;19684:33;19499:225;:::o;19730:366::-;19872:3;19893:67;19957:2;19952:3;19893:67;:::i;:::-;19886:74;;19969:93;20058:3;19969:93;:::i;:::-;20087:2;20082:3;20078:12;20071:19;;19730:366;;;:::o;20102:419::-;20268:4;20306:2;20295:9;20291:18;20283:26;;20355:9;20349:4;20345:20;20341:1;20330:9;20326:17;20319:47;20383:131;20509:4;20383:131;:::i;:::-;20375:139;;20102:419;;;:::o;20527:177::-;20667:29;20663:1;20655:6;20651:14;20644:53;20527:177;:::o;20710:366::-;20852:3;20873:67;20937:2;20932:3;20873:67;:::i;:::-;20866:74;;20949:93;21038:3;20949:93;:::i;:::-;21067:2;21062:3;21058:12;21051:19;;20710:366;;;:::o;21082:419::-;21248:4;21286:2;21275:9;21271:18;21263:26;;21335:9;21329:4;21325:20;21321:1;21310:9;21306:17;21299:47;21363:131;21489:4;21363:131;:::i;:::-;21355:139;;21082:419;;;:::o;21507:194::-;21547:4;21567:20;21585:1;21567:20;:::i;:::-;21562:25;;21601:20;21619:1;21601:20;:::i;:::-;21596:25;;21645:1;21642;21638:9;21630:17;;21669:1;21663:4;21660:11;21657:37;;;21674:18;;:::i;:::-;21657:37;21507:194;;;;:::o;21707:170::-;21847:22;21843:1;21835:6;21831:14;21824:46;21707:170;:::o;21883:366::-;22025:3;22046:67;22110:2;22105:3;22046:67;:::i;:::-;22039:74;;22122:93;22211:3;22122:93;:::i;:::-;22240:2;22235:3;22231:12;22224:19;;21883:366;;;:::o;22255:419::-;22421:4;22459:2;22448:9;22444:18;22436:26;;22508:9;22502:4;22498:20;22494:1;22483:9;22479:17;22472:47;22536:131;22662:4;22536:131;:::i;:::-;22528:139;;22255:419;;;:::o;22680:167::-;22820:19;22816:1;22808:6;22804:14;22797:43;22680:167;:::o;22853:366::-;22995:3;23016:67;23080:2;23075:3;23016:67;:::i;:::-;23009:74;;23092:93;23181:3;23092:93;:::i;:::-;23210:2;23205:3;23201:12;23194:19;;22853:366;;;:::o;23225:419::-;23391:4;23429:2;23418:9;23414:18;23406:26;;23478:9;23472:4;23468:20;23464:1;23453:9;23449:17;23442:47;23506:131;23632:4;23506:131;:::i;:::-;23498:139;;23225:419;;;:::o;23650:172::-;23790:24;23786:1;23778:6;23774:14;23767:48;23650:172;:::o;23828:366::-;23970:3;23991:67;24055:2;24050:3;23991:67;:::i;:::-;23984:74;;24067:93;24156:3;24067:93;:::i;:::-;24185:2;24180:3;24176:12;24169:19;;23828:366;;;:::o;24200:419::-;24366:4;24404:2;24393:9;24389:18;24381:26;;24453:9;24447:4;24443:20;24439:1;24428:9;24424:17;24417:47;24481:131;24607:4;24481:131;:::i;:::-;24473:139;;24200:419;;;:::o;24625:161::-;24765:13;24761:1;24753:6;24749:14;24742:37;24625:161;:::o;24792:366::-;24934:3;24955:67;25019:2;25014:3;24955:67;:::i;:::-;24948:74;;25031:93;25120:3;25031:93;:::i;:::-;25149:2;25144:3;25140:12;25133:19;;24792:366;;;:::o;25164:419::-;25330:4;25368:2;25357:9;25353:18;25345:26;;25417:9;25411:4;25407:20;25403:1;25392:9;25388:17;25381:47;25445:131;25571:4;25445:131;:::i;:::-;25437:139;;25164:419;;;:::o;25589:170::-;25729:22;25725:1;25717:6;25713:14;25706:46;25589:170;:::o;25765:366::-;25907:3;25928:67;25992:2;25987:3;25928:67;:::i;:::-;25921:74;;26004:93;26093:3;26004:93;:::i;:::-;26122:2;26117:3;26113:12;26106:19;;25765:366;;;:::o;26137:419::-;26303:4;26341:2;26330:9;26326:18;26318:26;;26390:9;26384:4;26380:20;26376:1;26365:9;26361:17;26354:47;26418:131;26544:4;26418:131;:::i;:::-;26410:139;;26137:419;;;:::o;26562:180::-;26610:77;26607:1;26600:88;26707:4;26704:1;26697:15;26731:4;26728:1;26721:15;26748:143;26805:5;26836:6;26830:13;26821:22;;26852:33;26879:5;26852:33;:::i;:::-;26748:143;;;;:::o;26897:351::-;26967:6;27016:2;27004:9;26995:7;26991:23;26987:32;26984:119;;;27022:79;;:::i;:::-;26984:119;27142:1;27167:64;27223:7;27214:6;27203:9;27199:22;27167:64;:::i;:::-;27157:74;;27113:128;26897:351;;;;:::o;27254:85::-;27299:7;27328:5;27317:16;;27254:85;;;:::o;27345:158::-;27403:9;27436:61;27454:42;27463:32;27489:5;27463:32;:::i;:::-;27454:42;:::i;:::-;27436:61;:::i;:::-;27423:74;;27345:158;;;:::o;27509:147::-;27604:45;27643:5;27604:45;:::i;:::-;27599:3;27592:58;27509:147;;:::o;27662:114::-;27729:6;27763:5;27757:12;27747:22;;27662:114;;;:::o;27782:184::-;27881:11;27915:6;27910:3;27903:19;27955:4;27950:3;27946:14;27931:29;;27782:184;;;;:::o;27972:132::-;28039:4;28062:3;28054:11;;28092:4;28087:3;28083:14;28075:22;;27972:132;;;:::o;28110:108::-;28187:24;28205:5;28187:24;:::i;:::-;28182:3;28175:37;28110:108;;:::o;28224:179::-;28293:10;28314:46;28356:3;28348:6;28314:46;:::i;:::-;28392:4;28387:3;28383:14;28369:28;;28224:179;;;;:::o;28409:113::-;28479:4;28511;28506:3;28502:14;28494:22;;28409:113;;;:::o;28558:732::-;28677:3;28706:54;28754:5;28706:54;:::i;:::-;28776:86;28855:6;28850:3;28776:86;:::i;:::-;28769:93;;28886:56;28936:5;28886:56;:::i;:::-;28965:7;28996:1;28981:284;29006:6;29003:1;29000:13;28981:284;;;29082:6;29076:13;29109:63;29168:3;29153:13;29109:63;:::i;:::-;29102:70;;29195:60;29248:6;29195:60;:::i;:::-;29185:70;;29041:224;29028:1;29025;29021:9;29016:14;;28981:284;;;28985:14;29281:3;29274:10;;28682:608;;;28558:732;;;;:::o;29296:831::-;29559:4;29597:3;29586:9;29582:19;29574:27;;29611:71;29679:1;29668:9;29664:17;29655:6;29611:71;:::i;:::-;29692:80;29768:2;29757:9;29753:18;29744:6;29692:80;:::i;:::-;29819:9;29813:4;29809:20;29804:2;29793:9;29789:18;29782:48;29847:108;29950:4;29941:6;29847:108;:::i;:::-;29839:116;;29965:72;30033:2;30022:9;30018:18;30009:6;29965:72;:::i;:::-;30047:73;30115:3;30104:9;30100:19;30091:6;30047:73;:::i;:::-;29296:831;;;;;;;;:::o;30133:147::-;30234:11;30271:3;30256:18;;30133:147;;;;:::o;30286:114::-;;:::o;30406:398::-;30565:3;30586:83;30667:1;30662:3;30586:83;:::i;:::-;30579:90;;30678:93;30767:3;30678:93;:::i;:::-;30796:1;30791:3;30787:11;30780:18;;30406:398;;;:::o;30810:379::-;30994:3;31016:147;31159:3;31016:147;:::i;:::-;31009:154;;31180:3;31173:10;;30810:379;;;:::o;31195:807::-;31444:4;31482:3;31471:9;31467:19;31459:27;;31496:71;31564:1;31553:9;31549:17;31540:6;31496:71;:::i;:::-;31577:72;31645:2;31634:9;31630:18;31621:6;31577:72;:::i;:::-;31659:80;31735:2;31724:9;31720:18;31711:6;31659:80;:::i;:::-;31749;31825:2;31814:9;31810:18;31801:6;31749:80;:::i;:::-;31839:73;31907:3;31896:9;31892:19;31883:6;31839:73;:::i;:::-;31922;31990:3;31979:9;31975:19;31966:6;31922:73;:::i;:::-;31195:807;;;;;;;;;:::o;32008:143::-;32065:5;32096:6;32090:13;32081:22;;32112:33;32139:5;32112:33;:::i;:::-;32008:143;;;;:::o;32157:663::-;32245:6;32253;32261;32310:2;32298:9;32289:7;32285:23;32281:32;32278:119;;;32316:79;;:::i;:::-;32278:119;32436:1;32461:64;32517:7;32508:6;32497:9;32493:22;32461:64;:::i;:::-;32451:74;;32407:128;32574:2;32600:64;32656:7;32647:6;32636:9;32632:22;32600:64;:::i;:::-;32590:74;;32545:129;32713:2;32739:64;32795:7;32786:6;32775:9;32771:22;32739:64;:::i;:::-;32729:74;;32684:129;32157:663;;;;;:::o;32826:332::-;32947:4;32985:2;32974:9;32970:18;32962:26;;32998:71;33066:1;33055:9;33051:17;33042:6;32998:71;:::i;:::-;33079:72;33147:2;33136:9;33132:18;33123:6;33079:72;:::i;:::-;32826:332;;;;;:::o;33164:220::-;33304:34;33300:1;33292:6;33288:14;33281:58;33373:3;33368:2;33360:6;33356:15;33349:28;33164:220;:::o;33390:366::-;33532:3;33553:67;33617:2;33612:3;33553:67;:::i;:::-;33546:74;;33629:93;33718:3;33629:93;:::i;:::-;33747:2;33742:3;33738:12;33731:19;;33390:366;;;:::o;33762:419::-;33928:4;33966:2;33955:9;33951:18;33943:26;;34015:9;34009:4;34005:20;34001:1;33990:9;33986:17;33979:47;34043:131;34169:4;34043:131;:::i;:::-;34035:139;;33762:419;;;:::o
Swarm Source
ipfs://31849211d33841e176f613ae1428bb591bfc7e45f61b6b16a139b1d751659404
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)