BEP-20
Source Code
Overview
Max Total Supply
210,000,000Party
Holders
13,382
Market
Price
$0.00 @ 0.000000 BNB
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
252.471449231413242514 PartyValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
PartyToken
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/**
*Submitted for verification at BscScan.com on 2025-07-26
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_transferOwnership(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
_transferOwnership(newOwner);
}
function getTime() public view returns (uint256) {
return block.timestamp;
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint256);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(
address recipient,
uint256 amount
) external returns (bool);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
library Math {
function min(uint x, uint y) internal pure returns (uint z) {
z = x < y ? x : y;
}
function sqrt(uint y) internal pure returns (uint z) {
if (y > 3) {
z = y;
uint x = y / 2 + 1;
while (x < z) {
z = x;
x = (y / x + x) / 2;
}
} else if (y != 0) {
z = 1;
}
}
}
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;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
contract ERC20 is Context, IERC20 {
using SafeMath for uint256;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
uint256 private _decimals;
constructor(string memory name_, string memory symbol_, uint256 decimals_) {
_name = name_;
_symbol = symbol_;
_decimals = decimals_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint256) {
return _decimals;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(
address account
) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(
address owner,
address spender
) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(
address spender,
uint256 amount
) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual returns (bool) {
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(
address spender,
uint256 subtractedValue
) public virtual returns (bool) {
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
_balances[account] = _balances[account].sub(
amount,
"ERC20: burn amount exceeds balance"
);
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function getAmountsOut(
uint256 amountIn,
address[] calldata path
) external view returns (uint256[] memory amounts);
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 removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
interface IUniswapV2Factory {
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function feeTo() external view returns (address);
}
interface IUniswapV2Pair {
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function token0() external view returns (address);
function token1() external view returns (address);
function kLast() external view returns (uint);
function getReserves()
external
view
returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function sync() external;
event Sync(uint112 reserve0, uint112 reserve1);
}
interface ICenterContract {
function bind(address _user, address _agent) external returns (bool);
function buyToken(address _user) external payable;
function updateTokenAverage(uint256 _tokenAmount) external;
function goPool(uint256 _amt) external ;
function takeVcake(address _user) external returns (uint256 amt);
function takeToken(address _user) external returns (uint256 amt);
}
contract PartyToken is ERC20, Ownable {
using SafeMath for uint256;
uint256 bindAmt = 0.01 ether;
uint256 public LPFeeRewardsTimes;
uint256 public processRewardWaitBlock = 10;
uint256 sellBackBurnFee = 70;
uint256 sellRewardFee = 30;
uint256 public lpBurnFrequency = 3600 seconds;
uint256 public lastLpBurnTime = block.timestamp;
uint256 public percentForLPBurn = 18;
uint256 public percentForLPReward = 12;
uint256 public goPoolAmt ;
uint256 public goPoolAtAmt = 1000 * 10 ** 18;
uint256 public goMarketAmt;
uint256 public goMarketAtAmt = 1000 * 10 ** 18;
address public uniswapPair;
address marketAddress = 0x9A363E5deb67d2dcc7aC6ce4f4b8094fC283785d;
address centerContract ;
address vcakeContract;
address public constant usdtContract = 0x55d398326f99059fF775485246999027B3197955;
address public uniswapV2RouterContract = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
address public constant cake = 0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82;
IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(uniswapV2RouterContract);
bool isSwitch = true;
bool swapping;
mapping(address => bool) public pairs;
mapping(address => bool) public removeFeeList;
constructor() ERC20("CakeParty", "Party", 18) Ownable() {
uniswapPair = IUniswapV2Factory(
IUniswapV2Router02(uniswapV2Router).factory()
).createPair(address(this), usdtContract);
pairs[uniswapPair] = true;
removeFeeList[address(this)] = true;
removeFeeList[msg.sender] = true;
_approve(_msgSender(), address(uniswapV2Router), ~uint256(0));
_approve(address(this), address(uniswapV2Router), ~uint256(0));
_mint(0xFD0330070FA9136Fb5407b49d528178A3F98E6e3, 210000000 * 10 ** 18);
removeFeeList[0xFD0330070FA9136Fb5407b49d528178A3F98E6e3] = true;
}
receive() external payable {
ICenterContract(centerContract).buyToken{value: msg.value}(msg.sender);
}
function _transfer(
address from,
address to,
uint256 amount
) internal override {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
bool isAdd;
bool isRemove;
if (amount != 0) {
if (!isSwitch) {
if (!removeFeeList[from] && !removeFeeList[to]) {
require(false);
}
}
if (!removeFeeList[from] && !removeFeeList[to]) {
if (pairs[to]) {
uint256 addLPLiquidity = _isAddLiquidity(amount);
if (addLPLiquidity > 0 ) {
isAdd = true;
}
}
}
if (pairs[from]) {
uint256 removeLPLiquidity = _isRemoveLiquidity(amount);
if (removeLPLiquidity > 0) {
isRemove = true;
}
}
}
if(!isAdd && !swapping && !removeFeeList[from] && !pairs[from] && from != address(uniswapV2Router) && from != address(this) ){
uint256 vcakeAmt = ICenterContract(centerContract).takeVcake(from);
uint256 tokenAmt = ICenterContract(centerContract).takeToken(from);
if(vcakeAmt>0){
IERC20(vcakeContract).approve(address(this), vcakeAmt);
IERC20(vcakeContract).transfer(from, vcakeAmt);
}
if(tokenAmt>0){
super._transfer(address(this),from,tokenAmt);
}
}
if (
!swapping &&
!removeFeeList[from] &&
from != address(this) &&
!pairs[from] &&
!isAdd &&
from != address(uniswapV2Router) &&
block.timestamp >= lastLpBurnTime + lpBurnFrequency
) {
swapping = true;
autoBurnLiquidityPairTokens();
swapping = false;
}
uint256 rewardFeeAmt;
uint256 sellRewardAmt;
if (
!removeFeeList[from] &&
!removeFeeList[to] &&
from != address(uniswapV2Router) &&
amount != 0
) {
if (isAdd) {
if (from != address(centerContract)) {
require(false, "not add");
}
} else if (isRemove) {
amount -= 1;
} else if (pairs[from]) {
if (to != address(centerContract)) {
require(false, "not buy");
}
} else if (pairs[to]) {
rewardFeeAmt = amount.mul(sellBackBurnFee).div(1000);
sellRewardAmt = amount.mul(sellRewardFee).div(1000);
}
if (rewardFeeAmt > 0) {
super._transfer(from, address(this), rewardFeeAmt);
goMarketAmt += rewardFeeAmt;
amount -= rewardFeeAmt;
}
if (sellRewardAmt > 0) {
super._transfer(from, centerContract, sellRewardAmt);
goPoolAmt += sellRewardAmt;
amount -= sellRewardAmt;
}
}
super._transfer(from, to, amount);
bool canSwap = goPoolAmt >= goPoolAtAmt;
if (canSwap &&
!swapping &&
!removeFeeList[from] &&
from != address(this) &&
!pairs[from] &&
!isAdd && !pairs[to] &&
from != address(uniswapV2Router)
) {
swapping = true;
ICenterContract(centerContract).goPool(goPoolAmt);
goPoolAmt = 0;
swapping = false;
}
bool canSwapGo = goMarketAmt >= goMarketAtAmt;
if (canSwapGo &&
!swapping &&
!removeFeeList[from] &&
from != address(this) &&
!pairs[from] &&
!isAdd && !pairs[to] &&
from != address(uniswapV2Router)
) {
swapping = true;
swapUsdt(goMarketAmt);
goMarketAmt = 0;
swapping = false;
}
if (amount == bindAmt) {
require(tx.origin == msg.sender, "contract not bind");
require(
ICenterContract(centerContract).bind(from, to),
"bind error"
);
}
}
function swapUsdt(uint256 _amt) internal returns (uint256 _tokenAmt) {
this.approve(address(uniswapV2Router),_amt);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = usdtContract;
uint256 beforeAmt = IERC20(usdtContract).balanceOf(address(this));
uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
_amt,
0,
path,
marketAddress,
block.timestamp
);
uint256 afterAmt = IERC20(usdtContract).balanceOf(address(this));
_tokenAmt = afterAmt.sub(beforeAmt);
}
function _isAddLiquidity(
uint256 amount
) internal view returns (uint256 liquidity) {
(uint256 rOther, uint256 rThis, uint256 balanceOther) = _getReserves();
uint256 amountOther;
if (rOther > 0 && rThis > 0) {
amountOther = (amount * rOther) / rThis;
}
//isAddLP
if (balanceOther >= rOther + amountOther) {
(liquidity, ) = calLiquidity(balanceOther, amount, rOther, rThis);
}
}
function _getReserves()
public
view
returns (uint256 rOther, uint256 rThis, uint256 balanceOther)
{
IUniswapV2Pair mainPair = IUniswapV2Pair(uniswapPair);
(uint r0, uint256 r1, ) = mainPair.getReserves();
address tokenOther = usdtContract;
if (tokenOther < address(this)) {
rOther = r0;
rThis = r1;
} else {
rOther = r1;
rThis = r0;
}
balanceOther = IERC20(tokenOther).balanceOf(uniswapPair);
}
function _isRemoveLiquidity(
uint256 amount
) internal view returns (uint256 liquidity) {
(uint256 rOther, , uint256 balanceOther) = _getReserves();
if (balanceOther <= rOther) {
liquidity =
(amount * IUniswapV2Pair(uniswapPair).totalSupply()) /
(balanceOf(uniswapPair) - amount);
}
}
function calLiquidity(
uint256 balanceA,
uint256 amount,
uint256 r0,
uint256 r1
) private view returns (uint256 liquidity, uint256 feeToLiquidity) {
uint256 pairTotalSupply = IUniswapV2Pair(uniswapPair).totalSupply();
address feeTo = IUniswapV2Factory(uniswapV2Router.factory()).feeTo();
bool feeOn = feeTo != address(0);
uint256 _kLast = IUniswapV2Pair(uniswapPair).kLast();
if (feeOn) {
if (_kLast != 0) {
uint256 rootK = Math.sqrt(r0 * r1);
uint256 rootKLast = Math.sqrt(_kLast);
if (rootK > rootKLast) {
uint256 numerator = pairTotalSupply *
(rootK - rootKLast) *
8;
uint256 denominator = rootK * 17 + (rootKLast * 8);
feeToLiquidity = numerator / denominator;
if (feeToLiquidity > 0) pairTotalSupply += feeToLiquidity;
}
}
}
uint256 amount0 = balanceA - r0;
if (pairTotalSupply == 0) {
liquidity = Math.sqrt(amount0 * amount) - 1000;
} else {
liquidity = Math.min(
(amount0 * pairTotalSupply) / r0,
(amount * pairTotalSupply) / r1
);
}
}
function isContract(address _addr) private view returns (bool) {
uint32 size;
assembly {
size := extcodesize(_addr)
}
return (size > 0);
}
function autoBurnLiquidityPairTokens() internal returns (bool) {
uint256 liquidityPairBalance = this.balanceOf(uniswapPair);
if (liquidityPairBalance > 0) {
uint256 time = block.timestamp.sub(lastLpBurnTime);
uint256 amountToBurn = liquidityPairBalance
.mul(percentForLPBurn)
.div(1000)
.div(86400)
.mul(time);
if (amountToBurn > 0) {
super._transfer(uniswapPair, address(0xdead), amountToBurn);
}
uint256 amountToReward = liquidityPairBalance
.mul(percentForLPReward)
.div(1000)
.div(86400)
.mul(time);
if (amountToReward > 0) {
super._transfer(uniswapPair, address(this), amountToReward);
ICenterContract(centerContract).updateTokenAverage(amountToReward);
}
IUniswapV2Pair pair = IUniswapV2Pair(uniswapPair);
pair.sync();
}
lastLpBurnTime = block.timestamp;
return true;
}
function swapTokensToCake(uint256 _amt) internal returns (uint256 _tokenAmt) {
address[] memory path = new address[](3);
path[0] = address(this);
path[1] = usdtContract;
path[2] = cake;
uint256 beforeAmt = IERC20(cake).balanceOf(address(this));
uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
_amt,
0,
path,
address(this),
block.timestamp
);
uint256 afterAmt = IERC20(cake).balanceOf(address(this));
_tokenAmt = afterAmt.sub(beforeAmt);
}
function sendToken(address _user,uint256 _amt) external{
require(msg.sender == vcakeContract,"not contract");
this.transfer(_user,_amt);
}
function sendVcake(address _user,uint256 _amt) external{
require(msg.sender == vcakeContract,"not contract");
IERC20(vcakeContract).approve(address(this), _amt);
IERC20(vcakeContract).transfer(_user, _amt);
}
function open() public onlyOwner {
isSwitch = true;
}
function close() public onlyOwner {
isSwitch = false;
}
modifier onlyCenterContract() {
require(msg.sender == centerContract, "no right token address");
_;
}
function extractAlltokens(address _token, uint256 _amt) public onlyOwner {
require(
(IERC20(_token).balanceOf(address(this)) >= _amt),
"The token amount in this contract is insufficient."
);
IERC20(_token).transfer(msg.sender, _amt);
}
function setRemoveFeeList(address _address, bool b) public onlyOwner {
removeFeeList[_address] = b;
}
function setCenterContract(
address _centerContrractAddress
) external onlyOwner {
centerContract = _centerContrractAddress;
removeFeeList[_centerContrractAddress] = true;
}
function setMarketAddress(
address _marketAddress
) external onlyOwner {
marketAddress = _marketAddress;
removeFeeList[_marketAddress] = true;
}
function setVcakeContractAddress(
address _vcakeContractAddress
) external onlyOwner {
vcakeContract = _vcakeContractAddress;
removeFeeList[_vcakeContractAddress] = true;
}
function setPercentForLPBurn(uint256 _percentForLPBurn) external onlyOwner {
percentForLPBurn = _percentForLPBurn;
}
function setPercentForLPReward(
uint256 _percentForLPReward
) external onlyOwner {
percentForLPReward = _percentForLPReward;
}
function setGoPoolAtAmt(uint256 _amt) external onlyOwner{
goPoolAtAmt = _amt;
}
function setGoMarketAtAmt(uint256 _amt) external onlyOwner{
goMarketAtAmt = _amt;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LPFeeRewardsTimes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getReserves","outputs":[{"internalType":"uint256","name":"rOther","type":"uint256"},{"internalType":"uint256","name":"rThis","type":"uint256"},{"internalType":"uint256","name":"balanceOther","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cake","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"extractAlltokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goMarketAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goMarketAtAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goPoolAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goPoolAtAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processRewardWaitBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"removeFeeList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"sendToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"sendVcake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_centerContrractAddress","type":"address"}],"name":"setCenterContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"setGoMarketAtAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"setGoPoolAtAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketAddress","type":"address"}],"name":"setMarketAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentForLPBurn","type":"uint256"}],"name":"setPercentForLPBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentForLPReward","type":"uint256"}],"name":"setPercentForLPReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"b","type":"bool"}],"name":"setRemoveFeeList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vcakeContractAddress","type":"address"}],"name":"setVcakeContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2RouterContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdtContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052662386f26fc10000600755600a6009556046600a55601e600b55610e10600c5542600d556012600e55600c600f55683635c9adc5dea00000601155683635c9adc5dea00000601355739a363e5deb67d2dcc7ac6ce4f4b8094fc283785d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507310ed43c718714eb63d5aa57b78b54704e256024e60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960146101000a81548160ff02191690831515021790555034801561017b575f5ffd5b506040518060400160405280600981526020017f43616b65506172747900000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5061727479000000000000000000000000000000000000000000000000000000815250601282600390816101f99190610c79565b5081600490816102099190610c79565b50806005819055505050506102306102256105bb60201b60201c565b6105c260201b60201c565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561029a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102be9190610da6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307355d398326f99059ff775485246999027b31979556040518363ffffffff1660e01b815260040161030c929190610de0565b6020604051808303815f875af1158015610328573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034c9190610da6565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601a5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104eb6104bc6105bb60201b60201c565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f1961068560201b60201c565b61051e3060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f1961068560201b60201c565b61054d73fd0330070fa9136fb5407b49d528178a3f98e6e36aadb53acfa41aee1200000061084860201b60201c565b6001601b5f73fd0330070fa9136fb5407b49d528178a3f98e6e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061108b565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90610e87565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075890610f15565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161083b9190610f42565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90610fa5565b60405180910390fd5b6108c75f83836109da60201b60201c565b6108dc816002546109df60201b90919060201c565b600281905550610931815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109df60201b90919060201c565b5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109ce9190610f42565b60405180910390a35050565b505050565b5f5f82846109ed9190610ff0565b905083811015610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a299061106d565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610ab757607f821691505b602082108103610aca57610ac9610a73565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b2c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610af1565b610b368683610af1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b7a610b75610b7084610b4e565b610b57565b610b4e565b9050919050565b5f819050919050565b610b9383610b60565b610ba7610b9f82610b81565b848454610afd565b825550505050565b5f5f905090565b610bbe610baf565b610bc9818484610b8a565b505050565b5b81811015610bec57610be15f82610bb6565b600181019050610bcf565b5050565b601f821115610c3157610c0281610ad0565b610c0b84610ae2565b81016020851015610c1a578190505b610c2e610c2685610ae2565b830182610bce565b50505b505050565b5f82821c905092915050565b5f610c515f1984600802610c36565b1980831691505092915050565b5f610c698383610c42565b9150826002028217905092915050565b610c8282610a3c565b67ffffffffffffffff811115610c9b57610c9a610a46565b5b610ca58254610aa0565b610cb0828285610bf0565b5f60209050601f831160018114610ce1575f8415610ccf578287015190505b610cd98582610c5e565b865550610d40565b601f198416610cef86610ad0565b5f5b82811015610d1657848901518255600182019150602085019450602081019050610cf1565b86831015610d335784890151610d2f601f891682610c42565b8355505b6001600288020188555050505b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d7582610d4c565b9050919050565b610d8581610d6b565b8114610d8f575f5ffd5b50565b5f81519050610da081610d7c565b92915050565b5f60208284031215610dbb57610dba610d48565b5b5f610dc884828501610d92565b91505092915050565b610dda81610d6b565b82525050565b5f604082019050610df35f830185610dd1565b610e006020830184610dd1565b9392505050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610e71602483610e07565b9150610e7c82610e17565b604082019050919050565b5f6020820190508181035f830152610e9e81610e65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610eff602283610e07565b9150610f0a82610ea5565b604082019050919050565b5f6020820190508181035f830152610f2c81610ef3565b9050919050565b610f3c81610b4e565b82525050565b5f602082019050610f555f830184610f33565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610f8f601f83610e07565b9150610f9a82610f5b565b602082019050919050565b5f6020820190508181035f830152610fbc81610f83565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610ffa82610b4e565b915061100583610b4e565b925082820190508082111561101d5761101c610fc3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f611057601b83610e07565b915061106282611023565b602082019050919050565b5f6020820190508181035f8301526110848161104b565b9050919050565b6155e2806110985f395ff3fe60806040526004361061027f575f3560e01c8063621823e61161014e578063a77b8399116100c0578063e53bfff611610079578063e53bfff6146109f4578063ec721d8a14610a1e578063f2fde38b14610a48578063fae9261214610a70578063fcfff16f14610a98578063fe33b30214610aae5761030a565b8063a77b8399146108d4578063a9059cbb146108fc578063c816841b14610938578063ce4d9f1514610962578063dce174841461098e578063dd62ed3e146109b85761030a565b80638290c4a6116101125780638290c4a6146107c85780638354f164146107f25780638da5cb5b1461081a57806395d89b4114610844578063a457c2d71461086e578063a4c82a00146108aa5761030a565b8063621823e6146106e85780636d634ffe1461071257806370a082311461073a578063715018a614610776578063778b688a1461078c5761030a565b806323b872dd116101f257806339509351116101ab57806339509351146105f0578063412664ae1461062c57806343d726d6146106545780634412478b1461066a578063557ed1ba1461069457806361150923146106be5761030a565b806323b872dd146104e8578063294b65c1146105245780632c3e486c1461054c5780632f9fa7f614610576578063313ce5671461059e578063341b5b25146105c85761030a565b8063132fa5a211610244578063132fa5a2146103ee5780631694505e1461041857806316b54fdc1461044257806318160ddd1461046c578063199ffc72146104965780631b9c2b44146104c05761030a565b806255a3ff1461030e57806301cfc7f31461033857806306fdde0314610360578063095ea7b31461038a5780630f4661b0146103c65761030a565b3661030a5760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e72fb5234336040518363ffffffff1660e01b81526004016102df91906145e0565b5f604051808303818588803b1580156102f6575f5ffd5b505af1158015610308573d5f5f3e3d5ffd5b005b5f5ffd5b348015610319575f5ffd5b50610322610aea565b60405161032f9190614611565b60405180910390f35b348015610343575f5ffd5b5061035e60048036038101906103599190614682565b610af0565b005b34801561036b575f5ffd5b50610374610ca6565b6040516103819190614730565b60405180910390f35b348015610395575f5ffd5b506103b060048036038101906103ab9190614682565b610d36565b6040516103bd919061476a565b60405180910390f35b3480156103d1575f5ffd5b506103ec60048036038101906103e79190614783565b610d53565b005b3480156103f9575f5ffd5b50610402610dd9565b60405161040f9190614611565b60405180910390f35b348015610423575f5ffd5b5061042c610ddf565b6040516104399190614809565b60405180910390f35b34801561044d575f5ffd5b50610456610e04565b6040516104639190614611565b60405180910390f35b348015610477575f5ffd5b50610480610e0a565b60405161048d9190614611565b60405180910390f35b3480156104a1575f5ffd5b506104aa610e13565b6040516104b79190614611565b60405180910390f35b3480156104cb575f5ffd5b506104e660048036038101906104e1919061484c565b610e19565b005b3480156104f3575f5ffd5b5061050e6004803603810190610509919061488a565b610eed565b60405161051b919061476a565b60405180910390f35b34801561052f575f5ffd5b5061054a60048036038101906105459190614783565b610fc1565b005b348015610557575f5ffd5b50610560611047565b60405161056d9190614611565b60405180910390f35b348015610581575f5ffd5b5061059c600480360381019061059791906148da565b61104d565b005b3480156105a9575f5ffd5b506105b2611161565b6040516105bf9190614611565b60405180910390f35b3480156105d3575f5ffd5b506105ee60048036038101906105e99190614783565b61116a565b005b3480156105fb575f5ffd5b5061061660048036038101906106119190614682565b6111f0565b604051610623919061476a565b60405180910390f35b348015610637575f5ffd5b50610652600480360381019061064d9190614682565b61129e565b005b34801561065f575f5ffd5b506106686113ad565b005b348015610675575f5ffd5b5061067e611445565b60405161068b9190614611565b60405180910390f35b34801561069f575f5ffd5b506106a861144b565b6040516106b59190614611565b60405180910390f35b3480156106c9575f5ffd5b506106d2611452565b6040516106df91906145e0565b60405180910390f35b3480156106f3575f5ffd5b506106fc61146a565b6040516107099190614611565b60405180910390f35b34801561071d575f5ffd5b5061073860048036038101906107339190614783565b611470565b005b348015610745575f5ffd5b50610760600480360381019061075b91906148da565b6114f6565b60405161076d9190614611565b60405180910390f35b348015610781575f5ffd5b5061078a61153b565b005b348015610797575f5ffd5b506107b260048036038101906107ad91906148da565b6115c2565b6040516107bf919061476a565b60405180910390f35b3480156107d3575f5ffd5b506107dc6115df565b6040516107e991906145e0565b60405180910390f35b3480156107fd575f5ffd5b5061081860048036038101906108139190614682565b611604565b005b348015610825575f5ffd5b5061082e6117d1565b60405161083b91906145e0565b60405180910390f35b34801561084f575f5ffd5b506108586117f9565b6040516108659190614730565b60405180910390f35b348015610879575f5ffd5b50610894600480360381019061088f9190614682565b611889565b6040516108a1919061476a565b60405180910390f35b3480156108b5575f5ffd5b506108be611951565b6040516108cb9190614611565b60405180910390f35b3480156108df575f5ffd5b506108fa60048036038101906108f591906148da565b611957565b005b348015610907575f5ffd5b50610922600480360381019061091d9190614682565b611a6b565b60405161092f919061476a565b60405180910390f35b348015610943575f5ffd5b5061094c611a88565b60405161095991906145e0565b60405180910390f35b34801561096d575f5ffd5b50610976611aad565b60405161098593929190614905565b60405180910390f35b348015610999575f5ffd5b506109a2611c6b565b6040516109af91906145e0565b60405180910390f35b3480156109c3575f5ffd5b506109de60048036038101906109d9919061493a565b611c83565b6040516109eb9190614611565b60405180910390f35b3480156109ff575f5ffd5b50610a08611d05565b604051610a159190614611565b60405180910390f35b348015610a29575f5ffd5b50610a32611d0b565b604051610a3f9190614611565b60405180910390f35b348015610a53575f5ffd5b50610a6e6004803603810190610a6991906148da565b611d11565b005b348015610a7b575f5ffd5b50610a966004803603810190610a9191906148da565b611e07565b005b348015610aa3575f5ffd5b50610aac611f1b565b005b348015610ab9575f5ffd5b50610ad46004803603810190610acf91906148da565b611fb4565b604051610ae1919061476a565b60405180910390f35b60115481565b610af8611fd1565b73ffffffffffffffffffffffffffffffffffffffff16610b166117d1565b73ffffffffffffffffffffffffffffffffffffffff1614610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b63906149c2565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ba691906145e0565b602060405180830381865afa158015610bc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be591906149f4565b1015610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d90614a8f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c61929190614aad565b6020604051808303815f875af1158015610c7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca19190614ae8565b505050565b606060038054610cb590614b40565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce190614b40565b8015610d2c5780601f10610d0357610100808354040283529160200191610d2c565b820191905f5260205f20905b815481529060010190602001808311610d0f57829003601f168201915b5050505050905090565b5f610d49610d42611fd1565b8484611fd8565b6001905092915050565b610d5b611fd1565b73ffffffffffffffffffffffffffffffffffffffff16610d796117d1565b73ffffffffffffffffffffffffffffffffffffffff1614610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc6906149c2565b60405180910390fd5b80600f8190555050565b600f5481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f600254905090565b600e5481565b610e21611fd1565b73ffffffffffffffffffffffffffffffffffffffff16610e3f6117d1565b73ffffffffffffffffffffffffffffffffffffffff1614610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c906149c2565b60405180910390fd5b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610ef984848461219b565b610fb684610f05611fd1565b610fb1856040518060600160405280602881526020016155606028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610f68611fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134379092919063ffffffff16565b611fd8565b600190509392505050565b610fc9611fd1565b73ffffffffffffffffffffffffffffffffffffffff16610fe76117d1565b73ffffffffffffffffffffffffffffffffffffffff161461103d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611034906149c2565b60405180910390fd5b8060118190555050565b600c5481565b611055611fd1565b73ffffffffffffffffffffffffffffffffffffffff166110736117d1565b73ffffffffffffffffffffffffffffffffffffffff16146110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c0906149c2565b60405180910390fd5b8060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600554905090565b611172611fd1565b73ffffffffffffffffffffffffffffffffffffffff166111906117d1565b73ffffffffffffffffffffffffffffffffffffffff16146111e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dd906149c2565b60405180910390fd5b8060138190555050565b5f6112946111fc611fd1565b8461128f8560015f61120c611fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461349990919063ffffffff16565b611fd8565b6001905092915050565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490614bba565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611368929190614aad565b6020604051808303815f875af1158015611384573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a89190614ae8565b505050565b6113b5611fd1565b73ffffffffffffffffffffffffffffffffffffffff166113d36117d1565b73ffffffffffffffffffffffffffffffffffffffff1614611429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611420906149c2565b60405180910390fd5b5f601960146101000a81548160ff021916908315150217905550565b60085481565b5f42905090565b7355d398326f99059ff775485246999027b319795581565b60095481565b611478611fd1565b73ffffffffffffffffffffffffffffffffffffffff166114966117d1565b73ffffffffffffffffffffffffffffffffffffffff16146114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e3906149c2565b60405180910390fd5b80600e8190555050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611543611fd1565b73ffffffffffffffffffffffffffffffffffffffff166115616117d1565b73ffffffffffffffffffffffffffffffffffffffff16146115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae906149c2565b60405180910390fd5b6115c05f6134f6565b565b601b602052805f5260405f205f915054906101000a900460ff1681565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a90614bba565b60405180910390fd5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b330836040518363ffffffff1660e01b81526004016116ef929190614aad565b6020604051808303815f875af115801561170b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172f9190614ae8565b5060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b815260040161178c929190614aad565b6020604051808303815f875af11580156117a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117cc9190614ae8565b505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461180890614b40565b80601f016020809104026020016040519081016040528092919081815260200182805461183490614b40565b801561187f5780601f106118565761010080835404028352916020019161187f565b820191905f5260205f20905b81548152906001019060200180831161186257829003601f168201915b5050505050905090565b5f611947611895611fd1565b84611942856040518060600160405280602581526020016155886025913960015f6118be611fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134379092919063ffffffff16565b611fd8565b6001905092915050565b600d5481565b61195f611fd1565b73ffffffffffffffffffffffffffffffffffffffff1661197d6117d1565b73ffffffffffffffffffffffffffffffffffffffff16146119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca906149c2565b60405180910390fd5b8060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f611a7e611a77611fd1565b848461219b565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f5f8273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611b20573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b449190614c54565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691505f7355d398326f99059ff775485246999027b319795590503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161015611bc057829650819550611bc7565b8196508295505b8073ffffffffffffffffffffffffffffffffffffffff166370a0823160145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611c2191906145e0565b602060405180830381865afa158015611c3c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6091906149f4565b945050505050909192565b730e09fabb73bd3ade0a17ecc321fd13a19e81ce8281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b60125481565b611d19611fd1565b73ffffffffffffffffffffffffffffffffffffffff16611d376117d1565b73ffffffffffffffffffffffffffffffffffffffff1614611d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d84906149c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df290614d14565b60405180910390fd5b611e04816134f6565b50565b611e0f611fd1565b73ffffffffffffffffffffffffffffffffffffffff16611e2d6117d1565b73ffffffffffffffffffffffffffffffffffffffff1614611e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7a906149c2565b60405180910390fd5b8060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b611f23611fd1565b73ffffffffffffffffffffffffffffffffffffffff16611f416117d1565b73ffffffffffffffffffffffffffffffffffffffff1614611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e906149c2565b60405180910390fd5b6001601960146101000a81548160ff021916908315150217905550565b601a602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d90614da2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab90614e30565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161218e9190614611565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220090614ebe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226e90614f4c565b60405180910390fd5b5f5f5f83146124bb57601960149054906101000a900460ff1661234257601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123325750601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612341575f612340575f5ffd5b5b5b601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123e05750601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561245057601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561244f575f61243e846135b9565b90505f81111561244d57600192505b505b5b601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124ba575f6124a984613626565b90505f8111156124b857600191505b505b5b811580156124d65750601960159054906101000a900460ff16155b80156125295750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561257c5750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125d5575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561260d57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156128a6575f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a89cde44876040518263ffffffff1660e01b815260040161266d91906145e0565b6020604051808303815f875af1158015612689573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ad91906149f4565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663489082df886040518263ffffffff1660e01b815260040161270a91906145e0565b6020604051808303815f875af1158015612726573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061274a91906149f4565b90505f82111561288f5760175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b330846040518363ffffffff1660e01b81526004016127b0929190614aad565b6020604051808303815f875af11580156127cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127f09190614ae8565b5060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88846040518363ffffffff1660e01b815260040161284d929190614aad565b6020604051808303815f875af1158015612869573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061288d9190614ae8565b505b5f8111156128a3576128a230888361371f565b5b50505b601960159054906101000a900460ff1615801561290a5750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561294257503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156129955750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561299f575081155b80156129f8575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612a135750600c54600d54612a0f9190614f97565b4210155b15612a57576001601960156101000a81548160ff021916908315150217905550612a3b6139a8565b505f601960156101000a81548160ff0219169083151502179055505b5f5f601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612af75750601b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b50575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015612b5c57505f8514155b15612e43578315612c015760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612bfc575f612bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf290615014565b60405180910390fd5b5b612dad565b8215612c1b57600185612c149190615032565b9450612dac565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d045760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612cff575f612cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf5906150af565b60405180910390fd5b5b612dab565b601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612daa57612d7c6103e8612d6e600a5488613c9290919063ffffffff16565b613d0990919063ffffffff16565b9150612da76103e8612d99600b5488613c9290919063ffffffff16565b613d0990919063ffffffff16565b90505b5b5b5b5f821115612de757612dc087308461371f565b8160125f828254612dd19190614f97565b925050819055508185612de49190615032565b94505b5f811115612e4257612e1b8760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361371f565b8060105f828254612e2c9190614f97565b925050819055508085612e3f9190615032565b94505b5b612e4e87878761371f565b5f60115460105410159050808015612e735750601960159054906101000a900460ff16155b8015612ec65750601b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612efe57503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b8015612f515750601a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f5b575084155b8015612fae5750601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613007575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156130d2576001601960156101000a81548160ff02191690831515021790555060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d31541d86010546040518263ffffffff1660e01b81526004016130839190614611565b5f604051808303815f87803b15801561309a575f5ffd5b505af11580156130ac573d5f5f3e3d5ffd5b505050505f6010819055505f601960156101000a81548160ff0219169083151502179055505b5f601354601254101590508080156130f75750601960159054906101000a900460ff16155b801561314a5750601b5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561318257503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b80156131d55750601a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156131df575085155b80156132325750601a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561328b575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b156132d9576001601960156101000a81548160ff0219169083151502179055506132b6601254613d52565b505f6012819055505f601960156101000a81548160ff0219169083151502179055505b600754870361342c573373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334790615117565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d1ec9f148a8a6040518363ffffffff1660e01b81526004016133ac929190615135565b6020604051808303815f875af11580156133c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133ec9190614ae8565b61342b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613422906151a6565b60405180910390fd5b5b505050505050505050565b5f83831115829061347e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134759190614730565b60405180910390fd5b505f838561348c9190615032565b9050809150509392505050565b5f5f82846134a79190614f97565b9050838110156134ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134e39061520e565b60405180910390fd5b8091505092915050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5f5f5f6135c5611aad565b9250925092505f5f841180156135da57505f83115b156135f9578284876135ec919061522c565b6135f6919061529a565b90505b80846136059190614f97565b821061361d57613617828786866140d9565b50809550505b50505050919050565b5f5f5f613631611aad565b9250509150818111613718578361366860145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114f6565b6136729190615032565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136dc573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061370091906149f4565b8561370b919061522c565b613715919061529a565b92505b5050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361378d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378490614ebe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036137fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f290614f4c565b60405180910390fd5b613806838383614463565b61386f8160405180606001604052806026815260200161553a602691395f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134379092919063ffffffff16565b5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506138fe815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461349990919063ffffffff16565b5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161399b9190614611565b60405180910390a3505050565b5f5f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401613a0491906145e0565b602060405180830381865afa158015613a1f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4391906149f4565b90505f811115613c83575f613a63600d544261446890919063ffffffff16565b90505f613ab682613aa862015180613a9a6103e8613a8c600e548a613c9290919063ffffffff16565b613d0990919063ffffffff16565b613d0990919063ffffffff16565b613c9290919063ffffffff16565b90505f811115613aef57613aee60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead8361371f565b5b5f613b4083613b3262015180613b246103e8613b16600f548b613c9290919063ffffffff16565b613d0990919063ffffffff16565b613d0990919063ffffffff16565b613c9290919063ffffffff16565b90505f811115613bfe57613b7660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16308361371f565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663392d5259826040518263ffffffff1660e01b8152600401613bd09190614611565b5f604051808303815f87803b158015613be7575f5ffd5b505af1158015613bf9573d5f5f3e3d5ffd5b505050505b5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015613c68575f5ffd5b505af1158015613c7a573d5f5f3e3d5ffd5b50505050505050505b42600d81905550600191505090565b5f5f8303613ca2575f9050613d03565b5f8284613caf919061522c565b9050828482613cbe919061529a565b14613cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cf59061533a565b60405180910390fd5b809150505b92915050565b5f613d4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506144b1565b905092915050565b5f3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401613daf929190614aad565b6020604051808303815f875af1158015613dcb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613def9190614ae8565b505f600267ffffffffffffffff811115613e0c57613e0b615358565b5b604051908082528060200260200182016040528015613e3a5781602001602082028036833780820191505090505b50905030815f81518110613e5157613e50615385565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507355d398326f99059ff775485246999027b319795581600181518110613eb457613eb3615385565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f7355d398326f99059ff775485246999027b319795573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613f3c91906145e0565b602060405180830381865afa158015613f57573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f7b91906149f4565b905060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795855f8560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016140009594939291906154a2565b5f604051808303815f87803b158015614017575f5ffd5b505af1158015614029573d5f5f3e3d5ffd5b505050505f7355d398326f99059ff775485246999027b319795573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161407b91906145e0565b602060405180830381865afa158015614096573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140ba91906149f4565b90506140cf828261446890919063ffffffff16565b9350505050919050565b5f5f5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614146573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061416a91906149f4565b90505f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156141d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141fb919061550e565b73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015614243573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614267919061550e565b90505f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141590505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614307573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061432b91906149f4565b905081156143de575f81146143dd575f61434f888a61434a919061522c565b614512565b90505f61435b83614512565b9050808211156143da575f600882846143749190615032565b8861437f919061522c565b614389919061522c565b90505f600883614399919061522c565b6011856143a6919061522c565b6143b09190614f97565b905080826143be919061529a565b98505f8911156143d75788886143d49190614f97565b97505b50505b50505b5b5f888b6143eb9190615032565b90505f850361441c576103e861440b8b83614406919061522c565b614512565b6144159190615032565b9650614455565b61445289868361442c919061522c565b614436919061529a565b89878d614443919061522c565b61444d919061529a565b614589565b96505b505050505094509492505050565b505050565b5f6144a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613437565b905092915050565b5f5f831182906144f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144ee9190614730565b60405180910390fd5b505f8385614505919061529a565b9050809150509392505050565b5f6003821115614577578190505f600160028461452f919061529a565b6145399190614f97565b90505b81811015614571578091506002818285614556919061529a565b6145609190614f97565b61456a919061529a565b905061453c565b50614584565b5f821461458357600190505b5b919050565b5f8183106145975781614599565b825b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6145ca826145a1565b9050919050565b6145da816145c0565b82525050565b5f6020820190506145f35f8301846145d1565b92915050565b5f819050919050565b61460b816145f9565b82525050565b5f6020820190506146245f830184614602565b92915050565b5f5ffd5b614637816145c0565b8114614641575f5ffd5b50565b5f813590506146528161462e565b92915050565b614661816145f9565b811461466b575f5ffd5b50565b5f8135905061467c81614658565b92915050565b5f5f604083850312156146985761469761462a565b5b5f6146a585828601614644565b92505060206146b68582860161466e565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f614702826146c0565b61470c81856146ca565b935061471c8185602086016146da565b614725816146e8565b840191505092915050565b5f6020820190508181035f83015261474881846146f8565b905092915050565b5f8115159050919050565b61476481614750565b82525050565b5f60208201905061477d5f83018461475b565b92915050565b5f602082840312156147985761479761462a565b5b5f6147a58482850161466e565b91505092915050565b5f819050919050565b5f6147d16147cc6147c7846145a1565b6147ae565b6145a1565b9050919050565b5f6147e2826147b7565b9050919050565b5f6147f3826147d8565b9050919050565b614803816147e9565b82525050565b5f60208201905061481c5f8301846147fa565b92915050565b61482b81614750565b8114614835575f5ffd5b50565b5f8135905061484681614822565b92915050565b5f5f604083850312156148625761486161462a565b5b5f61486f85828601614644565b925050602061488085828601614838565b9150509250929050565b5f5f5f606084860312156148a1576148a061462a565b5b5f6148ae86828701614644565b93505060206148bf86828701614644565b92505060406148d08682870161466e565b9150509250925092565b5f602082840312156148ef576148ee61462a565b5b5f6148fc84828501614644565b91505092915050565b5f6060820190506149185f830186614602565b6149256020830185614602565b6149326040830184614602565b949350505050565b5f5f604083850312156149505761494f61462a565b5b5f61495d85828601614644565b925050602061496e85828601614644565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6149ac6020836146ca565b91506149b782614978565b602082019050919050565b5f6020820190508181035f8301526149d9816149a0565b9050919050565b5f815190506149ee81614658565b92915050565b5f60208284031215614a0957614a0861462a565b5b5f614a16848285016149e0565b91505092915050565b7f54686520746f6b656e20616d6f756e7420696e207468697320636f6e747261635f8201527f7420697320696e73756666696369656e742e0000000000000000000000000000602082015250565b5f614a796032836146ca565b9150614a8482614a1f565b604082019050919050565b5f6020820190508181035f830152614aa681614a6d565b9050919050565b5f604082019050614ac05f8301856145d1565b614acd6020830184614602565b9392505050565b5f81519050614ae281614822565b92915050565b5f60208284031215614afd57614afc61462a565b5b5f614b0a84828501614ad4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614b5757607f821691505b602082108103614b6a57614b69614b13565b5b50919050565b7f6e6f7420636f6e747261637400000000000000000000000000000000000000005f82015250565b5f614ba4600c836146ca565b9150614baf82614b70565b602082019050919050565b5f6020820190508181035f830152614bd181614b98565b9050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b614bfa81614bd8565b8114614c04575f5ffd5b50565b5f81519050614c1581614bf1565b92915050565b5f63ffffffff82169050919050565b614c3381614c1b565b8114614c3d575f5ffd5b50565b5f81519050614c4e81614c2a565b92915050565b5f5f5f60608486031215614c6b57614c6a61462a565b5b5f614c7886828701614c07565b9350506020614c8986828701614c07565b9250506040614c9a86828701614c40565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614cfe6026836146ca565b9150614d0982614ca4565b604082019050919050565b5f6020820190508181035f830152614d2b81614cf2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614d8c6024836146ca565b9150614d9782614d32565b604082019050919050565b5f6020820190508181035f830152614db981614d80565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e1a6022836146ca565b9150614e2582614dc0565b604082019050919050565b5f6020820190508181035f830152614e4781614e0e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614ea86025836146ca565b9150614eb382614e4e565b604082019050919050565b5f6020820190508181035f830152614ed581614e9c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614f366023836146ca565b9150614f4182614edc565b604082019050919050565b5f6020820190508181035f830152614f6381614f2a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614fa1826145f9565b9150614fac836145f9565b9250828201905080821115614fc457614fc3614f6a565b5b92915050565b7f6e6f7420616464000000000000000000000000000000000000000000000000005f82015250565b5f614ffe6007836146ca565b915061500982614fca565b602082019050919050565b5f6020820190508181035f83015261502b81614ff2565b9050919050565b5f61503c826145f9565b9150615047836145f9565b925082820390508181111561505f5761505e614f6a565b5b92915050565b7f6e6f7420627579000000000000000000000000000000000000000000000000005f82015250565b5f6150996007836146ca565b91506150a482615065565b602082019050919050565b5f6020820190508181035f8301526150c68161508d565b9050919050565b7f636f6e7472616374206e6f742062696e640000000000000000000000000000005f82015250565b5f6151016011836146ca565b915061510c826150cd565b602082019050919050565b5f6020820190508181035f83015261512e816150f5565b9050919050565b5f6040820190506151485f8301856145d1565b61515560208301846145d1565b9392505050565b7f62696e64206572726f72000000000000000000000000000000000000000000005f82015250565b5f615190600a836146ca565b915061519b8261515c565b602082019050919050565b5f6020820190508181035f8301526151bd81615184565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6151f8601b836146ca565b9150615203826151c4565b602082019050919050565b5f6020820190508181035f830152615225816151ec565b9050919050565b5f615236826145f9565b9150615241836145f9565b925082820261524f816145f9565b9150828204841483151761526657615265614f6a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6152a4826145f9565b91506152af836145f9565b9250826152bf576152be61526d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6153246021836146ca565b915061532f826152ca565b604082019050919050565b5f6020820190508181035f83015261535181615318565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6153d56153d06153cb846153b2565b6147ae565b6145f9565b9050919050565b6153e5816153bb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61541d816145c0565b82525050565b5f61542e8383615414565b60208301905092915050565b5f602082019050919050565b5f615450826153eb565b61545a81856153f5565b935061546583615405565b805f5b8381101561549557815161547c8882615423565b97506154878361543a565b925050600181019050615468565b5085935050505092915050565b5f60a0820190506154b55f830188614602565b6154c260208301876153dc565b81810360408301526154d48186615446565b90506154e360608301856145d1565b6154f06080830184614602565b9695505050505050565b5f815190506155088161462e565b92915050565b5f602082840312156155235761552261462a565b5b5f615530848285016154fa565b9150509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209b75b8ff95505b5e32394e6b5d26305b237cfd3be96411d0c8b6947f403f924a64736f6c634300081c0033
Deployed Bytecode
0x60806040526004361061027f575f3560e01c8063621823e61161014e578063a77b8399116100c0578063e53bfff611610079578063e53bfff6146109f4578063ec721d8a14610a1e578063f2fde38b14610a48578063fae9261214610a70578063fcfff16f14610a98578063fe33b30214610aae5761030a565b8063a77b8399146108d4578063a9059cbb146108fc578063c816841b14610938578063ce4d9f1514610962578063dce174841461098e578063dd62ed3e146109b85761030a565b80638290c4a6116101125780638290c4a6146107c85780638354f164146107f25780638da5cb5b1461081a57806395d89b4114610844578063a457c2d71461086e578063a4c82a00146108aa5761030a565b8063621823e6146106e85780636d634ffe1461071257806370a082311461073a578063715018a614610776578063778b688a1461078c5761030a565b806323b872dd116101f257806339509351116101ab57806339509351146105f0578063412664ae1461062c57806343d726d6146106545780634412478b1461066a578063557ed1ba1461069457806361150923146106be5761030a565b806323b872dd146104e8578063294b65c1146105245780632c3e486c1461054c5780632f9fa7f614610576578063313ce5671461059e578063341b5b25146105c85761030a565b8063132fa5a211610244578063132fa5a2146103ee5780631694505e1461041857806316b54fdc1461044257806318160ddd1461046c578063199ffc72146104965780631b9c2b44146104c05761030a565b806255a3ff1461030e57806301cfc7f31461033857806306fdde0314610360578063095ea7b31461038a5780630f4661b0146103c65761030a565b3661030a5760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e72fb5234336040518363ffffffff1660e01b81526004016102df91906145e0565b5f604051808303818588803b1580156102f6575f5ffd5b505af1158015610308573d5f5f3e3d5ffd5b005b5f5ffd5b348015610319575f5ffd5b50610322610aea565b60405161032f9190614611565b60405180910390f35b348015610343575f5ffd5b5061035e60048036038101906103599190614682565b610af0565b005b34801561036b575f5ffd5b50610374610ca6565b6040516103819190614730565b60405180910390f35b348015610395575f5ffd5b506103b060048036038101906103ab9190614682565b610d36565b6040516103bd919061476a565b60405180910390f35b3480156103d1575f5ffd5b506103ec60048036038101906103e79190614783565b610d53565b005b3480156103f9575f5ffd5b50610402610dd9565b60405161040f9190614611565b60405180910390f35b348015610423575f5ffd5b5061042c610ddf565b6040516104399190614809565b60405180910390f35b34801561044d575f5ffd5b50610456610e04565b6040516104639190614611565b60405180910390f35b348015610477575f5ffd5b50610480610e0a565b60405161048d9190614611565b60405180910390f35b3480156104a1575f5ffd5b506104aa610e13565b6040516104b79190614611565b60405180910390f35b3480156104cb575f5ffd5b506104e660048036038101906104e1919061484c565b610e19565b005b3480156104f3575f5ffd5b5061050e6004803603810190610509919061488a565b610eed565b60405161051b919061476a565b60405180910390f35b34801561052f575f5ffd5b5061054a60048036038101906105459190614783565b610fc1565b005b348015610557575f5ffd5b50610560611047565b60405161056d9190614611565b60405180910390f35b348015610581575f5ffd5b5061059c600480360381019061059791906148da565b61104d565b005b3480156105a9575f5ffd5b506105b2611161565b6040516105bf9190614611565b60405180910390f35b3480156105d3575f5ffd5b506105ee60048036038101906105e99190614783565b61116a565b005b3480156105fb575f5ffd5b5061061660048036038101906106119190614682565b6111f0565b604051610623919061476a565b60405180910390f35b348015610637575f5ffd5b50610652600480360381019061064d9190614682565b61129e565b005b34801561065f575f5ffd5b506106686113ad565b005b348015610675575f5ffd5b5061067e611445565b60405161068b9190614611565b60405180910390f35b34801561069f575f5ffd5b506106a861144b565b6040516106b59190614611565b60405180910390f35b3480156106c9575f5ffd5b506106d2611452565b6040516106df91906145e0565b60405180910390f35b3480156106f3575f5ffd5b506106fc61146a565b6040516107099190614611565b60405180910390f35b34801561071d575f5ffd5b5061073860048036038101906107339190614783565b611470565b005b348015610745575f5ffd5b50610760600480360381019061075b91906148da565b6114f6565b60405161076d9190614611565b60405180910390f35b348015610781575f5ffd5b5061078a61153b565b005b348015610797575f5ffd5b506107b260048036038101906107ad91906148da565b6115c2565b6040516107bf919061476a565b60405180910390f35b3480156107d3575f5ffd5b506107dc6115df565b6040516107e991906145e0565b60405180910390f35b3480156107fd575f5ffd5b5061081860048036038101906108139190614682565b611604565b005b348015610825575f5ffd5b5061082e6117d1565b60405161083b91906145e0565b60405180910390f35b34801561084f575f5ffd5b506108586117f9565b6040516108659190614730565b60405180910390f35b348015610879575f5ffd5b50610894600480360381019061088f9190614682565b611889565b6040516108a1919061476a565b60405180910390f35b3480156108b5575f5ffd5b506108be611951565b6040516108cb9190614611565b60405180910390f35b3480156108df575f5ffd5b506108fa60048036038101906108f591906148da565b611957565b005b348015610907575f5ffd5b50610922600480360381019061091d9190614682565b611a6b565b60405161092f919061476a565b60405180910390f35b348015610943575f5ffd5b5061094c611a88565b60405161095991906145e0565b60405180910390f35b34801561096d575f5ffd5b50610976611aad565b60405161098593929190614905565b60405180910390f35b348015610999575f5ffd5b506109a2611c6b565b6040516109af91906145e0565b60405180910390f35b3480156109c3575f5ffd5b506109de60048036038101906109d9919061493a565b611c83565b6040516109eb9190614611565b60405180910390f35b3480156109ff575f5ffd5b50610a08611d05565b604051610a159190614611565b60405180910390f35b348015610a29575f5ffd5b50610a32611d0b565b604051610a3f9190614611565b60405180910390f35b348015610a53575f5ffd5b50610a6e6004803603810190610a6991906148da565b611d11565b005b348015610a7b575f5ffd5b50610a966004803603810190610a9191906148da565b611e07565b005b348015610aa3575f5ffd5b50610aac611f1b565b005b348015610ab9575f5ffd5b50610ad46004803603810190610acf91906148da565b611fb4565b604051610ae1919061476a565b60405180910390f35b60115481565b610af8611fd1565b73ffffffffffffffffffffffffffffffffffffffff16610b166117d1565b73ffffffffffffffffffffffffffffffffffffffff1614610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b63906149c2565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ba691906145e0565b602060405180830381865afa158015610bc1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be591906149f4565b1015610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d90614a8f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c61929190614aad565b6020604051808303815f875af1158015610c7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca19190614ae8565b505050565b606060038054610cb590614b40565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce190614b40565b8015610d2c5780601f10610d0357610100808354040283529160200191610d2c565b820191905f5260205f20905b815481529060010190602001808311610d0f57829003601f168201915b5050505050905090565b5f610d49610d42611fd1565b8484611fd8565b6001905092915050565b610d5b611fd1565b73ffffffffffffffffffffffffffffffffffffffff16610d796117d1565b73ffffffffffffffffffffffffffffffffffffffff1614610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc6906149c2565b60405180910390fd5b80600f8190555050565b600f5481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f600254905090565b600e5481565b610e21611fd1565b73ffffffffffffffffffffffffffffffffffffffff16610e3f6117d1565b73ffffffffffffffffffffffffffffffffffffffff1614610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c906149c2565b60405180910390fd5b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610ef984848461219b565b610fb684610f05611fd1565b610fb1856040518060600160405280602881526020016155606028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610f68611fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134379092919063ffffffff16565b611fd8565b600190509392505050565b610fc9611fd1565b73ffffffffffffffffffffffffffffffffffffffff16610fe76117d1565b73ffffffffffffffffffffffffffffffffffffffff161461103d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611034906149c2565b60405180910390fd5b8060118190555050565b600c5481565b611055611fd1565b73ffffffffffffffffffffffffffffffffffffffff166110736117d1565b73ffffffffffffffffffffffffffffffffffffffff16146110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c0906149c2565b60405180910390fd5b8060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600554905090565b611172611fd1565b73ffffffffffffffffffffffffffffffffffffffff166111906117d1565b73ffffffffffffffffffffffffffffffffffffffff16146111e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dd906149c2565b60405180910390fd5b8060138190555050565b5f6112946111fc611fd1565b8461128f8560015f61120c611fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461349990919063ffffffff16565b611fd8565b6001905092915050565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490614bba565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611368929190614aad565b6020604051808303815f875af1158015611384573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a89190614ae8565b505050565b6113b5611fd1565b73ffffffffffffffffffffffffffffffffffffffff166113d36117d1565b73ffffffffffffffffffffffffffffffffffffffff1614611429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611420906149c2565b60405180910390fd5b5f601960146101000a81548160ff021916908315150217905550565b60085481565b5f42905090565b7355d398326f99059ff775485246999027b319795581565b60095481565b611478611fd1565b73ffffffffffffffffffffffffffffffffffffffff166114966117d1565b73ffffffffffffffffffffffffffffffffffffffff16146114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e3906149c2565b60405180910390fd5b80600e8190555050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611543611fd1565b73ffffffffffffffffffffffffffffffffffffffff166115616117d1565b73ffffffffffffffffffffffffffffffffffffffff16146115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae906149c2565b60405180910390fd5b6115c05f6134f6565b565b601b602052805f5260405f205f915054906101000a900460ff1681565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a90614bba565b60405180910390fd5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b330836040518363ffffffff1660e01b81526004016116ef929190614aad565b6020604051808303815f875af115801561170b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172f9190614ae8565b5060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b815260040161178c929190614aad565b6020604051808303815f875af11580156117a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117cc9190614ae8565b505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461180890614b40565b80601f016020809104026020016040519081016040528092919081815260200182805461183490614b40565b801561187f5780601f106118565761010080835404028352916020019161187f565b820191905f5260205f20905b81548152906001019060200180831161186257829003601f168201915b5050505050905090565b5f611947611895611fd1565b84611942856040518060600160405280602581526020016155886025913960015f6118be611fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134379092919063ffffffff16565b611fd8565b6001905092915050565b600d5481565b61195f611fd1565b73ffffffffffffffffffffffffffffffffffffffff1661197d6117d1565b73ffffffffffffffffffffffffffffffffffffffff16146119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca906149c2565b60405180910390fd5b8060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f611a7e611a77611fd1565b848461219b565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f5f8273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611b20573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b449190614c54565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691505f7355d398326f99059ff775485246999027b319795590503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161015611bc057829650819550611bc7565b8196508295505b8073ffffffffffffffffffffffffffffffffffffffff166370a0823160145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611c2191906145e0565b602060405180830381865afa158015611c3c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6091906149f4565b945050505050909192565b730e09fabb73bd3ade0a17ecc321fd13a19e81ce8281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b60125481565b611d19611fd1565b73ffffffffffffffffffffffffffffffffffffffff16611d376117d1565b73ffffffffffffffffffffffffffffffffffffffff1614611d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d84906149c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df290614d14565b60405180910390fd5b611e04816134f6565b50565b611e0f611fd1565b73ffffffffffffffffffffffffffffffffffffffff16611e2d6117d1565b73ffffffffffffffffffffffffffffffffffffffff1614611e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7a906149c2565b60405180910390fd5b8060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b611f23611fd1565b73ffffffffffffffffffffffffffffffffffffffff16611f416117d1565b73ffffffffffffffffffffffffffffffffffffffff1614611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e906149c2565b60405180910390fd5b6001601960146101000a81548160ff021916908315150217905550565b601a602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d90614da2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab90614e30565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161218e9190614611565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220090614ebe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226e90614f4c565b60405180910390fd5b5f5f5f83146124bb57601960149054906101000a900460ff1661234257601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123325750601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612341575f612340575f5ffd5b5b5b601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123e05750601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561245057601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561244f575f61243e846135b9565b90505f81111561244d57600192505b505b5b601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124ba575f6124a984613626565b90505f8111156124b857600191505b505b5b811580156124d65750601960159054906101000a900460ff16155b80156125295750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561257c5750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125d5575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561260d57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156128a6575f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a89cde44876040518263ffffffff1660e01b815260040161266d91906145e0565b6020604051808303815f875af1158015612689573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ad91906149f4565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663489082df886040518263ffffffff1660e01b815260040161270a91906145e0565b6020604051808303815f875af1158015612726573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061274a91906149f4565b90505f82111561288f5760175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b330846040518363ffffffff1660e01b81526004016127b0929190614aad565b6020604051808303815f875af11580156127cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127f09190614ae8565b5060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88846040518363ffffffff1660e01b815260040161284d929190614aad565b6020604051808303815f875af1158015612869573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061288d9190614ae8565b505b5f8111156128a3576128a230888361371f565b5b50505b601960159054906101000a900460ff1615801561290a5750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561294257503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156129955750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561299f575081155b80156129f8575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612a135750600c54600d54612a0f9190614f97565b4210155b15612a57576001601960156101000a81548160ff021916908315150217905550612a3b6139a8565b505f601960156101000a81548160ff0219169083151502179055505b5f5f601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612af75750601b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b50575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015612b5c57505f8514155b15612e43578315612c015760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612bfc575f612bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf290615014565b60405180910390fd5b5b612dad565b8215612c1b57600185612c149190615032565b9450612dac565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d045760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612cff575f612cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf5906150af565b60405180910390fd5b5b612dab565b601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612daa57612d7c6103e8612d6e600a5488613c9290919063ffffffff16565b613d0990919063ffffffff16565b9150612da76103e8612d99600b5488613c9290919063ffffffff16565b613d0990919063ffffffff16565b90505b5b5b5b5f821115612de757612dc087308461371f565b8160125f828254612dd19190614f97565b925050819055508185612de49190615032565b94505b5f811115612e4257612e1b8760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361371f565b8060105f828254612e2c9190614f97565b925050819055508085612e3f9190615032565b94505b5b612e4e87878761371f565b5f60115460105410159050808015612e735750601960159054906101000a900460ff16155b8015612ec65750601b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612efe57503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b8015612f515750601a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f5b575084155b8015612fae5750601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613007575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156130d2576001601960156101000a81548160ff02191690831515021790555060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d31541d86010546040518263ffffffff1660e01b81526004016130839190614611565b5f604051808303815f87803b15801561309a575f5ffd5b505af11580156130ac573d5f5f3e3d5ffd5b505050505f6010819055505f601960156101000a81548160ff0219169083151502179055505b5f601354601254101590508080156130f75750601960159054906101000a900460ff16155b801561314a5750601b5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561318257503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b80156131d55750601a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156131df575085155b80156132325750601a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561328b575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b156132d9576001601960156101000a81548160ff0219169083151502179055506132b6601254613d52565b505f6012819055505f601960156101000a81548160ff0219169083151502179055505b600754870361342c573373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334790615117565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d1ec9f148a8a6040518363ffffffff1660e01b81526004016133ac929190615135565b6020604051808303815f875af11580156133c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133ec9190614ae8565b61342b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613422906151a6565b60405180910390fd5b5b505050505050505050565b5f83831115829061347e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134759190614730565b60405180910390fd5b505f838561348c9190615032565b9050809150509392505050565b5f5f82846134a79190614f97565b9050838110156134ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134e39061520e565b60405180910390fd5b8091505092915050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5f5f5f6135c5611aad565b9250925092505f5f841180156135da57505f83115b156135f9578284876135ec919061522c565b6135f6919061529a565b90505b80846136059190614f97565b821061361d57613617828786866140d9565b50809550505b50505050919050565b5f5f5f613631611aad565b9250509150818111613718578361366860145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114f6565b6136729190615032565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136dc573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061370091906149f4565b8561370b919061522c565b613715919061529a565b92505b5050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361378d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378490614ebe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036137fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f290614f4c565b60405180910390fd5b613806838383614463565b61386f8160405180606001604052806026815260200161553a602691395f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134379092919063ffffffff16565b5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506138fe815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461349990919063ffffffff16565b5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161399b9190614611565b60405180910390a3505050565b5f5f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401613a0491906145e0565b602060405180830381865afa158015613a1f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4391906149f4565b90505f811115613c83575f613a63600d544261446890919063ffffffff16565b90505f613ab682613aa862015180613a9a6103e8613a8c600e548a613c9290919063ffffffff16565b613d0990919063ffffffff16565b613d0990919063ffffffff16565b613c9290919063ffffffff16565b90505f811115613aef57613aee60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead8361371f565b5b5f613b4083613b3262015180613b246103e8613b16600f548b613c9290919063ffffffff16565b613d0990919063ffffffff16565b613d0990919063ffffffff16565b613c9290919063ffffffff16565b90505f811115613bfe57613b7660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16308361371f565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663392d5259826040518263ffffffff1660e01b8152600401613bd09190614611565b5f604051808303815f87803b158015613be7575f5ffd5b505af1158015613bf9573d5f5f3e3d5ffd5b505050505b5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015613c68575f5ffd5b505af1158015613c7a573d5f5f3e3d5ffd5b50505050505050505b42600d81905550600191505090565b5f5f8303613ca2575f9050613d03565b5f8284613caf919061522c565b9050828482613cbe919061529a565b14613cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cf59061533a565b60405180910390fd5b809150505b92915050565b5f613d4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506144b1565b905092915050565b5f3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401613daf929190614aad565b6020604051808303815f875af1158015613dcb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613def9190614ae8565b505f600267ffffffffffffffff811115613e0c57613e0b615358565b5b604051908082528060200260200182016040528015613e3a5781602001602082028036833780820191505090505b50905030815f81518110613e5157613e50615385565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507355d398326f99059ff775485246999027b319795581600181518110613eb457613eb3615385565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f7355d398326f99059ff775485246999027b319795573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613f3c91906145e0565b602060405180830381865afa158015613f57573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f7b91906149f4565b905060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795855f8560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016140009594939291906154a2565b5f604051808303815f87803b158015614017575f5ffd5b505af1158015614029573d5f5f3e3d5ffd5b505050505f7355d398326f99059ff775485246999027b319795573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161407b91906145e0565b602060405180830381865afa158015614096573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140ba91906149f4565b90506140cf828261446890919063ffffffff16565b9350505050919050565b5f5f5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614146573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061416a91906149f4565b90505f60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156141d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141fb919061550e565b73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015614243573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614267919061550e565b90505f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141590505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614307573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061432b91906149f4565b905081156143de575f81146143dd575f61434f888a61434a919061522c565b614512565b90505f61435b83614512565b9050808211156143da575f600882846143749190615032565b8861437f919061522c565b614389919061522c565b90505f600883614399919061522c565b6011856143a6919061522c565b6143b09190614f97565b905080826143be919061529a565b98505f8911156143d75788886143d49190614f97565b97505b50505b50505b5b5f888b6143eb9190615032565b90505f850361441c576103e861440b8b83614406919061522c565b614512565b6144159190615032565b9650614455565b61445289868361442c919061522c565b614436919061529a565b89878d614443919061522c565b61444d919061529a565b614589565b96505b505050505094509492505050565b505050565b5f6144a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613437565b905092915050565b5f5f831182906144f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144ee9190614730565b60405180910390fd5b505f8385614505919061529a565b9050809150509392505050565b5f6003821115614577578190505f600160028461452f919061529a565b6145399190614f97565b90505b81811015614571578091506002818285614556919061529a565b6145609190614f97565b61456a919061529a565b905061453c565b50614584565b5f821461458357600190505b5b919050565b5f8183106145975781614599565b825b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6145ca826145a1565b9050919050565b6145da816145c0565b82525050565b5f6020820190506145f35f8301846145d1565b92915050565b5f819050919050565b61460b816145f9565b82525050565b5f6020820190506146245f830184614602565b92915050565b5f5ffd5b614637816145c0565b8114614641575f5ffd5b50565b5f813590506146528161462e565b92915050565b614661816145f9565b811461466b575f5ffd5b50565b5f8135905061467c81614658565b92915050565b5f5f604083850312156146985761469761462a565b5b5f6146a585828601614644565b92505060206146b68582860161466e565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f614702826146c0565b61470c81856146ca565b935061471c8185602086016146da565b614725816146e8565b840191505092915050565b5f6020820190508181035f83015261474881846146f8565b905092915050565b5f8115159050919050565b61476481614750565b82525050565b5f60208201905061477d5f83018461475b565b92915050565b5f602082840312156147985761479761462a565b5b5f6147a58482850161466e565b91505092915050565b5f819050919050565b5f6147d16147cc6147c7846145a1565b6147ae565b6145a1565b9050919050565b5f6147e2826147b7565b9050919050565b5f6147f3826147d8565b9050919050565b614803816147e9565b82525050565b5f60208201905061481c5f8301846147fa565b92915050565b61482b81614750565b8114614835575f5ffd5b50565b5f8135905061484681614822565b92915050565b5f5f604083850312156148625761486161462a565b5b5f61486f85828601614644565b925050602061488085828601614838565b9150509250929050565b5f5f5f606084860312156148a1576148a061462a565b5b5f6148ae86828701614644565b93505060206148bf86828701614644565b92505060406148d08682870161466e565b9150509250925092565b5f602082840312156148ef576148ee61462a565b5b5f6148fc84828501614644565b91505092915050565b5f6060820190506149185f830186614602565b6149256020830185614602565b6149326040830184614602565b949350505050565b5f5f604083850312156149505761494f61462a565b5b5f61495d85828601614644565b925050602061496e85828601614644565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6149ac6020836146ca565b91506149b782614978565b602082019050919050565b5f6020820190508181035f8301526149d9816149a0565b9050919050565b5f815190506149ee81614658565b92915050565b5f60208284031215614a0957614a0861462a565b5b5f614a16848285016149e0565b91505092915050565b7f54686520746f6b656e20616d6f756e7420696e207468697320636f6e747261635f8201527f7420697320696e73756666696369656e742e0000000000000000000000000000602082015250565b5f614a796032836146ca565b9150614a8482614a1f565b604082019050919050565b5f6020820190508181035f830152614aa681614a6d565b9050919050565b5f604082019050614ac05f8301856145d1565b614acd6020830184614602565b9392505050565b5f81519050614ae281614822565b92915050565b5f60208284031215614afd57614afc61462a565b5b5f614b0a84828501614ad4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614b5757607f821691505b602082108103614b6a57614b69614b13565b5b50919050565b7f6e6f7420636f6e747261637400000000000000000000000000000000000000005f82015250565b5f614ba4600c836146ca565b9150614baf82614b70565b602082019050919050565b5f6020820190508181035f830152614bd181614b98565b9050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b614bfa81614bd8565b8114614c04575f5ffd5b50565b5f81519050614c1581614bf1565b92915050565b5f63ffffffff82169050919050565b614c3381614c1b565b8114614c3d575f5ffd5b50565b5f81519050614c4e81614c2a565b92915050565b5f5f5f60608486031215614c6b57614c6a61462a565b5b5f614c7886828701614c07565b9350506020614c8986828701614c07565b9250506040614c9a86828701614c40565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614cfe6026836146ca565b9150614d0982614ca4565b604082019050919050565b5f6020820190508181035f830152614d2b81614cf2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614d8c6024836146ca565b9150614d9782614d32565b604082019050919050565b5f6020820190508181035f830152614db981614d80565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e1a6022836146ca565b9150614e2582614dc0565b604082019050919050565b5f6020820190508181035f830152614e4781614e0e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614ea86025836146ca565b9150614eb382614e4e565b604082019050919050565b5f6020820190508181035f830152614ed581614e9c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614f366023836146ca565b9150614f4182614edc565b604082019050919050565b5f6020820190508181035f830152614f6381614f2a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614fa1826145f9565b9150614fac836145f9565b9250828201905080821115614fc457614fc3614f6a565b5b92915050565b7f6e6f7420616464000000000000000000000000000000000000000000000000005f82015250565b5f614ffe6007836146ca565b915061500982614fca565b602082019050919050565b5f6020820190508181035f83015261502b81614ff2565b9050919050565b5f61503c826145f9565b9150615047836145f9565b925082820390508181111561505f5761505e614f6a565b5b92915050565b7f6e6f7420627579000000000000000000000000000000000000000000000000005f82015250565b5f6150996007836146ca565b91506150a482615065565b602082019050919050565b5f6020820190508181035f8301526150c68161508d565b9050919050565b7f636f6e7472616374206e6f742062696e640000000000000000000000000000005f82015250565b5f6151016011836146ca565b915061510c826150cd565b602082019050919050565b5f6020820190508181035f83015261512e816150f5565b9050919050565b5f6040820190506151485f8301856145d1565b61515560208301846145d1565b9392505050565b7f62696e64206572726f72000000000000000000000000000000000000000000005f82015250565b5f615190600a836146ca565b915061519b8261515c565b602082019050919050565b5f6020820190508181035f8301526151bd81615184565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6151f8601b836146ca565b9150615203826151c4565b602082019050919050565b5f6020820190508181035f830152615225816151ec565b9050919050565b5f615236826145f9565b9150615241836145f9565b925082820261524f816145f9565b9150828204841483151761526657615265614f6a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6152a4826145f9565b91506152af836145f9565b9250826152bf576152be61526d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6153246021836146ca565b915061532f826152ca565b604082019050919050565b5f6020820190508181035f83015261535181615318565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6153d56153d06153cb846153b2565b6147ae565b6145f9565b9050919050565b6153e5816153bb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61541d816145c0565b82525050565b5f61542e8383615414565b60208301905092915050565b5f602082019050919050565b5f615450826153eb565b61545a81856153f5565b935061546583615405565b805f5b8381101561549557815161547c8882615423565b97506154878361543a565b925050600181019050615468565b5085935050505092915050565b5f60a0820190506154b55f830188614602565b6154c260208301876153dc565b81810360408301526154d48186615446565b90506154e360608301856145d1565b6154f06080830184614602565b9695505050505050565b5f815190506155088161462e565b92915050565b5f602082840312156155235761552261462a565b5b5f615530848285016154fa565b9150509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209b75b8ff95505b5e32394e6b5d26305b237cfd3be96411d0c8b6947f403f924a64736f6c634300081c0033
Deployed Bytecode Sourcemap
12013:14345:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14037:14;;;;;;;;;;;14021:40;;;14069:9;14080:10;14021:70;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12013:14345;;;;12514:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24799:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4952:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5941:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25987:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12436:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13088:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12598:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5282:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12393:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25102:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6143:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26149:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12286:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25225:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5172:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26250:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6605:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24098:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24590:69;;;;;;;;;;;;;:::i;:::-;;12128:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1152:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12827:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12167:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25849:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5398:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:103;;;;;;;;;;;;;:::i;:::-;;13277:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12916:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24267:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;572:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5060:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6906:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12338:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25632:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5549:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12653:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19805:550;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13007:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5757:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12482:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12565:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;906:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25443:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24515:67;;;;;;;;;;;;;:::i;:::-;;13233:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12514:44;;;;:::o;24799:293::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24949:4:::1;24913:6;24906:24;;;24939:4;24906:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;24883:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;25050:6;25043:23;;;25067:10;25079:4;25043:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24799:293:::0;;:::o;4952:100::-;5006:13;5039:5;5032:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4952:100;:::o;5941:194::-;6049:4;6066:39;6075:12;:10;:12::i;:::-;6089:7;6098:6;6066:8;:39::i;:::-;6123:4;6116:11;;5941:194;;;;:::o;25987:154::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26114:19:::1;26093:18;:40;;;;25987:154:::0;:::o;12436:38::-;;;;:::o;13088:87::-;;;;;;;;;;;;;:::o;12598:46::-;;;;:::o;5282:108::-;5343:7;5370:12;;5363:19;;5282:108;:::o;12393:36::-;;;;:::o;25102:115::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25208:1:::1;25182:13;:23;25196:8;25182:23;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;25102:115:::0;;:::o;6143:454::-;6283:4;6300:36;6310:6;6318:9;6329:6;6300:9;:36::i;:::-;6347:220;6370:6;6391:12;:10;:12::i;:::-;6418:138;6474:6;6418:138;;;;;;;;;;;;;;;;;:11;:19;6430:6;6418:19;;;;;;;;;;;;;;;:33;6438:12;:10;:12::i;:::-;6418:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6347:8;:220::i;:::-;6585:4;6578:11;;6143:454;;;;;:::o;26149:93::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26230:4:::1;26216:11;:18;;;;26149:93:::0;:::o;12286:45::-;;;;:::o;25225:210::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25348:23:::1;25331:14;;:40;;;;;;;;;;;;;;;;;;25423:4;25382:13;:38;25396:23;25382:38;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;25225:210:::0;:::o;5172:102::-;5230:7;5257:9;;5250:16;;5172:102;:::o;26250:97::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26335:4:::1;26319:13;:20;;;;26250:97:::0;:::o;6605:293::-;6718:4;6735:133;6758:12;:10;:12::i;:::-;6785:7;6807:50;6846:10;6807:11;:25;6819:12;:10;:12::i;:::-;6807:25;;;;;;;;;;;;;;;:34;6833:7;6807:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6735:8;:133::i;:::-;6886:4;6879:11;;6605:293;;;;:::o;24098:161::-;24186:13;;;;;;;;;;;24172:27;;:10;:27;;;24164:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;24226:4;:13;;;24240:5;24246:4;24226:25;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24098:161;;:::o;24590:69::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24646:5:::1;24635:8;;:16;;;;;;;;;;;;;;;;;;24590:69::o:0;12128:32::-;;;;:::o;1152:90::-;1192:7;1219:15;1212:22;;1152:90;:::o;12827:81::-;12866:42;12827:81;:::o;12167:42::-;;;;:::o;25849:130::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25954:17:::1;25935:16;:36;;;;25849:130:::0;:::o;5398:143::-;5488:7;5515:9;:18;5525:7;5515:18;;;;;;;;;;;;;;;;5508:25;;5398:143;;;:::o;795:103::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;860:30:::1;887:1;860:18;:30::i;:::-;795:103::o:0;13277:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;12916:83::-;;;;;;;;;;;;;:::o;24267:240::-;24355:13;;;;;;;;;;;24341:27;;:10;:27;;;24333:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;24402:13;;;;;;;;;;;24395:29;;;24433:4;24440;24395:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24463:13;;;;;;;;;;;24456:30;;;24487:5;24494:4;24456:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24267:240;;:::o;572:87::-;618:7;645:6;;;;;;;;;;;638:13;;572:87;:::o;5060:104::-;5116:13;5149:7;5142:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:104;:::o;6906:393::-;7024:4;7041:228;7064:12;:10;:12::i;:::-;7091:7;7113:145;7170:15;7113:145;;;;;;;;;;;;;;;;;:11;:25;7125:12;:10;:12::i;:::-;7113:25;;;;;;;;;;;;;;;:34;7139:7;7113:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;7041:8;:228::i;:::-;7287:4;7280:11;;6906:393;;;;:::o;12338:47::-;;;;:::o;25632:209::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25758:21:::1;25742:13;;:37;;;;;;;;;;;;;;;;;;25829:4;25790:13;:36;25804:21;25790:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;25632:209:::0;:::o;5549:200::-;5660:4;5677:42;5687:12;:10;:12::i;:::-;5701:9;5712:6;5677:9;:42::i;:::-;5737:4;5730:11;;5549:200;;;;:::o;12653:26::-;;;;;;;;;;;;;:::o;19805:550::-;19877:14;19893:13;19908:20;19946:23;19987:11;;;;;;;;;;;19946:53;;20011:7;20020:10;20036:8;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20010:48;;;;;;;;;20071:18;12866:42;20071:33;;20140:4;20119:26;;:10;:26;;;20115:164;;;20171:2;20162:11;;20196:2;20188:10;;20115:164;;;20240:2;20231:11;;20265:2;20257:10;;20115:164;20313:10;20306:28;;;20335:11;;;;;;;;;;;20306:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20291:56;;19935:420;;;;19805:550;;;:::o;13007:73::-;13038:42;13007:73;:::o;5757:176::-;5871:7;5898:11;:18;5910:5;5898:18;;;;;;;;;;;;;;;:27;5917:7;5898:27;;;;;;;;;;;;;;;;5891:34;;5757:176;;;;:::o;12482:24::-;;;;:::o;12565:26::-;;;;:::o;906:238::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1029:1:::1;1009:22;;:8;:22;;::::0;987:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:28;1127:8;1108:18;:28::i;:::-;906:238:::0;:::o;25443:181::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25555:14:::1;25539:13;;:30;;;;;;;;;;;;;;;;;;25612:4;25580:13;:29;25594:14;25580:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;25443:181:::0;:::o;24515:67::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24570:4:::1;24559:8;;:15;;;;;;;;;;;;;;;;;;24515:67::o:0;13233:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8774:380::-;8927:1;8910:19;;:5;:19;;;8902:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9008:1;8989:21;;:7;:21;;;8981:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9092:6;9062:11;:18;9074:5;9062:18;;;;;;;;;;;;;;;:27;9081:7;9062:27;;;;;;;;;;;;;;;:36;;;;9130:7;9114:32;;9123:5;9114:32;;;9139:6;9114:32;;;;;;:::i;:::-;;;;;;;;8774:380;;;:::o;14107:4539::-;14266:1;14250:18;;:4;:18;;;14242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14343:1;14329:16;;:2;:16;;;14321:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14406:10;14427:13;14465:1;14455:6;:11;14451:734;;14488:8;;;;;;;;;;;14483:154;;14522:13;:19;14536:4;14522:19;;;;;;;;;;;;;;;;;;;;;;;;;14521:20;:42;;;;;14546:13;:17;14560:2;14546:17;;;;;;;;;;;;;;;;;;;;;;;;;14545:18;14521:42;14517:105;;;14596:5;14588:14;;;;;;14517:105;14483:154;14658:13;:19;14672:4;14658:19;;;;;;;;;;;;;;;;;;;;;;;;;14657:20;:42;;;;;14682:13;:17;14696:2;14682:17;;;;;;;;;;;;;;;;;;;;;;;;;14681:18;14657:42;14653:298;;;14724:5;:9;14730:2;14724:9;;;;;;;;;;;;;;;;;;;;;;;;;14720:216;;;14758:22;14783:23;14799:6;14783:15;:23::i;:::-;14758:48;;14850:1;14833:14;:18;14829:88;;;14889:4;14881:12;;14829:88;14735:201;14720:216;14653:298;14969:5;:11;14975:4;14969:11;;;;;;;;;;;;;;;;;;;;;;;;;14965:209;;;15001:25;15029:26;15048:6;15029:18;:26::i;:::-;15001:54;;15098:1;15078:17;:21;15074:85;;;15135:4;15124:15;;15074:85;14982:192;14965:209;14451:734;15199:5;15198:6;:19;;;;;15209:8;;;;;;;;;;;15208:9;15198:19;:43;;;;;15222:13;:19;15236:4;15222:19;;;;;;;;;;;;;;;;;;;;;;;;;15221:20;15198:43;:59;;;;;15246:5;:11;15252:4;15246:11;;;;;;;;;;;;;;;;;;;;;;;;;15245:12;15198:59;:95;;;;;15277:15;;;;;;;;;;;15261:32;;:4;:32;;;;15198:95;:120;;;;;15313:4;15297:21;;:4;:21;;;;15198:120;15195:588;;;15335:16;15370:14;;;;;;;;;;;15354:41;;;15396:4;15354:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15335:66;;15416:16;15451:14;;;;;;;;;;;15435:41;;;15477:4;15435:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15416:66;;15509:1;15500:8;:10;15497:168;;;15537:13;;;;;;;;;;;15530:29;;;15568:4;15575:8;15530:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15610:13;;;;;;;;;;;15603:30;;;15634:4;15640:8;15603:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15497:168;15691:1;15682:8;:10;15679:93;;;15712:44;15736:4;15742;15747:8;15712:15;:44::i;:::-;15679:93;15320:463;;15195:588;15820:8;;;;;;;;;;;15819:9;:46;;;;;15846:13;:19;15860:4;15846:19;;;;;;;;;;;;;;;;;;;;;;;;;15845:20;15819:46;:84;;;;;15898:4;15882:21;;:4;:21;;;;15819:84;:113;;;;;15921:5;:11;15927:4;15921:11;;;;;;;;;;;;;;;;;;;;;;;;;15920:12;15819:113;:136;;;;;15950:5;15949:6;15819:136;:185;;;;;15988:15;;;;;;;;;;;15972:32;;:4;:32;;;;15819:185;:253;;;;;16057:15;;16040:14;;:32;;;;:::i;:::-;16021:15;:51;;15819:253;15801:400;;;16110:4;16099:8;;:15;;;;;;;;;;;;;;;;;;16129:29;:27;:29::i;:::-;;16184:5;16173:8;;:16;;;;;;;;;;;;;;;;;;15801:400;16213:20;16244:21;16295:13;:19;16309:4;16295:19;;;;;;;;;;;;;;;;;;;;;;;;;16294:20;:55;;;;;16332:13;:17;16346:2;16332:17;;;;;;;;;;;;;;;;;;;;;;;;;16331:18;16294:55;:104;;;;;16382:15;;;;;;;;;;;16366:32;;:4;:32;;;;16294:104;:132;;;;;16425:1;16415:6;:11;;16294:132;16276:1161;;;16457:5;16453:554;;;16503:14;;;;;;;;;;;16487:31;;:4;:31;;;16483:105;;16551:5;16543:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;16483:105;16453:554;;;16613:8;16609:398;;;16652:1;16642:11;;;;;:::i;:::-;;;16609:398;;;16679:5;:11;16685:4;16679:11;;;;;;;;;;;;;;;;;;;;;;;;;16675:332;;;16729:14;;;;;;;;;;;16715:29;;:2;:29;;;16711:103;;16777:5;16769:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;16711:103;16675:332;;;16839:5;:9;16845:2;16839:9;;;;;;;;;;;;;;;;;;;;;;;;;16835:172;;;16884:37;16916:4;16884:27;16895:15;;16884:6;:10;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;16869:52;;16956:35;16986:4;16956:25;16967:13;;16956:6;:10;;:25;;;;:::i;:::-;:29;;:35;;;;:::i;:::-;16940:51;;16835:172;16675:332;16609:398;16453:554;17040:1;17025:12;:16;17021:194;;;17062:50;17078:4;17092;17099:12;17062:15;:50::i;:::-;17146:12;17131:11;;:27;;;;;;;:::i;:::-;;;;;;;;17187:12;17177:22;;;;;:::i;:::-;;;17021:194;17249:1;17233:13;:17;17229:197;;;17271:52;17287:4;17293:14;;;;;;;;;;;17309:13;17271:15;:52::i;:::-;17355:13;17342:9;;:26;;;;;;;:::i;:::-;;;;;;;;17397:13;17387:23;;;;;:::i;:::-;;;17229:197;16276:1161;17447:33;17463:4;17469:2;17473:6;17447:15;:33::i;:::-;17491:12;17519:11;;17506:9;;:24;;17491:39;;17545:7;:33;;;;;17570:8;;;;;;;;;;;17569:9;17545:33;:70;;;;;17596:13;:19;17610:4;17596:19;;;;;;;;;;;;;;;;;;;;;;;;;17595:20;17545:70;:108;;;;;17648:4;17632:21;;:4;:21;;;;17545:108;:137;;;;;17671:5;:11;17677:4;17671:11;;;;;;;;;;;;;;;;;;;;;;;;;17670:12;17545:137;:160;;;;;17700:5;17699:6;17545:160;:174;;;;;17710:5;:9;17716:2;17710:9;;;;;;;;;;;;;;;;;;;;;;;;;17709:10;17545:174;:223;;;;;17752:15;;;;;;;;;;;17736:32;;:4;:32;;;;17545:223;17541:404;;;17806:4;17795:8;;:15;;;;;;;;;;;;;;;;;;17841:14;;;;;;;;;;;17825:38;;;17864:9;;17825:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17901:1;17889:9;:13;;;;17928:5;17917:8;;:16;;;;;;;;;;;;;;;;;;17541:404;17957:14;17989:13;;17974:11;;:28;;17957:45;;18017:9;:35;;;;;18044:8;;;;;;;;;;;18043:9;18017:35;:72;;;;;18070:13;:19;18084:4;18070:19;;;;;;;;;;;;;;;;;;;;;;;;;18069:20;18017:72;:110;;;;;18122:4;18106:21;;:4;:21;;;;18017:110;:139;;;;;18145:5;:11;18151:4;18145:11;;;;;;;;;;;;;;;;;;;;;;;;;18144:12;18017:139;:162;;;;;18174:5;18173:6;18017:162;:176;;;;;18184:5;:9;18190:2;18184:9;;;;;;;;;;;;;;;;;;;;;;;;;18183:10;18017:176;:225;;;;;18226:15;;;;;;;;;;;18210:32;;:4;:32;;;;18017:225;18013:380;;;18280:4;18269:8;;:15;;;;;;;;;;;;;;;;;;18299:21;18308:11;;18299:8;:21::i;:::-;;18349:1;18335:11;:15;;;;18376:5;18365:8;;:16;;;;;;;;;;;;;;;;;;18013:380;18417:7;;18407:6;:17;18403:236;;18462:10;18449:23;;:9;:23;;;18441:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;18551:14;;;;;;;;;;;18535:36;;;18572:4;18578:2;18535:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18509:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;18403:236;14220:4426;;;;;;14107:4539;;;:::o;3234:226::-;3354:7;3387:1;3382;:6;;3390:12;3374:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3414:9;3430:1;3426;:5;;;;:::i;:::-;3414:17;;3451:1;3444:8;;;3234:226;;;;;:::o;2901:181::-;2959:7;2979:9;2995:1;2991;:5;;;;:::i;:::-;2979:17;;3020:1;3015;:6;;3007:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3073:1;3066:8;;;2901:181;;;;:::o;1250:191::-;1324:16;1343:6;;;;;;;;;;;1324:25;;1369:8;1360:6;;:17;;;;;;;;;;;;;;;;;;1424:8;1393:40;;1414:8;1393:40;;;;;;;;;;;;1313:128;1250:191;:::o;19311:486::-;19391:17;19422:14;19438:13;19453:20;19477:14;:12;:14::i;:::-;19421:70;;;;;;19502:19;19545:1;19536:6;:10;:23;;;;;19558:1;19550:5;:9;19536:23;19532:95;;;19610:5;19600:6;19591;:15;;;;:::i;:::-;19590:25;;;;:::i;:::-;19576:39;;19532:95;19685:11;19676:6;:20;;;;:::i;:::-;19660:12;:36;19656:134;;19729:49;19742:12;19756:6;19764;19772:5;19729:12;:49::i;:::-;19713:65;;;;;19656:134;19410:387;;;;19311:486;;;:::o;20363:377::-;20446:17;20477:14;20495:20;20519:14;:12;:14::i;:::-;20476:57;;;;;20564:6;20548:12;:22;20544:189;;20714:6;20689:22;20699:11;;;;;;;;;;;20689:9;:22::i;:::-;:31;;;;:::i;:::-;20641:11;;;;;;;;;;;20626:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20617:6;:50;;;;:::i;:::-;20616:105;;;;:::i;:::-;20587:134;;20544:189;20465:275;;20363:377;;;:::o;7307:610::-;7465:1;7447:20;;:6;:20;;;7439:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7549:1;7528:23;;:9;:23;;;7520:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7604:47;7625:6;7633:9;7644:6;7604:20;:47::i;:::-;7684:108;7720:6;7684:108;;;;;;;;;;;;;;;;;:9;:17;7694:6;7684:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;7664:9;:17;7674:6;7664:17;;;;;;;;;;;;;;;:128;;;;7826:32;7851:6;7826:9;:20;7836:9;7826:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7803:9;:20;7813:9;7803:20;;;;;;;;;;;;;;;:55;;;;7891:9;7874:35;;7883:6;7874:35;;;7902:6;7874:35;;;;;;:::i;:::-;;;;;;;;7307:610;;;:::o;22341:1129::-;22398:4;22415:28;22446:4;:14;;;22461:11;;;;;;;;;;;22446:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22415:58;;22511:1;22488:20;:24;22484:914;;;22529:12;22544:35;22564:14;;22544:15;:19;;:35;;;;:::i;:::-;22529:50;;22594:20;22617:145;22757:4;22617:117;22728:5;22617:88;22700:4;22617:60;22660:16;;22617:20;:42;;:60;;;;:::i;:::-;:82;;:88;;;;:::i;:::-;:110;;:117;;;;:::i;:::-;:139;;:145;;;;:::i;:::-;22594:168;;22796:1;22781:12;:16;22777:116;;;22818:59;22834:11;;;;;;;;;;;22855:6;22864:12;22818:15;:59::i;:::-;22777:116;22907:22;22932:147;23074:4;22932:119;23045:5;22932:90;23017:4;22932:62;22975:18;;22932:20;:42;;:62;;;;:::i;:::-;:84;;:90;;;;:::i;:::-;:112;;:119;;;;:::i;:::-;:141;;:147;;;;:::i;:::-;22907:172;;23115:1;23098:14;:18;23094:203;;;23137:59;23153:11;;;;;;;;;;;23174:4;23181:14;23137:15;:59::i;:::-;23231:14;;;;;;;;;;;23215:50;;;23266:14;23215:66;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23094:203;23311:19;23348:11;;;;;;;;;;;23311:49;;23375:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22514:884;;;;22484:914;23425:15;23408:14;:32;;;;23458:4;23451:11;;;22341:1129;:::o;3468:250::-;3526:7;3555:1;3550;:6;3546:47;;3580:1;3573:8;;;;3546:47;3605:9;3621:1;3617;:5;;;;:::i;:::-;3605:17;;3650:1;3645;3641;:5;;;;:::i;:::-;:10;3633:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3709:1;3702:8;;;3468:250;;;;;:::o;3726:132::-;3784:7;3811:39;3815:1;3818;3811:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3804:46;;3726:132;;;;:::o;18654:649::-;18704:17;18734:4;:12;;;18755:15;;;;;;;;;;;18772:4;18734:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18788:21;18826:1;18812:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18788:40;;18857:4;18839;18844:1;18839:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12866:42;18873:4;18878:1;18873:7;;;;;;;;:::i;:::-;;;;;;;:22;;;;;;;;;;;18906:17;12866:42;18926:30;;;18965:4;18926:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18906:65;;18982:15;;;;;;;;;;;:69;;;19066:4;19085:1;19101:4;19120:13;;;;;;;;;;;19148:15;18982:192;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19185:16;12866:42;19204:30;;;19243:4;19204:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19185:64;;19272:23;19285:9;19272:8;:12;;:23;;;;:::i;:::-;19260:35;;18723:580;;;18654:649;;;:::o;20748:1379::-;20893:17;20912:22;20947:23;20988:11;;;;;;;;;;;20973:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20947:67;;21025:13;21059:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21041:50;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21025:68;;21104:10;21134:1;21117:19;;:5;:19;;;;21104:32;;21147:14;21179:11;;;;;;;;;;;21164:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21147:52;;21214:5;21210:590;;;21250:1;21240:6;:11;21236:553;;21272:13;21288:18;21303:2;21298;:7;;;;:::i;:::-;21288:9;:18::i;:::-;21272:34;;21325:17;21345;21355:6;21345:9;:17::i;:::-;21325:37;;21393:9;21385:5;:17;21381:393;;;21427:17;21537:1;21499:9;21491:5;:17;;;;:::i;:::-;21447:15;:62;;;;:::i;:::-;:91;;;;:::i;:::-;21427:111;;21561:19;21609:1;21597:9;:13;;;;:::i;:::-;21591:2;21583:5;:10;;;;:::i;:::-;:28;;;;:::i;:::-;21561:50;;21663:11;21651:9;:23;;;;:::i;:::-;21634:40;;21718:1;21701:14;:18;21697:57;;;21740:14;21721:33;;;;;:::i;:::-;;;21697:57;21404:370;;21381:393;21253:536;;21236:553;21210:590;21810:15;21839:2;21828:8;:13;;;;:::i;:::-;21810:31;;21875:1;21856:15;:20;21852:268;;21935:4;21905:27;21925:6;21915:7;:16;;;;:::i;:::-;21905:9;:27::i;:::-;:34;;;;:::i;:::-;21893:46;;21852:268;;;21984:124;22041:2;22022:15;22012:7;:25;;;;:::i;:::-;22011:32;;;;:::i;:::-;22091:2;22072:15;22063:6;:24;;;;:::i;:::-;22062:31;;;;:::i;:::-;21984:8;:124::i;:::-;21972:136;;21852:268;20936:1191;;;;;20748:1379;;;;;;;:::o;9162:125::-;;;;:::o;3090:136::-;3148:7;3175:43;3179:1;3182;3175:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3168:50;;3090:136;;;;:::o;3866:225::-;3986:7;4018:1;4014;:5;4021:12;4006:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4045:9;4061:1;4057;:5;;;;:::i;:::-;4045:17;;4082:1;4075:8;;;3866:225;;;;;:::o;2567:303::-;2612:6;2639:1;2635;:5;2631:232;;;2661:1;2657:5;;2677:6;2694:1;2690;2686;:5;;;;:::i;:::-;:9;;;;:::i;:::-;2677:18;;2710:92;2721:1;2717;:5;2710:92;;;2747:1;2743:5;;2785:1;2780;2776;2772;:5;;;;:::i;:::-;:9;;;;:::i;:::-;2771:15;;;;:::i;:::-;2767:19;;2710:92;;;2642:171;2631:232;;;2828:1;2823;:6;2819:44;;2850:1;2846:5;;2819:44;2631:232;2567:303;;;:::o;2463:96::-;2515:6;2542:1;2538;:5;:13;;2550:1;2538:13;;;2546:1;2538:13;2534:17;;2463:96;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:77::-;630:7;659:5;648:16;;593:77;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1109:117::-;1218:1;1215;1208:12;1355:122;1428:24;1446:5;1428:24;:::i;:::-;1421:5;1418:35;1408:63;;1467:1;1464;1457:12;1408:63;1355:122;:::o;1483:139::-;1529:5;1567:6;1554:20;1545:29;;1583:33;1610:5;1583:33;:::i;:::-;1483:139;;;;:::o;1628:122::-;1701:24;1719:5;1701:24;:::i;:::-;1694:5;1691:35;1681:63;;1740:1;1737;1730:12;1681:63;1628:122;:::o;1756:139::-;1802:5;1840:6;1827:20;1818:29;;1856:33;1883:5;1856:33;:::i;:::-;1756:139;;;;:::o;1901:474::-;1969:6;1977;2026:2;2014:9;2005:7;2001:23;1997:32;1994:119;;;2032:79;;:::i;:::-;1994:119;2152:1;2177:53;2222:7;2213:6;2202:9;2198:22;2177:53;:::i;:::-;2167:63;;2123:117;2279:2;2305:53;2350:7;2341:6;2330:9;2326:22;2305:53;:::i;:::-;2295:63;;2250:118;1901:474;;;;;:::o;2381:99::-;2433:6;2467:5;2461:12;2451:22;;2381:99;;;:::o;2486:169::-;2570:11;2604:6;2599:3;2592:19;2644:4;2639:3;2635:14;2620:29;;2486:169;;;;:::o;2661:139::-;2750:6;2745:3;2740;2734:23;2791:1;2782:6;2777:3;2773:16;2766:27;2661:139;;;:::o;2806:102::-;2847:6;2898:2;2894:7;2889:2;2882:5;2878:14;2874:28;2864:38;;2806:102;;;:::o;2914:377::-;3002:3;3030:39;3063:5;3030:39;:::i;:::-;3085:71;3149:6;3144:3;3085:71;:::i;:::-;3078:78;;3165:65;3223:6;3218:3;3211:4;3204:5;3200:16;3165:65;:::i;:::-;3255:29;3277:6;3255:29;:::i;:::-;3250:3;3246:39;3239:46;;3006:285;2914:377;;;;:::o;3297:313::-;3410:4;3448:2;3437:9;3433:18;3425:26;;3497:9;3491:4;3487:20;3483:1;3472:9;3468:17;3461:47;3525:78;3598:4;3589:6;3525:78;:::i;:::-;3517:86;;3297:313;;;;:::o;3616:90::-;3650:7;3693:5;3686:13;3679:21;3668:32;;3616:90;;;:::o;3712:109::-;3793:21;3808:5;3793:21;:::i;:::-;3788:3;3781:34;3712:109;;:::o;3827:210::-;3914:4;3952:2;3941:9;3937:18;3929:26;;3965:65;4027:1;4016:9;4012:17;4003:6;3965:65;:::i;:::-;3827:210;;;;:::o;4043:329::-;4102:6;4151:2;4139:9;4130:7;4126:23;4122:32;4119:119;;;4157:79;;:::i;:::-;4119:119;4277:1;4302:53;4347:7;4338:6;4327:9;4323:22;4302:53;:::i;:::-;4292:63;;4248:117;4043:329;;;;:::o;4378:60::-;4406:3;4427:5;4420:12;;4378:60;;;:::o;4444:142::-;4494:9;4527:53;4545:34;4554:24;4572:5;4554:24;:::i;:::-;4545:34;:::i;:::-;4527:53;:::i;:::-;4514:66;;4444:142;;;:::o;4592:126::-;4642:9;4675:37;4706:5;4675:37;:::i;:::-;4662:50;;4592:126;;;:::o;4724:153::-;4801:9;4834:37;4865:5;4834:37;:::i;:::-;4821:50;;4724:153;;;:::o;4883:185::-;4997:64;5055:5;4997:64;:::i;:::-;4992:3;4985:77;4883:185;;:::o;5074:276::-;5194:4;5232:2;5221:9;5217:18;5209:26;;5245:98;5340:1;5329:9;5325:17;5316:6;5245:98;:::i;:::-;5074:276;;;;:::o;5356:116::-;5426:21;5441:5;5426:21;:::i;:::-;5419:5;5416:32;5406:60;;5462:1;5459;5452:12;5406:60;5356:116;:::o;5478:133::-;5521:5;5559:6;5546:20;5537:29;;5575:30;5599:5;5575:30;:::i;:::-;5478:133;;;;:::o;5617:468::-;5682:6;5690;5739:2;5727:9;5718:7;5714:23;5710:32;5707:119;;;5745:79;;:::i;:::-;5707:119;5865:1;5890:53;5935:7;5926:6;5915:9;5911:22;5890:53;:::i;:::-;5880:63;;5836:117;5992:2;6018:50;6060:7;6051:6;6040:9;6036:22;6018:50;:::i;:::-;6008:60;;5963:115;5617:468;;;;;:::o;6091:619::-;6168:6;6176;6184;6233:2;6221:9;6212:7;6208:23;6204:32;6201:119;;;6239:79;;:::i;:::-;6201:119;6359:1;6384:53;6429:7;6420:6;6409:9;6405:22;6384:53;:::i;:::-;6374:63;;6330:117;6486:2;6512:53;6557:7;6548:6;6537:9;6533:22;6512:53;:::i;:::-;6502:63;;6457:118;6614:2;6640:53;6685:7;6676:6;6665:9;6661:22;6640:53;:::i;:::-;6630:63;;6585:118;6091:619;;;;;:::o;6716:329::-;6775:6;6824:2;6812:9;6803:7;6799:23;6795:32;6792:119;;;6830:79;;:::i;:::-;6792:119;6950:1;6975:53;7020:7;7011:6;7000:9;6996:22;6975:53;:::i;:::-;6965:63;;6921:117;6716:329;;;;:::o;7051:442::-;7200:4;7238:2;7227:9;7223:18;7215:26;;7251:71;7319:1;7308:9;7304:17;7295:6;7251:71;:::i;:::-;7332:72;7400:2;7389:9;7385:18;7376:6;7332:72;:::i;:::-;7414;7482:2;7471:9;7467:18;7458:6;7414:72;:::i;:::-;7051:442;;;;;;:::o;7499:474::-;7567:6;7575;7624:2;7612:9;7603:7;7599:23;7595:32;7592:119;;;7630:79;;:::i;:::-;7592:119;7750:1;7775:53;7820:7;7811:6;7800:9;7796:22;7775:53;:::i;:::-;7765:63;;7721:117;7877:2;7903:53;7948:7;7939:6;7928:9;7924:22;7903:53;:::i;:::-;7893:63;;7848:118;7499:474;;;;;:::o;7979:182::-;8119:34;8115:1;8107:6;8103:14;8096:58;7979:182;:::o;8167:366::-;8309:3;8330:67;8394:2;8389:3;8330:67;:::i;:::-;8323:74;;8406:93;8495:3;8406:93;:::i;:::-;8524:2;8519:3;8515:12;8508:19;;8167:366;;;:::o;8539:419::-;8705:4;8743:2;8732:9;8728:18;8720:26;;8792:9;8786:4;8782:20;8778:1;8767:9;8763:17;8756:47;8820:131;8946:4;8820:131;:::i;:::-;8812:139;;8539:419;;;:::o;8964:143::-;9021:5;9052:6;9046:13;9037:22;;9068:33;9095:5;9068:33;:::i;:::-;8964:143;;;;:::o;9113:351::-;9183:6;9232:2;9220:9;9211:7;9207:23;9203:32;9200:119;;;9238:79;;:::i;:::-;9200:119;9358:1;9383:64;9439:7;9430:6;9419:9;9415:22;9383:64;:::i;:::-;9373:74;;9329:128;9113:351;;;;:::o;9470:237::-;9610:34;9606:1;9598:6;9594:14;9587:58;9679:20;9674:2;9666:6;9662:15;9655:45;9470:237;:::o;9713:366::-;9855:3;9876:67;9940:2;9935:3;9876:67;:::i;:::-;9869:74;;9952:93;10041:3;9952:93;:::i;:::-;10070:2;10065:3;10061:12;10054:19;;9713:366;;;:::o;10085:419::-;10251:4;10289:2;10278:9;10274:18;10266:26;;10338:9;10332:4;10328:20;10324:1;10313:9;10309:17;10302:47;10366:131;10492:4;10366:131;:::i;:::-;10358:139;;10085:419;;;:::o;10510:332::-;10631:4;10669:2;10658:9;10654:18;10646:26;;10682:71;10750:1;10739:9;10735:17;10726:6;10682:71;:::i;:::-;10763:72;10831:2;10820:9;10816:18;10807:6;10763:72;:::i;:::-;10510:332;;;;;:::o;10848:137::-;10902:5;10933:6;10927:13;10918:22;;10949:30;10973:5;10949:30;:::i;:::-;10848:137;;;;:::o;10991:345::-;11058:6;11107:2;11095:9;11086:7;11082:23;11078:32;11075:119;;;11113:79;;:::i;:::-;11075:119;11233:1;11258:61;11311:7;11302:6;11291:9;11287:22;11258:61;:::i;:::-;11248:71;;11204:125;10991:345;;;;:::o;11342:180::-;11390:77;11387:1;11380:88;11487:4;11484:1;11477:15;11511:4;11508:1;11501:15;11528:320;11572:6;11609:1;11603:4;11599:12;11589:22;;11656:1;11650:4;11646:12;11677:18;11667:81;;11733:4;11725:6;11721:17;11711:27;;11667:81;11795:2;11787:6;11784:14;11764:18;11761:38;11758:84;;11814:18;;:::i;:::-;11758:84;11579:269;11528:320;;;:::o;11854:162::-;11994:14;11990:1;11982:6;11978:14;11971:38;11854:162;:::o;12022:366::-;12164:3;12185:67;12249:2;12244:3;12185:67;:::i;:::-;12178:74;;12261:93;12350:3;12261:93;:::i;:::-;12379:2;12374:3;12370:12;12363:19;;12022:366;;;:::o;12394:419::-;12560:4;12598:2;12587:9;12583:18;12575:26;;12647:9;12641:4;12637:20;12633:1;12622:9;12618:17;12611:47;12675:131;12801:4;12675:131;:::i;:::-;12667:139;;12394:419;;;:::o;12819:114::-;12856:7;12896:30;12889:5;12885:42;12874:53;;12819:114;;;:::o;12939:122::-;13012:24;13030:5;13012:24;:::i;:::-;13005:5;13002:35;12992:63;;13051:1;13048;13041:12;12992:63;12939:122;:::o;13067:143::-;13124:5;13155:6;13149:13;13140:22;;13171:33;13198:5;13171:33;:::i;:::-;13067:143;;;;:::o;13216:93::-;13252:7;13292:10;13285:5;13281:22;13270:33;;13216:93;;;:::o;13315:120::-;13387:23;13404:5;13387:23;:::i;:::-;13380:5;13377:34;13367:62;;13425:1;13422;13415:12;13367:62;13315:120;:::o;13441:141::-;13497:5;13528:6;13522:13;13513:22;;13544:32;13570:5;13544:32;:::i;:::-;13441:141;;;;:::o;13588:661::-;13675:6;13683;13691;13740:2;13728:9;13719:7;13715:23;13711:32;13708:119;;;13746:79;;:::i;:::-;13708:119;13866:1;13891:64;13947:7;13938:6;13927:9;13923:22;13891:64;:::i;:::-;13881:74;;13837:128;14004:2;14030:64;14086:7;14077:6;14066:9;14062:22;14030:64;:::i;:::-;14020:74;;13975:129;14143:2;14169:63;14224:7;14215:6;14204:9;14200:22;14169:63;:::i;:::-;14159:73;;14114:128;13588:661;;;;;:::o;14255:225::-;14395:34;14391:1;14383:6;14379:14;14372:58;14464:8;14459:2;14451:6;14447:15;14440:33;14255:225;:::o;14486:366::-;14628:3;14649:67;14713:2;14708:3;14649:67;:::i;:::-;14642:74;;14725:93;14814:3;14725:93;:::i;:::-;14843:2;14838:3;14834:12;14827:19;;14486:366;;;:::o;14858:419::-;15024:4;15062:2;15051:9;15047:18;15039:26;;15111:9;15105:4;15101:20;15097:1;15086:9;15082:17;15075:47;15139:131;15265:4;15139:131;:::i;:::-;15131:139;;14858:419;;;:::o;15283:223::-;15423:34;15419:1;15411:6;15407:14;15400:58;15492:6;15487:2;15479:6;15475:15;15468:31;15283:223;:::o;15512:366::-;15654:3;15675:67;15739:2;15734:3;15675:67;:::i;:::-;15668:74;;15751:93;15840:3;15751:93;:::i;:::-;15869:2;15864:3;15860:12;15853:19;;15512:366;;;:::o;15884:419::-;16050:4;16088:2;16077:9;16073:18;16065:26;;16137:9;16131:4;16127:20;16123:1;16112:9;16108:17;16101:47;16165:131;16291:4;16165:131;:::i;:::-;16157:139;;15884:419;;;:::o;16309:221::-;16449:34;16445:1;16437:6;16433:14;16426:58;16518:4;16513:2;16505:6;16501:15;16494:29;16309:221;:::o;16536:366::-;16678:3;16699:67;16763:2;16758:3;16699:67;:::i;:::-;16692:74;;16775:93;16864:3;16775:93;:::i;:::-;16893:2;16888:3;16884:12;16877:19;;16536:366;;;:::o;16908:419::-;17074:4;17112:2;17101:9;17097:18;17089:26;;17161:9;17155:4;17151:20;17147:1;17136:9;17132:17;17125:47;17189:131;17315:4;17189:131;:::i;:::-;17181:139;;16908:419;;;:::o;17333:224::-;17473:34;17469:1;17461:6;17457:14;17450:58;17542:7;17537:2;17529:6;17525:15;17518:32;17333:224;:::o;17563:366::-;17705:3;17726:67;17790:2;17785:3;17726:67;:::i;:::-;17719:74;;17802:93;17891:3;17802:93;:::i;:::-;17920:2;17915:3;17911:12;17904:19;;17563:366;;;:::o;17935:419::-;18101:4;18139:2;18128:9;18124:18;18116:26;;18188:9;18182:4;18178:20;18174:1;18163:9;18159:17;18152:47;18216:131;18342:4;18216:131;:::i;:::-;18208:139;;17935:419;;;:::o;18360:222::-;18500:34;18496:1;18488:6;18484:14;18477:58;18569:5;18564:2;18556:6;18552:15;18545:30;18360:222;:::o;18588:366::-;18730:3;18751:67;18815:2;18810:3;18751:67;:::i;:::-;18744:74;;18827:93;18916:3;18827:93;:::i;:::-;18945:2;18940:3;18936:12;18929:19;;18588:366;;;:::o;18960:419::-;19126:4;19164:2;19153:9;19149:18;19141:26;;19213:9;19207:4;19203:20;19199:1;19188:9;19184:17;19177:47;19241:131;19367:4;19241:131;:::i;:::-;19233:139;;18960:419;;;:::o;19385:180::-;19433:77;19430:1;19423:88;19530:4;19527:1;19520:15;19554:4;19551:1;19544:15;19571:191;19611:3;19630:20;19648:1;19630:20;:::i;:::-;19625:25;;19664:20;19682:1;19664:20;:::i;:::-;19659:25;;19707:1;19704;19700:9;19693:16;;19728:3;19725:1;19722:10;19719:36;;;19735:18;;:::i;:::-;19719:36;19571:191;;;;:::o;19768:157::-;19908:9;19904:1;19896:6;19892:14;19885:33;19768:157;:::o;19931:365::-;20073:3;20094:66;20158:1;20153:3;20094:66;:::i;:::-;20087:73;;20169:93;20258:3;20169:93;:::i;:::-;20287:2;20282:3;20278:12;20271:19;;19931:365;;;:::o;20302:419::-;20468:4;20506:2;20495:9;20491:18;20483:26;;20555:9;20549:4;20545:20;20541:1;20530:9;20526:17;20519:47;20583:131;20709:4;20583:131;:::i;:::-;20575:139;;20302:419;;;:::o;20727:194::-;20767:4;20787:20;20805:1;20787:20;:::i;:::-;20782:25;;20821:20;20839:1;20821:20;:::i;:::-;20816:25;;20865:1;20862;20858:9;20850:17;;20889:1;20883:4;20880:11;20877:37;;;20894:18;;:::i;:::-;20877:37;20727:194;;;;:::o;20927:157::-;21067:9;21063:1;21055:6;21051:14;21044:33;20927:157;:::o;21090:365::-;21232:3;21253:66;21317:1;21312:3;21253:66;:::i;:::-;21246:73;;21328:93;21417:3;21328:93;:::i;:::-;21446:2;21441:3;21437:12;21430:19;;21090:365;;;:::o;21461:419::-;21627:4;21665:2;21654:9;21650:18;21642:26;;21714:9;21708:4;21704:20;21700:1;21689:9;21685:17;21678:47;21742:131;21868:4;21742:131;:::i;:::-;21734:139;;21461:419;;;:::o;21886:167::-;22026:19;22022:1;22014:6;22010:14;22003:43;21886:167;:::o;22059:366::-;22201:3;22222:67;22286:2;22281:3;22222:67;:::i;:::-;22215:74;;22298:93;22387:3;22298:93;:::i;:::-;22416:2;22411:3;22407:12;22400:19;;22059:366;;;:::o;22431:419::-;22597:4;22635:2;22624:9;22620:18;22612:26;;22684:9;22678:4;22674:20;22670:1;22659:9;22655:17;22648:47;22712:131;22838:4;22712:131;:::i;:::-;22704:139;;22431:419;;;:::o;22856:332::-;22977:4;23015:2;23004:9;23000:18;22992:26;;23028:71;23096:1;23085:9;23081:17;23072:6;23028:71;:::i;:::-;23109:72;23177:2;23166:9;23162:18;23153:6;23109:72;:::i;:::-;22856:332;;;;;:::o;23194:160::-;23334:12;23330:1;23322:6;23318:14;23311:36;23194:160;:::o;23360:366::-;23502:3;23523:67;23587:2;23582:3;23523:67;:::i;:::-;23516:74;;23599:93;23688:3;23599:93;:::i;:::-;23717:2;23712:3;23708:12;23701:19;;23360:366;;;:::o;23732:419::-;23898:4;23936:2;23925:9;23921:18;23913:26;;23985:9;23979:4;23975:20;23971:1;23960:9;23956:17;23949:47;24013:131;24139:4;24013:131;:::i;:::-;24005:139;;23732:419;;;:::o;24157:177::-;24297:29;24293:1;24285:6;24281:14;24274:53;24157:177;:::o;24340:366::-;24482:3;24503:67;24567:2;24562:3;24503:67;:::i;:::-;24496:74;;24579:93;24668:3;24579:93;:::i;:::-;24697:2;24692:3;24688:12;24681:19;;24340:366;;;:::o;24712:419::-;24878:4;24916:2;24905:9;24901:18;24893:26;;24965:9;24959:4;24955:20;24951:1;24940:9;24936:17;24929:47;24993:131;25119:4;24993:131;:::i;:::-;24985:139;;24712:419;;;:::o;25137:410::-;25177:7;25200:20;25218:1;25200:20;:::i;:::-;25195:25;;25234:20;25252:1;25234:20;:::i;:::-;25229:25;;25289:1;25286;25282:9;25311:30;25329:11;25311:30;:::i;:::-;25300:41;;25490:1;25481:7;25477:15;25474:1;25471:22;25451:1;25444:9;25424:83;25401:139;;25520:18;;:::i;:::-;25401:139;25185:362;25137:410;;;;:::o;25553:180::-;25601:77;25598:1;25591:88;25698:4;25695:1;25688:15;25722:4;25719:1;25712:15;25739:185;25779:1;25796:20;25814:1;25796:20;:::i;:::-;25791:25;;25830:20;25848:1;25830:20;:::i;:::-;25825:25;;25869:1;25859:35;;25874:18;;:::i;:::-;25859:35;25916:1;25913;25909:9;25904:14;;25739:185;;;;:::o;25930:220::-;26070:34;26066:1;26058:6;26054:14;26047:58;26139:3;26134:2;26126:6;26122:15;26115:28;25930:220;:::o;26156:366::-;26298:3;26319:67;26383:2;26378:3;26319:67;:::i;:::-;26312:74;;26395:93;26484:3;26395:93;:::i;:::-;26513:2;26508:3;26504:12;26497:19;;26156:366;;;:::o;26528:419::-;26694:4;26732:2;26721:9;26717:18;26709:26;;26781:9;26775:4;26771:20;26767:1;26756:9;26752:17;26745:47;26809:131;26935:4;26809:131;:::i;:::-;26801:139;;26528:419;;;:::o;26953:180::-;27001:77;26998:1;26991:88;27098:4;27095:1;27088:15;27122:4;27119:1;27112:15;27139:180;27187:77;27184:1;27177:88;27284:4;27281:1;27274:15;27308:4;27305:1;27298:15;27325:85;27370:7;27399:5;27388:16;;27325:85;;;:::o;27416:158::-;27474:9;27507:61;27525:42;27534:32;27560:5;27534:32;:::i;:::-;27525:42;:::i;:::-;27507:61;:::i;:::-;27494:74;;27416:158;;;:::o;27580:147::-;27675:45;27714:5;27675:45;:::i;:::-;27670:3;27663:58;27580:147;;:::o;27733:114::-;27800:6;27834:5;27828:12;27818:22;;27733:114;;;:::o;27853:184::-;27952:11;27986:6;27981:3;27974:19;28026:4;28021:3;28017:14;28002:29;;27853:184;;;;:::o;28043:132::-;28110:4;28133:3;28125:11;;28163:4;28158:3;28154:14;28146:22;;28043:132;;;:::o;28181:108::-;28258:24;28276:5;28258:24;:::i;:::-;28253:3;28246:37;28181:108;;:::o;28295:179::-;28364:10;28385:46;28427:3;28419:6;28385:46;:::i;:::-;28463:4;28458:3;28454:14;28440:28;;28295:179;;;;:::o;28480:113::-;28550:4;28582;28577:3;28573:14;28565:22;;28480:113;;;:::o;28629:732::-;28748:3;28777:54;28825:5;28777:54;:::i;:::-;28847:86;28926:6;28921:3;28847:86;:::i;:::-;28840:93;;28957:56;29007:5;28957:56;:::i;:::-;29036:7;29067:1;29052:284;29077:6;29074:1;29071:13;29052:284;;;29153:6;29147:13;29180:63;29239:3;29224:13;29180:63;:::i;:::-;29173:70;;29266:60;29319:6;29266:60;:::i;:::-;29256:70;;29112:224;29099:1;29096;29092:9;29087:14;;29052:284;;;29056:14;29352:3;29345:10;;28753:608;;;28629:732;;;;:::o;29367:831::-;29630:4;29668:3;29657:9;29653:19;29645:27;;29682:71;29750:1;29739:9;29735:17;29726:6;29682:71;:::i;:::-;29763:80;29839:2;29828:9;29824:18;29815:6;29763:80;:::i;:::-;29890:9;29884:4;29880:20;29875:2;29864:9;29860:18;29853:48;29918:108;30021:4;30012:6;29918:108;:::i;:::-;29910:116;;30036:72;30104:2;30093:9;30089:18;30080:6;30036:72;:::i;:::-;30118:73;30186:3;30175:9;30171:19;30162:6;30118:73;:::i;:::-;29367:831;;;;;;;;:::o;30204:143::-;30261:5;30292:6;30286:13;30277:22;;30308:33;30335:5;30308:33;:::i;:::-;30204:143;;;;:::o;30353:351::-;30423:6;30472:2;30460:9;30451:7;30447:23;30443:32;30440:119;;;30478:79;;:::i;:::-;30440:119;30598:1;30623:64;30679:7;30670:6;30659:9;30655:22;30623:64;:::i;:::-;30613:74;;30569:128;30353:351;;;;:::o
Swarm Source
ipfs://9b75b8ff95505b5e32394e6b5d26305b237cfd3be96411d0c8b6947f403f924a
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)