Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 96 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 17352150 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352143 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352137 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352130 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352121 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352115 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352108 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352101 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352090 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352075 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352068 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352061 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352054 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352047 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352040 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352032 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352025 | 1010 days ago | IN | 0 ETH | 0.00339557 | ||||
| Transfer | 17352018 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352013 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17352006 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17351999 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17351992 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17351986 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17351980 | 1010 days ago | IN | 0 ETH | 0.00339588 | ||||
| Transfer | 17351973 | 1010 days ago | IN | 0 ETH | 0.00339557 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Add Liquidity ET... | 15849225 | 1221 days ago | 0.00011312 ETH | ||||
| Transfer | 15849225 | 1221 days ago | 0.00090499 ETH | ||||
| Transfer | 15849225 | 1221 days ago | 0.00101811 ETH | ||||
| Add Liquidity ET... | 15845130 | 1222 days ago | 0.00011804 ETH | ||||
| Transfer | 15845130 | 1222 days ago | 0.00094438 ETH | ||||
| Transfer | 15845130 | 1222 days ago | 0.00106243 ETH | ||||
| Add Liquidity ET... | 15845130 | 1222 days ago | 0.0001233 ETH | ||||
| Transfer | 15845130 | 1222 days ago | 0.00098641 ETH | ||||
| Transfer | 15845130 | 1222 days ago | 0.00110971 ETH | ||||
| Add Liquidity ET... | 15845129 | 1222 days ago | 0.00012891 ETH | ||||
| Transfer | 15845129 | 1222 days ago | 0.00103132 ETH | ||||
| Transfer | 15845129 | 1222 days ago | 0.00116023 ETH | ||||
| Add Liquidity ET... | 15845129 | 1222 days ago | 0.00013489 ETH | ||||
| Transfer | 15845129 | 1222 days ago | 0.00107916 ETH | ||||
| Transfer | 15845129 | 1222 days ago | 0.00121405 ETH | ||||
| Add Liquidity ET... | 15844269 | 1222 days ago | 0.00000001 ETH | ||||
| Transfer | 15844269 | 1222 days ago | 0.00000008 ETH | ||||
| Transfer | 15844269 | 1222 days ago | 0.00000009 ETH | ||||
| Add Liquidity ET... | 15843965 | 1222 days ago | 0.00037895 ETH | ||||
| Transfer | 15843965 | 1222 days ago | 0.00303161 ETH | ||||
| Transfer | 15843965 | 1222 days ago | 0.00341056 ETH | ||||
| Add Liquidity ET... | 15843926 | 1222 days ago | 0.00015378 ETH | ||||
| Transfer | 15843926 | 1222 days ago | 0.00123027 ETH | ||||
| Transfer | 15843926 | 1222 days ago | 0.00138405 ETH | ||||
| Add Liquidity ET... | 15843926 | 1222 days ago | 0.00016164 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ElonTo
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-10-28
*/
pragma solidity ^0.8.7;
// SPDX-License-Identifier: UNLICENSED
library Address {
/**
*
*/
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
abstract contract Context {
function _msgSender() internal view returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view returns (bytes memory) {
this;
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
contract ElonTo is IERC20, Ownable {
using Address for address;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
string constant _name = "Elon Takeover";
string constant _symbol = "ElonTo";
uint8 constant _decimals = 9;
uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
uint256 _maxBuyTxAmount = (_totalSupply * 5) / 100;
uint256 _maxSellTxAmount = (_totalSupply * 2) / 100;
uint256 _maxWalletSize = (_totalSupply * 5) / 100;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => uint256) public lastSell;
mapping (address => uint256) public lastBuy;
mapping (address => bool) isFeeExempt;
mapping (address => bool) isTxLimitExempt;
mapping (address => bool) liquidityCreator;
uint256 marketingFee = 400;
uint256 liquidityFee = 100;
uint256 totalFee = marketingFee + liquidityFee;
uint256 sellBias = 0;
uint256 feeDenominator = 10000;
address payable public liquidityFeeReceiver = payable(0xe26b64dFA4C8512E5567efA824E6097c992ade9d);
address payable public marketingFeeReceiver = payable(0xe26b64dFA4C8512E5567efA824E6097c992ade9d);
IDEXRouter public router;
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
mapping (address => bool) liquidityPools;
mapping (address => uint256) public protected;
bool protectionEnabled = true;
bool protectionDisabled = false;
uint256 protectionLimit;
uint256 public protectionCount;
uint256 protectionTimer;
address public pair;
uint256 public launchedAt;
uint256 public launchedTime;
uint256 public deadBlocks;
bool startBullRun = false;
bool pauseDisabled = false;
uint256 public rateLimit = 2;
bool public swapEnabled = false;
bool processEnabled = true;
uint256 public swapThreshold = _totalSupply / 10;
uint256 public swapMinimum = _totalSupply / 10000;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
mapping (address => bool) teamMember;
modifier onlyTeam() {
require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member");
_;
}
event ProtectedWallet(address, address, uint256, uint8);
constructor () {
router = IDEXRouter(routerAddress);
pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
liquidityPools[pair] = true;
_allowances[owner()][routerAddress] = type(uint256).max;
_allowances[address(this)][routerAddress] = type(uint256).max;
isFeeExempt[owner()] = true;
liquidityCreator[owner()] = true;
isTxLimitExempt[address(this)] = true;
isTxLimitExempt[owner()] = true;
isTxLimitExempt[routerAddress] = true;
isTxLimitExempt[DEAD] = true;
_balances[owner()] = _totalSupply;
emit Transfer(address(0), owner(), _totalSupply);
}
receive() external payable { }
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function decimals() external pure returns (uint8) { return _decimals; }
function symbol() external pure returns (string memory) { return _symbol; }
function name() external pure returns (string memory) { return _name; }
function getOwner() external view returns (address) { return owner(); }
function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function setTeamMember(address _team, bool _enabled) external onlyOwner {
teamMember[_team] = _enabled;
}
function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
require(addresses.length > 0 && amounts.length == addresses.length);
address from = msg.sender;
for (uint i = 0; i < addresses.length; i++) {
if(!liquidityPools[addresses[i]] && !liquidityCreator[addresses[i]]) {
_basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
}
}
}
function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
uint256 amountETH = address(this).balance;
payable(adr).transfer((amountETH * amountPercentage) / 100);
}
function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam {
require(!startBullRun && _deadBlocks < 10);
deadBlocks = _deadBlocks;
startBullRun = true;
launchedAt = block.number;
protectionTimer = block.timestamp + _protection;
protectionLimit = _limit * (10 ** _decimals);
}
function pauseTrading() external onlyTeam {
require(!pauseDisabled);
startBullRun = false;
}
function disablePause() external onlyTeam {
pauseDisabled = true;
startBullRun = true;
}
function setProtection(bool _protect, uint256 _addTime) external onlyTeam {
require(!protectionDisabled);
protectionEnabled = _protect;
require(_addTime < 1 days);
protectionTimer += _addTime;
}
function disableProtection() external onlyTeam {
protectionDisabled = true;
protectionEnabled = false;
}
function protectWallet(address[] calldata _wallets, bool _protect) external onlyTeam {
if (_protect) {
require(protectionEnabled);
}
for (uint i = 0; i < _wallets.length; i++) {
if (_protect) {
protectionCount++;
emit ProtectedWallet(tx.origin, _wallets[i], block.number, 2);
}
else {
if (protected[_wallets[i]] != 0)
protectionCount--;
}
protected[_wallets[i]] = _protect ? block.number : 0;
}
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
require(sender != address(0), "BEP20: transfer from 0x0");
require(recipient != address(0), "BEP20: transfer to 0x0");
require(amount > 0, "Amount must be > zero");
require(_balances[sender] >= amount, "Insufficient balance");
if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); }
if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); }
checkTxLimit(sender, recipient, amount);
if (!liquidityPools[recipient] && recipient != DEAD) {
if (!isTxLimitExempt[recipient]) {
checkWalletLimit(recipient, amount);
}
}
if(protectionEnabled && protectionTimer > block.timestamp) {
if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) {
protected[recipient] = block.number;
protectionCount++;
emit ProtectedWallet(tx.origin, recipient, block.number, 0);
}
}
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
_balances[sender] = _balances[sender] - amount;
uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount;
if(shouldSwapBack(recipient)){ if (amount > 0) swapBack(amount); }
_balances[recipient] = _balances[recipient] + amountReceived;
emit Transfer(sender, recipient, amountReceived);
return true;
}
function launched() internal view returns (bool) {
return launchedAt != 0;
}
function launch() internal {
launchedAt = block.number;
launchedTime = block.timestamp;
swapEnabled = true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender] - amount;
_balances[recipient] = _balances[recipient] + amount;
emit Transfer(sender, recipient, amount);
return true;
}
function checkWalletLimit(address recipient, uint256 amount) internal view {
uint256 walletLimit = _maxWalletSize;
require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
}
function checkTxLimit(address sender, address recipient, uint256 amount) internal {
require(isTxLimitExempt[sender] || amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
require(isTxLimitExempt[sender] || lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");
if (protected[sender] != 0){
require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support.");
lastSell[sender] = block.number;
}
if (liquidityPools[recipient]) {
lastSell[sender] = block.number;
} else if (shouldTakeFee(sender)) {
if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) {
protected[recipient] = block.number;
emit ProtectedWallet(tx.origin, recipient, block.number, 1);
}
lastBuy[recipient] = block.number;
if (tx.origin != recipient)
lastBuy[tx.origin] = block.number;
}
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !isFeeExempt[sender];
}
function getTotalFee(bool selling) public view returns (uint256) {
if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; }
if (selling) return totalFee + sellBias;
return totalFee - sellBias;
}
function takeFee(address recipient, uint256 amount) internal returns (uint256) {
bool selling = liquidityPools[recipient];
uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;
_balances[address(this)] += feeAmount;
return amount - feeAmount;
}
function shouldSwapBack(address recipient) internal view returns (bool) {
return !liquidityPools[msg.sender]
&& !inSwap
&& swapEnabled
&& liquidityPools[recipient]
&& _balances[address(this)] >= swapMinimum;
}
function swapBack(uint256 amount) internal swapping {
uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;
if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)];
uint256 amountToLiquify = (amountToSwap * liquidityFee / 2) / totalFee;
amountToSwap -= amountToLiquify;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
uint256 balanceBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountBNB = address(this).balance - balanceBefore;
uint256 totalBNBFee = totalFee - (liquidityFee / 2);
uint256 amountBNBLiquidity = (amountBNB * liquidityFee / 2) / totalBNBFee;
uint256 amountBNBMarketing = amountBNB - amountBNBLiquidity;
if (amountBNBMarketing > 0)
marketingFeeReceiver.transfer(amountBNBMarketing);
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountBNBLiquidity}(
address(this),
amountToLiquify,
0,
0,
liquidityFeeReceiver,
block.timestamp
);
}
emit FundsDistributed(amountBNBMarketing, amountBNBLiquidity, amountToLiquify);
}
function addLiquidityPool(address lp, bool isPool) external onlyOwner {
require(lp != pair, "Can't alter current liquidity pair");
liquidityPools[lp] = isPool;
}
function setRateLimit(uint256 rate) external onlyOwner {
require(rate <= 60 seconds);
rateLimit = rate;
}
function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
_maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
_maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
}
function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
require(numerator > 0 && divisor > 0 && divisor <= 10000);
_maxWalletSize = (_totalSupply * numerator) / divisor;
}
function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
}
function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
isTxLimitExempt[holder] = exempt;
}
function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _sellBias, uint256 _feeDenominator) external onlyOwner {
liquidityFee = _liquidityFee;
marketingFee = _marketingFee;
totalFee = _marketingFee + _liquidityFee;
sellBias = _sellBias;
feeDenominator = _feeDenominator;
require(totalFee < feeDenominator / 2);
}
function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
liquidityFeeReceiver = payable(_liquidityFeeReceiver);
marketingFeeReceiver = payable(_marketingFeeReceiver);
}
function setSwapBackSettings(bool _enabled, bool _processEnabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
require(_denominator > 0);
swapEnabled = _enabled;
processEnabled = _processEnabled;
swapThreshold = _totalSupply / _denominator;
swapMinimum = _swapMinimum * (10 ** _decimals);
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
}
event FundsDistributed(uint256 marketingBNB, uint256 liquidityBNB, uint256 liquidityTokens);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"ProtectedWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disablePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_protect","type":"bool"}],"name":"protectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellBias","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_protect","type":"bool"},{"internalType":"uint256","name":"_addTime","type":"uint256"}],"name":"setProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000d81565b633b9aca00620000aa919062000ebe565b60035560646005600354620000c0919062000ebe565b620000cc919062000cee565b60045560646002600354620000e2919062000ebe565b620000ee919062000cee565b6005556064600560035462000104919062000ebe565b62000110919062000cee565b600655610190600e556064600f55600f54600e5462000130919062000c91565b601055600060115561271060125573e26b64dfa4c8512e5567efa824e6097c992ade9d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e26b64dfa4c8512e5567efa824e6097c992ade9d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000602160006101000a81548160ff0219169083151502179055506000602160016101000a81548160ff02191690831515021790555060026022556000602360006101000a81548160ff0219169083151502179055506001602360016101000a81548160ff021916908315150217905550600a600354620002f5919062000cee565b6024556127106003546200030a919062000cee565b6025553480156200031a57600080fd5b5060006200032d62000bab60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200049757600080fd5b505afa158015620004ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d2919062000bf3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200055657600080fd5b505afa1580156200056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000591919062000bf3565b306040518363ffffffff1660e01b8152600401620005b192919062000c47565b602060405180830381600087803b158015620005cc57600080fd5b505af1158015620005e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000607919062000bf3565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60086000620006f662000bb360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60006200086c62000bb360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000620008d362000bb360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200099262000bb360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003546007600062000aee62000bb360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000b3c62000bb360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000b9d919062000c74565b60405180910390a362000ff4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000bed8162000fda565b92915050565b60006020828403121562000c0c5762000c0b62000fc8565b5b600062000c1c8482850162000bdc565b91505092915050565b62000c308162000f1f565b82525050565b62000c418162000f53565b82525050565b600060408201905062000c5e600083018562000c25565b62000c6d602083018462000c25565b9392505050565b600060208201905062000c8b600083018462000c36565b92915050565b600062000c9e8262000f53565b915062000cab8362000f53565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ce35762000ce262000f6a565b5b828201905092915050565b600062000cfb8262000f53565b915062000d088362000f53565b92508262000d1b5762000d1a62000f99565b5b828204905092915050565b6000808291508390505b600185111562000d785780860481111562000d505762000d4f62000f6a565b5b600185161562000d605780820291505b808102905062000d708562000fcd565b945062000d30565b94509492505050565b600062000d8e8262000f53565b915062000d9b8362000f5d565b925062000dca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dd2565b905092915050565b60008262000de4576001905062000eb7565b8162000df4576000905062000eb7565b816001811462000e0d576002811462000e185762000e4e565b600191505062000eb7565b60ff84111562000e2d5762000e2c62000f6a565b5b8360020a91508482111562000e475762000e4662000f6a565b5b5062000eb7565b5060208310610133831016604e8410600b841016171562000e885782820a90508381111562000e825762000e8162000f6a565b5b62000eb7565b62000e97848484600162000d26565b9250905081840481111562000eb15762000eb062000f6a565b5b81810290505b9392505050565b600062000ecb8262000f53565b915062000ed88362000f53565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f145762000f1362000f6a565b5b828202905092915050565b600062000f2c8262000f33565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000fe58162000f1f565b811462000ff157600080fd5b50565b6159f480620010046000396000f3fe6080604052600436106103035760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610b65578063f8821a6214610b8e578063f887ea4014610bb9578063fabb0b4f14610be45761030a565b8063e96fada214610ad4578063f1f3bca314610aff578063f2fde38b14610b3c5761030a565b8063bf56b371146109b2578063bfa21d6a146109dd578063c1adf7bc14610a08578063c287184e14610a45578063d686014214610a6e578063dd62ed3e14610a975761030a565b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b31146108f6578063a9059cbb14610921578063abe57e701461095e578063bafe446b146109875761030a565b806395d89b41146108775780639b02c402146108a2578063a4b45c00146108cd5761030a565b80636f4ce428146107675780636fcba377146107a457806370a08231146107cd578063715018a61461080a578063893d20e8146108215780638da5cb5b1461084c5761030a565b8063492a937b1161024f578063584f969a1161020857806363a803e1116101e257806363a803e1146106bf578063658d4b7f146106ea57806367243482146107135780636ddd17131461073c5761030a565b8063584f969a1461065457806360bba03d1461066b57806361e08e72146106945761030a565b8063492a937b14610548578063507139351461057157806354a1dfc91461059a57806356a227f2146105c3578063571ac8b0146105ec5780635804f1e4146106295761030a565b8063234e9494116102bc578063313ce56711610296578063313ce567146104a057806334848b9a146104cb578063421dd7c7146104f457806346d7edaa1461050b5761030a565b8063234e94941461040d57806323b872dd146104385780632b112e49146104755761030a565b80630445b6671461030f57806306fdde031461033a578063095db78f14610365578063095ea7b31461038e5780631031e36e146103cb57806318160ddd146103e25761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c0f565b6040516103319190615071565b60405180910390f35b34801561034657600080fd5b5061034f610c15565b60405161035c9190614e8f565b60405180910390f35b34801561037157600080fd5b5061038c600480360381019061038791906146b8565b610c52565b005b34801561039a57600080fd5b506103b560048036038101906103b091906145f7565b610ef1565b6040516103c29190614e59565b60405180910390f35b3480156103d757600080fd5b506103e0610fe3565b005b3480156103ee57600080fd5b506103f76110ea565b6040516104049190615071565b60405180910390f35b34801561041957600080fd5b506104226110f4565b60405161042f9190615071565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190614564565b611116565b60405161046c9190614e59565b60405180910390f35b34801561048157600080fd5b5061048a6112d8565b6040516104979190615071565b60405180910390f35b3480156104ac57600080fd5b506104b561134c565b6040516104c2919061511d565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190614899565b611355565b005b34801561050057600080fd5b506105096114aa565b005b34801561051757600080fd5b50610532600480360381019061052d91906144ca565b6115b2565b60405161053f9190615071565b60405180910390f35b34801561055457600080fd5b5061056f600480360381019061056a91906145b7565b6115ca565b005b34801561057d57600080fd5b5061059860048036038101906105939190614899565b61174b565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190614745565b611856565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190614819565b611965565b005b3480156105f857600080fd5b50610613600480360381019061060e91906144ca565b611a9d565b6040516106209190614e59565b60405180910390f35b34801561063557600080fd5b5061063e611ad0565b60405161064b9190615071565b60405180910390f35b34801561066057600080fd5b50610669611ad6565b005b34801561067757600080fd5b50610692600480360381019061068d91906145b7565b611bde565b005b3480156106a057600080fd5b506106a9611cce565b6040516106b69190615071565b60405180910390f35b3480156106cb57600080fd5b506106d4611cd4565b6040516106e19190615071565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c91906145b7565b611cf6565b005b34801561071f57600080fd5b5061073a60048036038101906107359190614637565b611de6565b005b34801561074857600080fd5b50610751612026565b60405161075e9190614e59565b60405180910390f35b34801561077357600080fd5b5061078e600480360381019061078991906144ca565b612039565b60405161079b9190615071565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c6919061493f565b612051565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906144ca565b612136565b6040516108019190615071565b60405180910390f35b34801561081657600080fd5b5061081f61217f565b005b34801561082d57600080fd5b506108366122d2565b6040516108439190614cf3565b60405180910390f35b34801561085857600080fd5b506108616122e1565b60405161086e9190614cf3565b60405180910390f35b34801561088357600080fd5b5061088c61230a565b6040516108999190614e8f565b60405180910390f35b3480156108ae57600080fd5b506108b7612347565b6040516108c49190615071565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef9190614524565b61234d565b005b34801561090257600080fd5b5061090b612468565b6040516109189190614cf3565b60405180910390f35b34801561092d57600080fd5b50610948600480360381019061094391906145f7565b61248e565b6040516109559190614e59565b60405180910390f35b34801561096a57600080fd5b5061098560048036038101906109809190614859565b6124a3565b005b34801561099357600080fd5b5061099c612582565b6040516109a99190615071565b60405180910390f35b3480156109be57600080fd5b506109c76125a4565b6040516109d49190615071565b60405180910390f35b3480156109e957600080fd5b506109f26125aa565b6040516109ff9190614d0e565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a91906144ca565b6125d0565b604051610a3c9190615071565b60405180910390f35b348015610a5157600080fd5b50610a6c6004803603810190610a6791906147ec565b6125e8565b005b348015610a7a57600080fd5b50610a956004803603810190610a9091906147ac565b612695565b005b348015610aa357600080fd5b50610abe6004803603810190610ab99190614524565b6127c5565b604051610acb9190615071565b60405180910390f35b348015610ae057600080fd5b50610ae961284c565b604051610af69190614d0e565b60405180910390f35b348015610b0b57600080fd5b50610b266004803603810190610b219190614718565b612872565b604051610b339190615071565b60405180910390f35b348015610b4857600080fd5b50610b636004803603810190610b5e91906144ca565b6128d5565b005b348015610b7157600080fd5b50610b8c6004803603810190610b8791906145b7565b612a97565b005b348015610b9a57600080fd5b50610ba3612b87565b604051610bb09190615071565b60405180910390f35b348015610bc557600080fd5b50610bce612b8d565b604051610bdb9190614e74565b60405180910390f35b348015610bf057600080fd5b50610bf9612bb3565b604051610c069190615071565b60405180910390f35b60245481565b60606040518060400160405280600d81526020017f456c6f6e2054616b656f76657200000000000000000000000000000000000000815250905090565b60276000610c5e612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610ce35750610cb46122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990614f91565b60405180910390fd5b8015610d4257601960009054906101000a900460ff16610d4157600080fd5b5b60005b83839050811015610eeb578115610dd857601b6000815480929190610d6990615567565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610da357610da261560e565b5b9050602002016020810190610db891906144ca565b436002604051610dcb9493929190614db3565b60405180910390a1610e60565b600060186000868685818110610df157610df061560e565b5b9050602002016020810190610e0691906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e5f57601b6000815480929190610e599061553d565b91905055505b5b81610e6c576000610e6e565b435b60186000868685818110610e8557610e8461560e565b5b9050602002016020810190610e9a91906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610ee390615567565b915050610d45565b50505050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fd19190615071565b60405180910390a36001905092915050565b60276000610fef612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061107457506110456122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90614f91565b60405180910390fd5b602160019054906101000a900460ff16156110cd57600080fd5b6000602160006101000a81548160ff021916908315150217905550565b6000600354905090565b60006009600a6111049190615267565b60055461111191906151e3565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112c45781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124391906153df565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112cf848484612bc1565b90509392505050565b6000611305600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612136565b611330600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612136565b61133a919061518d565b60035461134791906153df565b905090565b60006009905090565b60276000611361612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113e657506113b76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c90614f91565b60405180910390fd5b602160009054906101000a900460ff161580156114425750600a83105b61144b57600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e819055508142611480919061518d565b601c819055506009600a6114949190615267565b8161149f9190615385565b601a81905550505050565b602760006114b6612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061153b575061150c6122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190614f91565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6115d2612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690615011565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790615051565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611753612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d790615011565b60405180910390fd5b6000831180156117f05750600082115b80156117fc5750600081115b801561180a57506127108111155b61181357600080fd5b80836003546118229190615385565b61182c91906151e3565b60048190555080826003546118419190615385565b61184b91906151e3565b600581905550505050565b61185e612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e290615011565b60405180910390fd5b600082116118f857600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff0219169083151502179055508160035461193a91906151e3565b6024819055506009600a61194e9190615267565b816119599190615385565b60258190555050505050565b60276000611971612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119f657506119c76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90614f91565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60648584611a629190615385565b611a6c91906151e3565b9081150290604051600060405180830381858888f19350505050158015611a97573d6000803e3d6000fd5b50505050565b6000611ac9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610ef1565b9050919050565b601f5481565b60276000611ae2612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b675750611b386122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90614f91565b60405180910390fd5b6001602160016101000a81548160ff0219169083151502179055506001602160006101000a81548160ff021916908315150217905550565b611be6612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90615011565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60225481565b60006009600a611ce49190615267565b600654611cf191906151e3565b905090565b611cfe612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290615011565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611dee612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290615011565b60405180910390fd5b600084849050118015611e9357508383905082829050145b611e9c57600080fd5b600033905060005b8585905081101561201e5760176000878784818110611ec657611ec561560e565b5b9050602002016020810190611edb91906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fa15750600d6000878784818110611f4257611f4161560e565b5b9050602002016020810190611f5791906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200b5761200982878784818110611fbd57611fbc61560e565b5b9050602002016020810190611fd291906144ca565b6009600a611fe09190615267565b878786818110611ff357611ff261560e565b5b905060200201356120049190615385565b6133f5565b505b808061201690615567565b915050611ea4565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b612059612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dd90615011565b60405180910390fd5b83600f8190555082600e819055508383612100919061518d565b6010819055508160118190555080601281905550600260125461212391906151e3565b6010541061213057600080fd5b50505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612187612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220b90615011565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006122dc6122e1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f456c6f6e546f0000000000000000000000000000000000000000000000000000815250905090565b601b5481565b612355612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d990615011565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061249b338484612bc1565b905092915050565b6124ab612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252f90615011565b60405180910390fd5b6000821180156125485750600081115b801561255657506127108111155b61255f57600080fd5b808260035461256e9190615385565b61257891906151e3565b6006819055505050565b60006009600a6125929190615267565b60045461259f91906151e3565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b6125f0612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461267d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267490615011565b60405180910390fd5b603c81111561268b57600080fd5b8060228190555050565b602760006126a1612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061272657506126f76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275c90614f91565b60405180910390fd5b601960019054906101000a900460ff161561277f57600080fd5b81601960006101000a81548160ff0219169083151502179055506201518081106127a857600080fd5b80601c60008282546127ba919061518d565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e54612885919061518d565b106128a057600160125461289991906153df565b90506128d0565b81156128bd576011546010546128b6919061518d565b90506128d0565b6011546010546128cd91906153df565b90505b919050565b6128dd612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461296a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296190615011565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190614f31565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a9f612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2390615011565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2990614f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9990614f51565b60405180910390fd5b60008211612ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cdc90614eb1565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5e90614f71565b60405180910390fd5b612d6f613583565b158015612dc55750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e5f57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4d90614fd1565b60405180910390fd5b612e5e613590565b5b602160009054906101000a900460ff16612f5457600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f145750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4a90615031565b60405180910390fd5b5b612f5f8484846135bb565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561306957600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613068576130678383613b78565b5b5b601960009054906101000a900460ff168015613086575042601c54115b156131fc57601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561311057508273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b801561315b57506000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156131fb5743601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b60008154809291906131b790615567565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32844360006040516131f29493929190614d29565b60405180910390a15b5b602660009054906101000a900460ff16156132235761321c8484846133f5565b90506133ee565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461326e91906153df565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006132bc85613c11565b6132c657826132d1565b6132d08484613c68565b5b90506132dc84613d4b565b156132f55760008311156132f4576132f383613e75565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613340919061518d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133e09190615071565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461344291906153df565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134d0919061518d565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135709190615071565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061366f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166136675760055461366b565b6004545b8111155b6136ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136a590614ef1565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613752575043602254600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461374f919061518d565b11155b613791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378890614fb1565b60405180910390fd5b6000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146138d2576009600a6137e69190615267565b601a546137f39190615385565b811115801561384157506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b801561384e575042601c54115b61388d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388490614ff1565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561396d5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b73565b61397683613c11565b15613b7257601960009054906101000a900460ff168015613998575042601c54115b80156139e2575043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015613a2d57506000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15613ab55743601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3283436001604051613aac9493929190614d6e565b60405180910390a15b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613b715743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bcb919061518d565b1115613c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0390614ed1565b60405180910390fd5b505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254613cc883612872565b85613cd39190615385565b613cdd91906151e3565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613d2e919061518d565b925050819055508084613d4191906153df565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613db45750602660009054906101000a900460ff16155b8015613dcc5750602360009054906101000a900460ff165b8015613e215750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015613e6e5750602554600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001602660006101000a81548160ff02191690831515021790555060006024548210613ea357602454613ea5565b815b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613f3157600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006010546002600f5484613f469190615385565b613f5091906151e3565b613f5a91906151e3565b90508082613f6891906153df565b91506000600267ffffffffffffffff811115613f8757613f8661563d565b5b604051908082528060200260200182016040528015613fb55781602001602082028036833780820191505090505b5090503081600081518110613fcd57613fcc61560e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561406f57600080fd5b505afa158015614083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a791906144f7565b816001815181106140bb576140ba61560e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008530426040518663ffffffff1660e01b815260040161415e95949392919061508c565b600060405180830381600087803b15801561417857600080fd5b505af115801561418c573d6000803e3d6000fd5b505050506000814761419e91906153df565b905060006002600f546141b191906151e3565b6010546141be91906153df565b90506000816002600f54856141d39190615385565b6141dd91906151e3565b6141e791906151e3565b9050600081846141f791906153df565b9050600081111561426c57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561426a573d6000803e3d6000fd5b505b600087111561435457601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016142fe96959493929190614df8565b6060604051808303818588803b15801561431757600080fd5b505af115801561432b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061435091906148ec565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df9818389604051614387939291906150e6565b60405180910390a150505050505050506000602660006101000a81548160ff02191690831515021790555050565b6000813590506143c481615979565b92915050565b6000815190506143d981615979565b92915050565b60008083601f8401126143f5576143f4615671565b5b8235905067ffffffffffffffff8111156144125761441161566c565b5b60208301915083602082028301111561442e5761442d615676565b5b9250929050565b60008083601f84011261444b5761444a615671565b5b8235905067ffffffffffffffff8111156144685761446761566c565b5b60208301915083602082028301111561448457614483615676565b5b9250929050565b60008135905061449a81615990565b92915050565b6000813590506144af816159a7565b92915050565b6000815190506144c4816159a7565b92915050565b6000602082840312156144e0576144df615680565b5b60006144ee848285016143b5565b91505092915050565b60006020828403121561450d5761450c615680565b5b600061451b848285016143ca565b91505092915050565b6000806040838503121561453b5761453a615680565b5b6000614549858286016143b5565b925050602061455a858286016143b5565b9150509250929050565b60008060006060848603121561457d5761457c615680565b5b600061458b868287016143b5565b935050602061459c868287016143b5565b92505060406145ad868287016144a0565b9150509250925092565b600080604083850312156145ce576145cd615680565b5b60006145dc858286016143b5565b92505060206145ed8582860161448b565b9150509250929050565b6000806040838503121561460e5761460d615680565b5b600061461c858286016143b5565b925050602061462d858286016144a0565b9150509250929050565b6000806000806040858703121561465157614650615680565b5b600085013567ffffffffffffffff81111561466f5761466e61567b565b5b61467b878288016143df565b9450945050602085013567ffffffffffffffff81111561469e5761469d61567b565b5b6146aa87828801614435565b925092505092959194509250565b6000806000604084860312156146d1576146d0615680565b5b600084013567ffffffffffffffff8111156146ef576146ee61567b565b5b6146fb868287016143df565b9350935050602061470e8682870161448b565b9150509250925092565b60006020828403121561472e5761472d615680565b5b600061473c8482850161448b565b91505092915050565b6000806000806080858703121561475f5761475e615680565b5b600061476d8782880161448b565b945050602061477e8782880161448b565b935050604061478f878288016144a0565b92505060606147a0878288016144a0565b91505092959194509250565b600080604083850312156147c3576147c2615680565b5b60006147d18582860161448b565b92505060206147e2858286016144a0565b9150509250929050565b60006020828403121561480257614801615680565b5b6000614810848285016144a0565b91505092915050565b600080604083850312156148305761482f615680565b5b600061483e858286016144a0565b925050602061484f858286016143b5565b9150509250929050565b600080604083850312156148705761486f615680565b5b600061487e858286016144a0565b925050602061488f858286016144a0565b9150509250929050565b6000806000606084860312156148b2576148b1615680565b5b60006148c0868287016144a0565b93505060206148d1868287016144a0565b92505060406148e2868287016144a0565b9150509250925092565b60008060006060848603121561490557614904615680565b5b6000614913868287016144b5565b9350506020614924868287016144b5565b9250506040614935868287016144b5565b9150509250925092565b6000806000806080858703121561495957614958615680565b5b6000614967878288016144a0565b9450506020614978878288016144a0565b9350506040614989878288016144a0565b925050606061499a878288016144a0565b91505092959194509250565b60006149b283836149dc565b60208301905092915050565b6149c78161547a565b82525050565b6149d681615425565b82525050565b6149e581615413565b82525050565b6149f481615413565b82525050565b6000614a0582615148565b614a0f818561516b565b9350614a1a83615138565b8060005b83811015614a4b578151614a3288826149a6565b9750614a3d8361515e565b925050600181019050614a1e565b5085935050505092915050565b614a6181615437565b82525050565b614a708161548c565b82525050565b614a7f8161549e565b82525050565b614a8e816154b0565b82525050565b614a9d816154c2565b82525050565b614aac816154d4565b82525050565b6000614abd82615153565b614ac7818561517c565b9350614ad781856020860161550a565b614ae081615685565b840191505092915050565b6000614af860158361517c565b9150614b03826156a3565b602082019050919050565b6000614b1b60258361517c565b9150614b26826156cc565b604082019050919050565b6000614b3e60118361517c565b9150614b498261571b565b602082019050919050565b6000614b6160188361517c565b9150614b6c82615744565b602082019050919050565b6000614b8460268361517c565b9150614b8f8261576d565b604082019050919050565b6000614ba760168361517c565b9150614bb2826157bc565b602082019050919050565b6000614bca60148361517c565b9150614bd5826157e5565b602082019050919050565b6000614bed601b8361517c565b9150614bf88261580e565b602082019050919050565b6000614c10601d8361517c565b9150614c1b82615837565b602082019050919050565b6000614c3360188361517c565b9150614c3e82615860565b602082019050919050565b6000614c5660298361517c565b9150614c6182615889565b604082019050919050565b6000614c7960208361517c565b9150614c84826158d8565b602082019050919050565b6000614c9c60158361517c565b9150614ca782615901565b602082019050919050565b6000614cbf60228361517c565b9150614cca8261592a565b604082019050919050565b614cde81615463565b82525050565b614ced8161546d565b82525050565b6000602082019050614d0860008301846149eb565b92915050565b6000602082019050614d2360008301846149cd565b92915050565b6000608082019050614d3e60008301876149eb565b614d4b60208301866149eb565b614d586040830185614cd5565b614d656060830184614a85565b95945050505050565b6000608082019050614d8360008301876149eb565b614d9060208301866149eb565b614d9d6040830185614cd5565b614daa6060830184614a94565b95945050505050565b6000608082019050614dc860008301876149eb565b614dd560208301866149eb565b614de26040830185614cd5565b614def6060830184614aa3565b95945050505050565b600060c082019050614e0d60008301896149eb565b614e1a6020830188614cd5565b614e276040830187614a76565b614e346060830186614a76565b614e4160808301856149be565b614e4e60a0830184614cd5565b979650505050505050565b6000602082019050614e6e6000830184614a58565b92915050565b6000602082019050614e896000830184614a67565b92915050565b60006020820190508181036000830152614ea98184614ab2565b905092915050565b60006020820190508181036000830152614eca81614aeb565b9050919050565b60006020820190508181036000830152614eea81614b0e565b9050919050565b60006020820190508181036000830152614f0a81614b31565b9050919050565b60006020820190508181036000830152614f2a81614b54565b9050919050565b60006020820190508181036000830152614f4a81614b77565b9050919050565b60006020820190508181036000830152614f6a81614b9a565b9050919050565b60006020820190508181036000830152614f8a81614bbd565b9050919050565b60006020820190508181036000830152614faa81614be0565b9050919050565b60006020820190508181036000830152614fca81614c03565b9050919050565b60006020820190508181036000830152614fea81614c26565b9050919050565b6000602082019050818103600083015261500a81614c49565b9050919050565b6000602082019050818103600083015261502a81614c6c565b9050919050565b6000602082019050818103600083015261504a81614c8f565b9050919050565b6000602082019050818103600083015261506a81614cb2565b9050919050565b60006020820190506150866000830184614cd5565b92915050565b600060a0820190506150a16000830188614cd5565b6150ae6020830187614a76565b81810360408301526150c081866149fa565b90506150cf60608301856149eb565b6150dc6080830184614cd5565b9695505050505050565b60006060820190506150fb6000830186614cd5565b6151086020830185614cd5565b6151156040830184614cd5565b949350505050565b60006020820190506151326000830184614ce4565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061519882615463565b91506151a383615463565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151d8576151d76155b0565b5b828201905092915050565b60006151ee82615463565b91506151f983615463565b925082615209576152086155df565b5b828204905092915050565b6000808291508390505b600185111561525e5780860481111561523a576152396155b0565b5b60018516156152495780820291505b808102905061525785615696565b945061521e565b94509492505050565b600061527282615463565b915061527d8361546d565b92506152aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846152b2565b905092915050565b6000826152c2576001905061537e565b816152d0576000905061537e565b81600181146152e657600281146152f05761531f565b600191505061537e565b60ff841115615302576153016155b0565b5b8360020a915084821115615319576153186155b0565b5b5061537e565b5060208310610133831016604e8410600b84101617156153545782820a90508381111561534f5761534e6155b0565b5b61537e565b6153618484846001615214565b92509050818404811115615378576153776155b0565b5b81810290505b9392505050565b600061539082615463565b915061539b83615463565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156153d4576153d36155b0565b5b828202905092915050565b60006153ea82615463565b91506153f583615463565b925082821015615408576154076155b0565b5b828203905092915050565b600061541e82615443565b9050919050565b600061543082615443565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000615485826154e6565b9050919050565b6000615497826154e6565b9050919050565b60006154a982615463565b9050919050565b60006154bb8261546d565b9050919050565b60006154cd8261546d565b9050919050565b60006154df8261546d565b9050919050565b60006154f1826154f8565b9050919050565b600061550382615443565b9050919050565b60005b8381101561552857808201518184015260208101905061550d565b83811115615537576000848401525b50505050565b600061554882615463565b9150600082141561555c5761555b6155b0565b5b600182039050919050565b600061557282615463565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156155a5576155a46155b0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f57616c6c65742070726f7465637465642c20706c6561736520636f6e7461637460008201527f20737570706f72742e0000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b61598281615413565b811461598d57600080fd5b50565b61599981615437565b81146159a457600080fd5b50565b6159b081615463565b81146159bb57600080fd5b5056fea26469706673582212200bcb5081f89a14082f82b216579e64c9f370daea3dd2a2db5c2be1ab99f16a8364736f6c63430008070033
Deployed Bytecode
0x6080604052600436106103035760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610b65578063f8821a6214610b8e578063f887ea4014610bb9578063fabb0b4f14610be45761030a565b8063e96fada214610ad4578063f1f3bca314610aff578063f2fde38b14610b3c5761030a565b8063bf56b371146109b2578063bfa21d6a146109dd578063c1adf7bc14610a08578063c287184e14610a45578063d686014214610a6e578063dd62ed3e14610a975761030a565b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b31146108f6578063a9059cbb14610921578063abe57e701461095e578063bafe446b146109875761030a565b806395d89b41146108775780639b02c402146108a2578063a4b45c00146108cd5761030a565b80636f4ce428146107675780636fcba377146107a457806370a08231146107cd578063715018a61461080a578063893d20e8146108215780638da5cb5b1461084c5761030a565b8063492a937b1161024f578063584f969a1161020857806363a803e1116101e257806363a803e1146106bf578063658d4b7f146106ea57806367243482146107135780636ddd17131461073c5761030a565b8063584f969a1461065457806360bba03d1461066b57806361e08e72146106945761030a565b8063492a937b14610548578063507139351461057157806354a1dfc91461059a57806356a227f2146105c3578063571ac8b0146105ec5780635804f1e4146106295761030a565b8063234e9494116102bc578063313ce56711610296578063313ce567146104a057806334848b9a146104cb578063421dd7c7146104f457806346d7edaa1461050b5761030a565b8063234e94941461040d57806323b872dd146104385780632b112e49146104755761030a565b80630445b6671461030f57806306fdde031461033a578063095db78f14610365578063095ea7b31461038e5780631031e36e146103cb57806318160ddd146103e25761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c0f565b6040516103319190615071565b60405180910390f35b34801561034657600080fd5b5061034f610c15565b60405161035c9190614e8f565b60405180910390f35b34801561037157600080fd5b5061038c600480360381019061038791906146b8565b610c52565b005b34801561039a57600080fd5b506103b560048036038101906103b091906145f7565b610ef1565b6040516103c29190614e59565b60405180910390f35b3480156103d757600080fd5b506103e0610fe3565b005b3480156103ee57600080fd5b506103f76110ea565b6040516104049190615071565b60405180910390f35b34801561041957600080fd5b506104226110f4565b60405161042f9190615071565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190614564565b611116565b60405161046c9190614e59565b60405180910390f35b34801561048157600080fd5b5061048a6112d8565b6040516104979190615071565b60405180910390f35b3480156104ac57600080fd5b506104b561134c565b6040516104c2919061511d565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190614899565b611355565b005b34801561050057600080fd5b506105096114aa565b005b34801561051757600080fd5b50610532600480360381019061052d91906144ca565b6115b2565b60405161053f9190615071565b60405180910390f35b34801561055457600080fd5b5061056f600480360381019061056a91906145b7565b6115ca565b005b34801561057d57600080fd5b5061059860048036038101906105939190614899565b61174b565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190614745565b611856565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190614819565b611965565b005b3480156105f857600080fd5b50610613600480360381019061060e91906144ca565b611a9d565b6040516106209190614e59565b60405180910390f35b34801561063557600080fd5b5061063e611ad0565b60405161064b9190615071565b60405180910390f35b34801561066057600080fd5b50610669611ad6565b005b34801561067757600080fd5b50610692600480360381019061068d91906145b7565b611bde565b005b3480156106a057600080fd5b506106a9611cce565b6040516106b69190615071565b60405180910390f35b3480156106cb57600080fd5b506106d4611cd4565b6040516106e19190615071565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c91906145b7565b611cf6565b005b34801561071f57600080fd5b5061073a60048036038101906107359190614637565b611de6565b005b34801561074857600080fd5b50610751612026565b60405161075e9190614e59565b60405180910390f35b34801561077357600080fd5b5061078e600480360381019061078991906144ca565b612039565b60405161079b9190615071565b60405180910390f35b3480156107b057600080fd5b506107cb60048036038101906107c6919061493f565b612051565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906144ca565b612136565b6040516108019190615071565b60405180910390f35b34801561081657600080fd5b5061081f61217f565b005b34801561082d57600080fd5b506108366122d2565b6040516108439190614cf3565b60405180910390f35b34801561085857600080fd5b506108616122e1565b60405161086e9190614cf3565b60405180910390f35b34801561088357600080fd5b5061088c61230a565b6040516108999190614e8f565b60405180910390f35b3480156108ae57600080fd5b506108b7612347565b6040516108c49190615071565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef9190614524565b61234d565b005b34801561090257600080fd5b5061090b612468565b6040516109189190614cf3565b60405180910390f35b34801561092d57600080fd5b50610948600480360381019061094391906145f7565b61248e565b6040516109559190614e59565b60405180910390f35b34801561096a57600080fd5b5061098560048036038101906109809190614859565b6124a3565b005b34801561099357600080fd5b5061099c612582565b6040516109a99190615071565b60405180910390f35b3480156109be57600080fd5b506109c76125a4565b6040516109d49190615071565b60405180910390f35b3480156109e957600080fd5b506109f26125aa565b6040516109ff9190614d0e565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a91906144ca565b6125d0565b604051610a3c9190615071565b60405180910390f35b348015610a5157600080fd5b50610a6c6004803603810190610a6791906147ec565b6125e8565b005b348015610a7a57600080fd5b50610a956004803603810190610a9091906147ac565b612695565b005b348015610aa357600080fd5b50610abe6004803603810190610ab99190614524565b6127c5565b604051610acb9190615071565b60405180910390f35b348015610ae057600080fd5b50610ae961284c565b604051610af69190614d0e565b60405180910390f35b348015610b0b57600080fd5b50610b266004803603810190610b219190614718565b612872565b604051610b339190615071565b60405180910390f35b348015610b4857600080fd5b50610b636004803603810190610b5e91906144ca565b6128d5565b005b348015610b7157600080fd5b50610b8c6004803603810190610b8791906145b7565b612a97565b005b348015610b9a57600080fd5b50610ba3612b87565b604051610bb09190615071565b60405180910390f35b348015610bc557600080fd5b50610bce612b8d565b604051610bdb9190614e74565b60405180910390f35b348015610bf057600080fd5b50610bf9612bb3565b604051610c069190615071565b60405180910390f35b60245481565b60606040518060400160405280600d81526020017f456c6f6e2054616b656f76657200000000000000000000000000000000000000815250905090565b60276000610c5e612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610ce35750610cb46122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990614f91565b60405180910390fd5b8015610d4257601960009054906101000a900460ff16610d4157600080fd5b5b60005b83839050811015610eeb578115610dd857601b6000815480929190610d6990615567565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610da357610da261560e565b5b9050602002016020810190610db891906144ca565b436002604051610dcb9493929190614db3565b60405180910390a1610e60565b600060186000868685818110610df157610df061560e565b5b9050602002016020810190610e0691906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e5f57601b6000815480929190610e599061553d565b91905055505b5b81610e6c576000610e6e565b435b60186000868685818110610e8557610e8461560e565b5b9050602002016020810190610e9a91906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610ee390615567565b915050610d45565b50505050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610fd19190615071565b60405180910390a36001905092915050565b60276000610fef612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061107457506110456122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90614f91565b60405180910390fd5b602160019054906101000a900460ff16156110cd57600080fd5b6000602160006101000a81548160ff021916908315150217905550565b6000600354905090565b60006009600a6111049190615267565b60055461111191906151e3565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112c45781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124391906153df565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112cf848484612bc1565b90509392505050565b6000611305600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612136565b611330600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612136565b61133a919061518d565b60035461134791906153df565b905090565b60006009905090565b60276000611361612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113e657506113b76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c90614f91565b60405180910390fd5b602160009054906101000a900460ff161580156114425750600a83105b61144b57600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e819055508142611480919061518d565b601c819055506009600a6114949190615267565b8161149f9190615385565b601a81905550505050565b602760006114b6612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061153b575061150c6122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190614f91565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6115d2612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690615011565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790615051565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611753612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d790615011565b60405180910390fd5b6000831180156117f05750600082115b80156117fc5750600081115b801561180a57506127108111155b61181357600080fd5b80836003546118229190615385565b61182c91906151e3565b60048190555080826003546118419190615385565b61184b91906151e3565b600581905550505050565b61185e612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e290615011565b60405180910390fd5b600082116118f857600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff0219169083151502179055508160035461193a91906151e3565b6024819055506009600a61194e9190615267565b816119599190615385565b60258190555050505050565b60276000611971612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119f657506119c76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90614f91565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60648584611a629190615385565b611a6c91906151e3565b9081150290604051600060405180830381858888f19350505050158015611a97573d6000803e3d6000fd5b50505050565b6000611ac9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610ef1565b9050919050565b601f5481565b60276000611ae2612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b675750611b386122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90614f91565b60405180910390fd5b6001602160016101000a81548160ff0219169083151502179055506001602160006101000a81548160ff021916908315150217905550565b611be6612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90615011565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60225481565b60006009600a611ce49190615267565b600654611cf191906151e3565b905090565b611cfe612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290615011565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611dee612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290615011565b60405180910390fd5b600084849050118015611e9357508383905082829050145b611e9c57600080fd5b600033905060005b8585905081101561201e5760176000878784818110611ec657611ec561560e565b5b9050602002016020810190611edb91906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fa15750600d6000878784818110611f4257611f4161560e565b5b9050602002016020810190611f5791906144ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200b5761200982878784818110611fbd57611fbc61560e565b5b9050602002016020810190611fd291906144ca565b6009600a611fe09190615267565b878786818110611ff357611ff261560e565b5b905060200201356120049190615385565b6133f5565b505b808061201690615567565b915050611ea4565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b612059612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dd90615011565b60405180910390fd5b83600f8190555082600e819055508383612100919061518d565b6010819055508160118190555080601281905550600260125461212391906151e3565b6010541061213057600080fd5b50505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612187612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220b90615011565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006122dc6122e1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f456c6f6e546f0000000000000000000000000000000000000000000000000000815250905090565b601b5481565b612355612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d990615011565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061249b338484612bc1565b905092915050565b6124ab612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252f90615011565b60405180910390fd5b6000821180156125485750600081115b801561255657506127108111155b61255f57600080fd5b808260035461256e9190615385565b61257891906151e3565b6006819055505050565b60006009600a6125929190615267565b60045461259f91906151e3565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b6125f0612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461267d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267490615011565b60405180910390fd5b603c81111561268b57600080fd5b8060228190555050565b602760006126a1612bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061272657506126f76122e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275c90614f91565b60405180910390fd5b601960019054906101000a900460ff161561277f57600080fd5b81601960006101000a81548160ff0219169083151502179055506201518081106127a857600080fd5b80601c60008282546127ba919061518d565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e54612885919061518d565b106128a057600160125461289991906153df565b90506128d0565b81156128bd576011546010546128b6919061518d565b90506128d0565b6011546010546128cd91906153df565b90505b919050565b6128dd612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461296a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296190615011565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190614f31565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a9f612bb9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2390615011565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2990614f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9990614f51565b60405180910390fd5b60008211612ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cdc90614eb1565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5e90614f71565b60405180910390fd5b612d6f613583565b158015612dc55750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e5f57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4d90614fd1565b60405180910390fd5b612e5e613590565b5b602160009054906101000a900460ff16612f5457600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f145750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4a90615031565b60405180910390fd5b5b612f5f8484846135bb565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561306957600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613068576130678383613b78565b5b5b601960009054906101000a900460ff168015613086575042601c54115b156131fc57601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561311057508273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b801561315b57506000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156131fb5743601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b60008154809291906131b790615567565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32844360006040516131f29493929190614d29565b60405180910390a15b5b602660009054906101000a900460ff16156132235761321c8484846133f5565b90506133ee565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461326e91906153df565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006132bc85613c11565b6132c657826132d1565b6132d08484613c68565b5b90506132dc84613d4b565b156132f55760008311156132f4576132f383613e75565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613340919061518d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133e09190615071565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461344291906153df565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134d0919061518d565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135709190615071565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061366f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166136675760055461366b565b6004545b8111155b6136ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136a590614ef1565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613752575043602254600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461374f919061518d565b11155b613791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378890614fb1565b60405180910390fd5b6000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146138d2576009600a6137e69190615267565b601a546137f39190615385565b811115801561384157506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b801561384e575042601c54115b61388d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388490614ff1565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561396d5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b73565b61397683613c11565b15613b7257601960009054906101000a900460ff168015613998575042601c54115b80156139e2575043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015613a2d57506000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15613ab55743601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3283436001604051613aac9493929190614d6e565b60405180910390a15b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614613b715743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bcb919061518d565b1115613c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c0390614ed1565b60405180910390fd5b505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254613cc883612872565b85613cd39190615385565b613cdd91906151e3565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613d2e919061518d565b925050819055508084613d4191906153df565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613db45750602660009054906101000a900460ff16155b8015613dcc5750602360009054906101000a900460ff165b8015613e215750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015613e6e5750602554600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001602660006101000a81548160ff02191690831515021790555060006024548210613ea357602454613ea5565b815b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613f3157600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006010546002600f5484613f469190615385565b613f5091906151e3565b613f5a91906151e3565b90508082613f6891906153df565b91506000600267ffffffffffffffff811115613f8757613f8661563d565b5b604051908082528060200260200182016040528015613fb55781602001602082028036833780820191505090505b5090503081600081518110613fcd57613fcc61560e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561406f57600080fd5b505afa158015614083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a791906144f7565b816001815181106140bb576140ba61560e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008530426040518663ffffffff1660e01b815260040161415e95949392919061508c565b600060405180830381600087803b15801561417857600080fd5b505af115801561418c573d6000803e3d6000fd5b505050506000814761419e91906153df565b905060006002600f546141b191906151e3565b6010546141be91906153df565b90506000816002600f54856141d39190615385565b6141dd91906151e3565b6141e791906151e3565b9050600081846141f791906153df565b9050600081111561426c57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561426a573d6000803e3d6000fd5b505b600087111561435457601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016142fe96959493929190614df8565b6060604051808303818588803b15801561431757600080fd5b505af115801561432b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061435091906148ec565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df9818389604051614387939291906150e6565b60405180910390a150505050505050506000602660006101000a81548160ff02191690831515021790555050565b6000813590506143c481615979565b92915050565b6000815190506143d981615979565b92915050565b60008083601f8401126143f5576143f4615671565b5b8235905067ffffffffffffffff8111156144125761441161566c565b5b60208301915083602082028301111561442e5761442d615676565b5b9250929050565b60008083601f84011261444b5761444a615671565b5b8235905067ffffffffffffffff8111156144685761446761566c565b5b60208301915083602082028301111561448457614483615676565b5b9250929050565b60008135905061449a81615990565b92915050565b6000813590506144af816159a7565b92915050565b6000815190506144c4816159a7565b92915050565b6000602082840312156144e0576144df615680565b5b60006144ee848285016143b5565b91505092915050565b60006020828403121561450d5761450c615680565b5b600061451b848285016143ca565b91505092915050565b6000806040838503121561453b5761453a615680565b5b6000614549858286016143b5565b925050602061455a858286016143b5565b9150509250929050565b60008060006060848603121561457d5761457c615680565b5b600061458b868287016143b5565b935050602061459c868287016143b5565b92505060406145ad868287016144a0565b9150509250925092565b600080604083850312156145ce576145cd615680565b5b60006145dc858286016143b5565b92505060206145ed8582860161448b565b9150509250929050565b6000806040838503121561460e5761460d615680565b5b600061461c858286016143b5565b925050602061462d858286016144a0565b9150509250929050565b6000806000806040858703121561465157614650615680565b5b600085013567ffffffffffffffff81111561466f5761466e61567b565b5b61467b878288016143df565b9450945050602085013567ffffffffffffffff81111561469e5761469d61567b565b5b6146aa87828801614435565b925092505092959194509250565b6000806000604084860312156146d1576146d0615680565b5b600084013567ffffffffffffffff8111156146ef576146ee61567b565b5b6146fb868287016143df565b9350935050602061470e8682870161448b565b9150509250925092565b60006020828403121561472e5761472d615680565b5b600061473c8482850161448b565b91505092915050565b6000806000806080858703121561475f5761475e615680565b5b600061476d8782880161448b565b945050602061477e8782880161448b565b935050604061478f878288016144a0565b92505060606147a0878288016144a0565b91505092959194509250565b600080604083850312156147c3576147c2615680565b5b60006147d18582860161448b565b92505060206147e2858286016144a0565b9150509250929050565b60006020828403121561480257614801615680565b5b6000614810848285016144a0565b91505092915050565b600080604083850312156148305761482f615680565b5b600061483e858286016144a0565b925050602061484f858286016143b5565b9150509250929050565b600080604083850312156148705761486f615680565b5b600061487e858286016144a0565b925050602061488f858286016144a0565b9150509250929050565b6000806000606084860312156148b2576148b1615680565b5b60006148c0868287016144a0565b93505060206148d1868287016144a0565b92505060406148e2868287016144a0565b9150509250925092565b60008060006060848603121561490557614904615680565b5b6000614913868287016144b5565b9350506020614924868287016144b5565b9250506040614935868287016144b5565b9150509250925092565b6000806000806080858703121561495957614958615680565b5b6000614967878288016144a0565b9450506020614978878288016144a0565b9350506040614989878288016144a0565b925050606061499a878288016144a0565b91505092959194509250565b60006149b283836149dc565b60208301905092915050565b6149c78161547a565b82525050565b6149d681615425565b82525050565b6149e581615413565b82525050565b6149f481615413565b82525050565b6000614a0582615148565b614a0f818561516b565b9350614a1a83615138565b8060005b83811015614a4b578151614a3288826149a6565b9750614a3d8361515e565b925050600181019050614a1e565b5085935050505092915050565b614a6181615437565b82525050565b614a708161548c565b82525050565b614a7f8161549e565b82525050565b614a8e816154b0565b82525050565b614a9d816154c2565b82525050565b614aac816154d4565b82525050565b6000614abd82615153565b614ac7818561517c565b9350614ad781856020860161550a565b614ae081615685565b840191505092915050565b6000614af860158361517c565b9150614b03826156a3565b602082019050919050565b6000614b1b60258361517c565b9150614b26826156cc565b604082019050919050565b6000614b3e60118361517c565b9150614b498261571b565b602082019050919050565b6000614b6160188361517c565b9150614b6c82615744565b602082019050919050565b6000614b8460268361517c565b9150614b8f8261576d565b604082019050919050565b6000614ba760168361517c565b9150614bb2826157bc565b602082019050919050565b6000614bca60148361517c565b9150614bd5826157e5565b602082019050919050565b6000614bed601b8361517c565b9150614bf88261580e565b602082019050919050565b6000614c10601d8361517c565b9150614c1b82615837565b602082019050919050565b6000614c3360188361517c565b9150614c3e82615860565b602082019050919050565b6000614c5660298361517c565b9150614c6182615889565b604082019050919050565b6000614c7960208361517c565b9150614c84826158d8565b602082019050919050565b6000614c9c60158361517c565b9150614ca782615901565b602082019050919050565b6000614cbf60228361517c565b9150614cca8261592a565b604082019050919050565b614cde81615463565b82525050565b614ced8161546d565b82525050565b6000602082019050614d0860008301846149eb565b92915050565b6000602082019050614d2360008301846149cd565b92915050565b6000608082019050614d3e60008301876149eb565b614d4b60208301866149eb565b614d586040830185614cd5565b614d656060830184614a85565b95945050505050565b6000608082019050614d8360008301876149eb565b614d9060208301866149eb565b614d9d6040830185614cd5565b614daa6060830184614a94565b95945050505050565b6000608082019050614dc860008301876149eb565b614dd560208301866149eb565b614de26040830185614cd5565b614def6060830184614aa3565b95945050505050565b600060c082019050614e0d60008301896149eb565b614e1a6020830188614cd5565b614e276040830187614a76565b614e346060830186614a76565b614e4160808301856149be565b614e4e60a0830184614cd5565b979650505050505050565b6000602082019050614e6e6000830184614a58565b92915050565b6000602082019050614e896000830184614a67565b92915050565b60006020820190508181036000830152614ea98184614ab2565b905092915050565b60006020820190508181036000830152614eca81614aeb565b9050919050565b60006020820190508181036000830152614eea81614b0e565b9050919050565b60006020820190508181036000830152614f0a81614b31565b9050919050565b60006020820190508181036000830152614f2a81614b54565b9050919050565b60006020820190508181036000830152614f4a81614b77565b9050919050565b60006020820190508181036000830152614f6a81614b9a565b9050919050565b60006020820190508181036000830152614f8a81614bbd565b9050919050565b60006020820190508181036000830152614faa81614be0565b9050919050565b60006020820190508181036000830152614fca81614c03565b9050919050565b60006020820190508181036000830152614fea81614c26565b9050919050565b6000602082019050818103600083015261500a81614c49565b9050919050565b6000602082019050818103600083015261502a81614c6c565b9050919050565b6000602082019050818103600083015261504a81614c8f565b9050919050565b6000602082019050818103600083015261506a81614cb2565b9050919050565b60006020820190506150866000830184614cd5565b92915050565b600060a0820190506150a16000830188614cd5565b6150ae6020830187614a76565b81810360408301526150c081866149fa565b90506150cf60608301856149eb565b6150dc6080830184614cd5565b9695505050505050565b60006060820190506150fb6000830186614cd5565b6151086020830185614cd5565b6151156040830184614cd5565b949350505050565b60006020820190506151326000830184614ce4565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061519882615463565b91506151a383615463565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151d8576151d76155b0565b5b828201905092915050565b60006151ee82615463565b91506151f983615463565b925082615209576152086155df565b5b828204905092915050565b6000808291508390505b600185111561525e5780860481111561523a576152396155b0565b5b60018516156152495780820291505b808102905061525785615696565b945061521e565b94509492505050565b600061527282615463565b915061527d8361546d565b92506152aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846152b2565b905092915050565b6000826152c2576001905061537e565b816152d0576000905061537e565b81600181146152e657600281146152f05761531f565b600191505061537e565b60ff841115615302576153016155b0565b5b8360020a915084821115615319576153186155b0565b5b5061537e565b5060208310610133831016604e8410600b84101617156153545782820a90508381111561534f5761534e6155b0565b5b61537e565b6153618484846001615214565b92509050818404811115615378576153776155b0565b5b81810290505b9392505050565b600061539082615463565b915061539b83615463565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156153d4576153d36155b0565b5b828202905092915050565b60006153ea82615463565b91506153f583615463565b925082821015615408576154076155b0565b5b828203905092915050565b600061541e82615443565b9050919050565b600061543082615443565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000615485826154e6565b9050919050565b6000615497826154e6565b9050919050565b60006154a982615463565b9050919050565b60006154bb8261546d565b9050919050565b60006154cd8261546d565b9050919050565b60006154df8261546d565b9050919050565b60006154f1826154f8565b9050919050565b600061550382615443565b9050919050565b60005b8381101561552857808201518184015260208101905061550d565b83811115615537576000848401525b50505050565b600061554882615463565b9150600082141561555c5761555b6155b0565b5b600182039050919050565b600061557282615463565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156155a5576155a46155b0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f57616c6c65742070726f7465637465642c20706c6561736520636f6e7461637460008201527f20737570706f72742e0000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b61598281615413565b811461598d57600080fd5b50565b61599981615437565b81146159a457600080fd5b50565b6159b081615463565b81146159bb57600080fd5b5056fea26469706673582212200bcb5081f89a14082f82b216579e64c9f370daea3dd2a2db5c2be1ab99f16a8364736f6c63430008070033
Deployed Bytecode Sourcemap
5016:16289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7015:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8477:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11433:617;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9218:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10797:115;;;;;;;;;;;;;:::i;:::-;;8225:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8742:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12222:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21064:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8319:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10413:372;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11294:127;;;;;;;;;;;;;:::i;:::-;;6491:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18884:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19212:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20696:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10187:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9442:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6776:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10924:111;;;;;;;;;;;;;:::i;:::-;;9576:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6907:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8855:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19790:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9707:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6944:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5699:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20052:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8966:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4611:148;;;;;;;;;;;;;:::i;:::-;;8554:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4401:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8396:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6647:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20446:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6716:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12058:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19563:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8631:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6744:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6130:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5750:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19076:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11047:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9077:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6234:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16469:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4765:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19917:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7070:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6340:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6810:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7015:48;;;;:::o;8477:71::-;8516:13;8540:5;;;;;;;;;;;;;;;;;8533:12;;8477:71;:::o;11433:617::-;7301:10;:24;7312:12;:10;:12::i;:::-;7301:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7343:7;:5;:7::i;:::-;7329:21;;:10;:21;;;7301:49;7293:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11533:8:::1;11529:67;;;11566:17;;;;;;;;;;;11558:26;;;::::0;::::1;;11529:67;11621:6;11616:427;11637:8;;:15;;11633:1;:19;11616:427;;;11692:8;11688:277;;;11721:15;;:17;;;;;;;;;:::i;:::-;;;;;;11762:56;11778:9;11789:8;;11798:1;11789:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11802:12;11816:1;11762:56;;;;;;;;;:::i;:::-;;;;;;;;11688:277;;;11902:1;11876:9;:22;11886:8;;11895:1;11886:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11876:22;;;;;;;;;;;;;;;;:27;11872:71;;11926:15;;:17;;;;;;;;;:::i;:::-;;;;;;11872:71;11688:277;12004:8;:27;;12030:1;12004:27;;;12015:12;12004:27;11979:9;:22;11989:8;;11998:1;11989:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11979:22;;;;;;;;;;;;;;;:52;;;;11654:3;;;;;:::i;:::-;;;;11616:427;;;;11433:617:::0;;;:::o;9218:216::-;9293:4;9345:6;9310:11;:23;9322:10;9310:23;;;;;;;;;;;;;;;:32;9334:7;9310:32;;;;;;;;;;;;;;;:41;;;;9388:7;9367:37;;9376:10;9367:37;;;9397:6;9367:37;;;;;;:::i;:::-;;;;;;;;9422:4;9415:11;;9218:216;;;;:::o;10797:115::-;7301:10;:24;7312:12;:10;:12::i;:::-;7301:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7343:7;:5;:7::i;:::-;7329:21;;:10;:21;;;7301:49;7293:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10859:13:::1;;;;;;;;;;;10858:14;10850:23;;;::::0;::::1;;10899:5;10884:12;;:20;;;;;;;;;;;;;;;;;;10797:115::o:0;8225:88::-;8280:7;8298:12;;8291:19;;8225:88;:::o;8742:107::-;8792:7;5340:1;8830:2;:15;;;;:::i;:::-;8810:16;;:36;;;;:::i;:::-;8803:43;;8742:107;:::o;12222:341::-;12322:4;12377:17;12342:11;:19;12354:6;12342:19;;;;;;;;;;;;;;;:31;12362:10;12342:31;;;;;;;;;;;;;;;;:52;12339:157;;12478:6;12444:11;:19;12456:6;12444:19;;;;;;;;;;;;;;;:31;12464:10;12444:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;12410:11;:19;12422:6;12410:19;;;;;;;;;;;;;;;:31;12430:10;12410:31;;;;;;;;;;;;;;;:74;;;;12339:157;12515:40;12529:6;12537:9;12548:6;12515:13;:40::i;:::-;12508:47;;12222:341;;;;;:::o;21064:138::-;21117:7;21178:15;21188:4;;;;;;;;;;;21178:9;:15::i;:::-;21160;21170:4;;;;;;;;;;;21160:9;:15::i;:::-;:33;;;;:::i;:::-;21144:12;;:50;;;;:::i;:::-;21137:57;;21064:138;:::o;8319:71::-;8362:5;5340:1;8371:16;;8319:71;:::o;10413:372::-;7301:10;:24;7312:12;:10;:12::i;:::-;7301:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7343:7;:5;:7::i;:::-;7329:21;;:10;:21;;;7301:49;7293:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10530:12:::1;;;;;;;;;;;10529:13;:33;;;;;10560:2;10546:11;:16;10529:33;10521:42;;;::::0;::::1;;10587:11;10574:10;:24;;;;10624:4;10609:12;;:19;;;;;;;;;;;;;;;;;;10652:12;10639:10;:25;;;;10711:11;10693:15;:29;;;;:::i;:::-;10675:15;:47;;;;5340:1;10761:2;:15;;;;:::i;:::-;10751:6;:26;;;;:::i;:::-;10733:15;:44;;;;10413:372:::0;;;:::o;11294:127::-;7301:10;:24;7312:12;:10;:12::i;:::-;7301:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7343:7;:5;:7::i;:::-;7329:21;;:10;:21;;;7301:49;7293:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11373:4:::1;11352:18;;:25;;;;;;;;;;;;;;;;;;11408:5;11388:17;;:25;;;;;;;;;;;;;;;;;;11294:127::o:0;6491:45::-;;;;;;;;;;;;;;;;;:::o;18884:184::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18979:4:::1;;;;;;;;;;;18973:10;;:2;:10;;;;18965:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;19054:6;19033:14;:18;19048:2;19033:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;18884:184:::0;;:::o;19212:339::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19347:1:::1;19332:12;:16;:37;;;;;19368:1;19352:13;:17;19332:37;:52;;;;;19383:1;19373:7;:11;19332:52;:72;;;;;19399:5;19388:7;:16;;19332:72;19324:81;;;::::0;::::1;;19466:7;19450:12;19435;;:27;;;;:::i;:::-;19434:39;;;;:::i;:::-;19416:15;:57;;;;19536:7;19519:13;19504:12;;:28;;;;:::i;:::-;19503:40;;;;:::i;:::-;19484:16;:59;;;;19212:339:::0;;;:::o;20696:360::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20859:1:::1;20844:12;:16;20836:25;;;::::0;::::1;;20886:8;20872:11;;:22;;;;;;;;;;;;;;;;;;20922:15;20905:14;;:32;;;;;;;;;;;;;;;;;;20979:12;20964;;:27;;;;:::i;:::-;20948:13;:43;;;;5340:1;21032:2;:15;;;;:::i;:::-;21016:12;:32;;;;:::i;:::-;21002:11;:46;;;;20696:360:::0;;;;:::o;10187:214::-;7301:10;:24;7312:12;:10;:12::i;:::-;7301:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7343:7;:5;:7::i;:::-;7329:21;;:10;:21;;;7301:49;7293:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10282:17:::1;10302:21;10282:41;;10342:3;10334:21;;:59;10389:3;10369:16;10357:9;:28;;;;:::i;:::-;10356:36;;;;:::i;:::-;10334:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10271:130;10187:214:::0;;:::o;9442:122::-;9497:4;9521:35;9529:7;9538:17;9521:7;:35::i;:::-;9514:42;;9442:122;;;:::o;6776:27::-;;;;:::o;10924:111::-;7301:10;:24;7312:12;:10;:12::i;:::-;7301:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7343:7;:5;:7::i;:::-;7329:21;;:10;:21;;;7301:49;7293:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10993:4:::1;10977:13;;:20;;;;;;;;;;;;;;;;;;11023:4;11008:12;;:19;;;;;;;;;;;;;;;;;;10924:111::o:0;9576:119::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9679:8:::1;9659:10;:17;9670:5;9659:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;9576:119:::0;;:::o;6907:28::-;;;;:::o;8855:105::-;8905:7;5340:1;8941:2;:15;;;;:::i;:::-;8923:14;;:34;;;;:::i;:::-;8916:41;;8855:105;:::o;19790:119::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19895:6:::1;19873:11;:19;19885:6;19873:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19790:119:::0;;:::o;9707:468::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9839:1:::1;9820:9;;:16;;:20;:58;;;;;9862:9;;:16;;9844:7;;:14;;:34;9820:58;9812:67;;;::::0;::::1;;9890:12;9905:10;9890:25;;9933:6;9928:240;9949:9;;:16;;9945:1;:20;9928:240;;;9991:14;:28;10006:9;;10016:1;10006:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9991:28;;;;;;;;;;;;;;;;;;;;;;;;;9990:29;:64;;;;;10024:16;:30;10041:9;;10051:1;10041:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10024:30;;;;;;;;;;;;;;;;;;;;;;;;;10023:31;9990:64;9987:170;;;10075:66;10090:4;10096:9;;10106:1;10096:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5340:1;10124:2;:15;;;;:::i;:::-;10110:7;;10118:1;10110:10;;;;;;;:::i;:::-;;;;;;;;:30;;;;:::i;:::-;10075:14;:66::i;:::-;;9987:170;9967:3;;;;;:::i;:::-;;;;9928:240;;;;9801:374;9707:468:::0;;;;:::o;6944:31::-;;;;;;;;;;;;;:::o;5699:44::-;;;;;;;;;;;;;;;;;:::o;20052:386::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20204:13:::1;20189:12;:28;;;;20243:13;20228:12;:28;;;;20294:13;20278;:29;;;;:::i;:::-;20267:8;:40;;;;20329:9;20318:8;:20;;;;20366:15;20349:14;:32;;;;20428:1;20411:14;;:18;;;;:::i;:::-;20400:8;;:29;20392:38;;;::::0;::::1;;20052:386:::0;;;;:::o;8966:105::-;9032:7;9050:9;:18;9060:7;9050:18;;;;;;;;;;;;;;;;9043:25;;8966:105;;;:::o;4611:148::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4718:1:::1;4681:40;;4702:6;::::0;::::1;;;;;;;;4681:40;;;;;;;;;;;;4749:1;4732:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4611:148::o:0;8554:71::-;8597:7;8615;:5;:7::i;:::-;8608:14;;8554:71;:::o;4401:79::-;4439:7;4466:6;;;;;;;;;;;4459:13;;4401:79;:::o;8396:75::-;8437:13;8461:7;;;;;;;;;;;;;;;;;8454:14;;8396:75;:::o;6647:30::-;;;;:::o;20446:242::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20594:21:::1;20563:20;;:53;;;;;;;;;;;;;;;;;;20658:21;20627:20;;:53;;;;;;;;;;;;;;;;;;20446:242:::0;;:::o;6716:19::-;;;;;;;;;;;;;:::o;12058:156::-;12138:4;12162:44;12176:10;12188:9;12199:6;12162:13;:44::i;:::-;12155:51;;12058:156;;;;:::o;19563:219::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19673:1:::1;19661:9;:13;:28;;;;;19688:1;19678:7;:11;19661:28;:48;;;;;19704:5;19693:7;:16;;19661:48;19653:57;;;::::0;::::1;;19767:7;19754:9;19739:12;;:24;;;;:::i;:::-;19738:36;;;;:::i;:::-;19721:14;:53;;;;19563:219:::0;;:::o;8631:105::-;8680:7;5340:1;8717:2;:15;;;;:::i;:::-;8698;;:35;;;;:::i;:::-;8691:42;;8631:105;:::o;6744:25::-;;;;:::o;6130:97::-;;;;;;;;;;;;;:::o;5750:43::-;;;;;;;;;;;;;;;;;:::o;19076:128::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19158:10:::1;19150:4;:18;;19142:27;;;::::0;::::1;;19192:4;19180:9;:16;;;;19076:128:::0;:::o;11047:235::-;7301:10;:24;7312:12;:10;:12::i;:::-;7301:24;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7343:7;:5;:7::i;:::-;7329:21;;:10;:21;;;7301:49;7293:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11141:18:::1;;;;;;;;;;;11140:19;11132:28;;;::::0;::::1;;11191:8;11171:17;;:28;;;;;;;;;;;;;;;;;;11229:6;11218:8;:17;11210:26;;;::::0;::::1;;11266:8;11247:15;;:27;;;;;;;:::i;:::-;;;;;;;;11047:235:::0;;:::o;9077:133::-;9161:7;9179:11;:19;9191:6;9179:19;;;;;;;;;;;;;;;:28;9199:7;9179:28;;;;;;;;;;;;;;;;9172:35;;9077:133;;;;:::o;6234:97::-;;;;;;;;;;;;;:::o;16469:243::-;16525:7;16575:12;16561:10;;16548;;:23;;;;:::i;:::-;:39;16545:73;;16614:1;16597:14;;:18;;;;:::i;:::-;16590:25;;;;16545:73;16632:7;16628:39;;;16659:8;;16648;;:19;;;;:::i;:::-;16641:26;;;;16628:39;16696:8;;16685;;:19;;;;:::i;:::-;16678:26;;16469:243;;;;:::o;4765:244::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4874:1:::1;4854:22;;:8;:22;;;;4846:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4964:8;4935:38;;4956:6;::::0;::::1;;;;;;;;4935:38;;;;;;;;;;;;4993:8;4984:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4765:244:::0;:::o;19917:127::-;4536:12;:10;:12::i;:::-;4526:22;;:6;;;;;;;;;;:22;;;4518:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20030:6:::1;20004:15;:23;20020:6;20004:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19917:127:::0;;:::o;7070:49::-;;;;:::o;6340:24::-;;;;;;;;;;;;;:::o;6810:25::-;;;;:::o;2428:107::-;2473:15;2516:10;2501:26;;2428:107;:::o;12571:1734::-;12663:4;12706:1;12688:20;;:6;:20;;;;12680:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12777:1;12756:23;;:9;:23;;;;12748:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12834:1;12825:6;:10;12817:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12901:6;12880:9;:17;12890:6;12880:17;;;;;;;;;;;;;;;;:27;;12872:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12947:10;:8;:10::i;:::-;12946:11;:40;;;;;12961:14;:25;12976:9;12961:25;;;;;;;;;;;;;;;;;;;;;;;;;12946:40;12943:120;;;12997:16;:24;13014:6;12997:24;;;;;;;;;;;;;;;;;;;;;;;;;12989:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13052:8;:6;:8::i;:::-;12943:120;13077:12;;;;;;;;;;;13073:111;;13100:16;:24;13117:6;13100:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;13128:16;:27;13145:9;13128:27;;;;;;;;;;;;;;;;;;;;;;;;;13100:55;13092:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13073:111;13196:39;13209:6;13217:9;13228:6;13196:12;:39::i;:::-;13261:14;:25;13276:9;13261:25;;;;;;;;;;;;;;;;;;;;;;;;;13260:26;:47;;;;;13303:4;;;;;;;;;;;13290:17;;:9;:17;;;;13260:47;13256:182;;;13329:15;:26;13345:9;13329:26;;;;;;;;;;;;;;;;;;;;;;;;;13324:103;;13376:35;13393:9;13404:6;13376:16;:35::i;:::-;13324:103;13256:182;13461:17;;;;;;;;;;;:54;;;;;13500:15;13482;;:33;13461:54;13458:351;;;13535:14;:22;13550:6;13535:22;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;13574:9;13561:22;;:9;:22;;;;13535:48;:77;;;;;13611:1;13587:9;:20;13597:9;13587:20;;;;;;;;;;;;;;;;:25;13535:77;13532:266;;;13656:12;13633:9;:20;13643:9;13633:20;;;;;;;;;;;;;;;:35;;;;13687:15;;:17;;;;;;;;;:::i;:::-;;;;;;13728:54;13744:9;13755;13766:12;13780:1;13728:54;;;;;;;;;:::i;:::-;;;;;;;;13532:266;13458:351;13832:6;;;;;;;;;;;13829:63;;;13848:41;13863:6;13871:9;13882:6;13848:14;:41::i;:::-;13841:48;;;;13829:63;13944:6;13924:9;:17;13934:6;13924:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;13904:9;:17;13914:6;13904:17;;;;;;;;;;;;;;;:46;;;;13963:22;13988:21;14002:6;13988:13;:21::i;:::-;:59;;14041:6;13988:59;;;14012:26;14020:9;14031:6;14012:7;:26::i;:::-;13988:59;13963:84;;14071:25;14086:9;14071:14;:25::i;:::-;14068:66;;;14112:1;14103:6;:10;14099:32;;;14115:16;14124:6;14115:8;:16::i;:::-;14099:32;14068:66;14200:14;14177:9;:20;14187:9;14177:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;14154:9;:20;14164:9;14154:20;;;;;;;;;;;;;;;:60;;;;14249:9;14232:43;;14241:6;14232:43;;;14260:14;14232:43;;;;;;:::i;:::-;;;;;;;;14293:4;14286:11;;;12571:1734;;;;;;:::o;14564:300::-;14657:4;14714:6;14694:9;:17;14704:6;14694:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14674:9;:17;14684:6;14674:17;;;;;;;;;;;;;;;:46;;;;14777:6;14754:9;:20;14764:9;14754:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;14731:9;:20;14741:9;14731:20;;;;;;;;;;;;;;;:52;;;;14816:9;14799:35;;14808:6;14799:35;;;14827:6;14799:35;;;;;;:::i;:::-;;;;;;;;14852:4;14845:11;;14564:300;;;;;:::o;14317:90::-;14360:4;14398:1;14384:10;;:15;;14377:22;;14317:90;:::o;14415:141::-;14466:12;14453:10;:25;;;;14504:15;14489:12;:30;;;;14544:4;14530:11;;:18;;;;;;;;;;;;;;;;;;14415:141::o;15119:1220::-;15220:15;:23;15236:6;15220:23;;;;;;;;;;;;;;;;;;;;;;;;;:98;;;;15258:14;:22;15273:6;15258:22;;;;;;;;;;;;;;;;;;;;;;;;;:59;;15301:16;;15258:59;;;15283:15;;15258:59;15247:6;:71;;15220:98;15212:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;15359:15;:23;15375:6;15359:23;;;;;;;;;;;;;;;;;;;;;;;;;:73;;;;15420:12;15407:9;;15386:7;:18;15394:9;15386:18;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:46;;15359:73;15351:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;15512:1;15491:9;:17;15501:6;15491:17;;;;;;;;;;;;;;;;:22;15487:261;;5340:1;15566:2;:15;;;;:::i;:::-;15547;;:35;;;;:::i;:::-;15537:6;:45;;:70;;;;;15606:1;15586:8;:16;15595:6;15586:16;;;;;;;;;;;;;;;;:21;15537:70;:107;;;;;15629:15;15611;;:33;15537:107;15529:161;;;;;;;;;;;;:::i;:::-;;;;;;;;;15724:12;15705:8;:16;15714:6;15705:16;;;;;;;;;;;;;;;:31;;;;15487:261;15772:14;:25;15787:9;15772:25;;;;;;;;;;;;;;;;;;;;;;;;;15768:564;;;15833:12;15814:8;:16;15823:6;15814:16;;;;;;;;;;;;;;;:31;;;;15768:564;;;15867:21;15881:6;15867:13;:21::i;:::-;15863:469;;;15909:17;;;;;;;;;;;:54;;;;;15948:15;15930;;:33;15909:54;:92;;;;;15989:12;15967:7;:18;15975:9;15967:18;;;;;;;;;;;;;;;;:34;15909:92;:121;;;;;16029:1;16005:9;:20;16015:9;16005:20;;;;;;;;;;;;;;;;:25;15909:121;15905:275;;;16074:12;16051:9;:20;16061:9;16051:20;;;;;;;;;;;;;;;:35;;;;16110:54;16126:9;16137;16148:12;16162:1;16110:54;;;;;;;;;:::i;:::-;;;;;;;;15905:275;16215:12;16194:7;:18;16202:9;16194:18;;;;;;;;;;;;;;;:33;;;;16259:9;16246:22;;:9;:22;;;16242:78;;16308:12;16287:7;:18;16295:9;16287:18;;;;;;;;;;;;;;;:33;;;;16242:78;15863:469;15768:564;15119:1220;;;:::o;14876:235::-;14962:19;14984:14;;14962:36;;15050:11;15040:6;15017:9;:20;15027:9;15017:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:44;;15009:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;14951:160;14876:235;;:::o;16347:114::-;16409:4;16434:11;:19;16446:6;16434:19;;;;;;;;;;;;;;;;;;;;;;;;;16433:20;16426:27;;16347:114;;;:::o;16720:317::-;16790:7;16810:12;16825:14;:25;16840:9;16825:25;;;;;;;;;;;;;;;;;;;;;;;;;16810:40;;16861:17;16915:14;;16891:20;16903:7;16891:11;:20::i;:::-;16882:6;:29;;;;:::i;:::-;16881:48;;;;:::i;:::-;16861:68;;16978:9;16950;:24;16968:4;16950:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;17020:9;17011:6;:18;;;;:::i;:::-;17004:25;;;;16720:317;;;;:::o;17045:259::-;17111:4;17136:14;:26;17151:10;17136:26;;;;;;;;;;;;;;;;;;;;;;;;;17135:27;:47;;;;;17176:6;;;;;;;;;;;17175:7;17135:47;:71;;;;;17195:11;;;;;;;;;;;17135:71;:109;;;;;17219:14;:25;17234:9;17219:25;;;;;;;;;;;;;;;;;;;;;;;;;17135:109;:161;;;;;17285:11;;17257:9;:24;17275:4;17257:24;;;;;;;;;;;;;;;;:39;;17135:161;17128:168;;17045:259;;;:::o;17312:1560::-;7175:4;7166:6;;:13;;;;;;;;;;;;;;;;;;17375:20:::1;17407:13;;17398:6;:22;:47;;17432:13;;17398:47;;;17423:6;17398:47;17375:70;;17487:12;17460:9;:24;17478:4;17460:24;;;;;;;;;;;;;;;;:39;17456:84;;;17516:9;:24;17534:4;17516:24;;;;;;;;;;;;;;;;17501:39;;17456:84;17561:23;17623:8;;17618:1;17603:12;;17588;:27;;;;:::i;:::-;:31;;;;:::i;:::-;17587:44;;;;:::i;:::-;17561:70;;17658:15;17642:31;;;;;:::i;:::-;;;17686:21;17724:1;17710:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17686:40;;17755:4;17737;17742:1;17737:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17781:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17771:4;17776:1;17771:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17815:21;17839;17815:45;;17873:6;;;;;;;;;;;:57;;;17945:12;17972:1;17988:4;18015;18035:15;17873:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18074:17;18118:13;18094:21;:37;;;;:::i;:::-;18074:57;;18142:19;18191:1;18176:12;;:16;;;;:::i;:::-;18164:8;;:29;;;;:::i;:::-;18142:51;;18206:26;18268:11;18263:1;18248:12;;18236:9;:24;;;;:::i;:::-;:28;;;;:::i;:::-;18235:44;;;;:::i;:::-;18206:73;;18290:26;18331:18;18319:9;:30;;;;:::i;:::-;18290:59;;18395:1;18374:18;:22;18370:90;;;18411:20;;;;;;;;;;;:29;;:49;18441:18;18411:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18370:90;18502:1;18484:15;:19;18481:293;;;18519:6;;;;;;;;;;;:22;;;18549:18;18595:4;18619:15;18653:1;18673::::0;18693:20:::1;;;;;;;;;;;18732:15;18519:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18481:293;18791:73;18808:18;18828;18848:15;18791:73;;;;;;;;:::i;:::-;;;;;;;;17364:1508;;;;;;;;7193:5:::0;7184:6;;:14;;;;;;;;;;;;;;;;;;17312:1560;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;909:::-;982:8;992:6;1042:3;1035:4;1027:6;1023:17;1019:27;1009:122;;1050:79;;:::i;:::-;1009:122;1163:6;1150:20;1140:30;;1193:18;1185:6;1182:30;1179:117;;;1215:79;;:::i;:::-;1179:117;1329:4;1321:6;1317:17;1305:29;;1383:3;1375:4;1367:6;1363:17;1353:8;1349:32;1346:41;1343:128;;;1390:79;;:::i;:::-;1343:128;909:568;;;;;:::o;1483:133::-;1526:5;1564:6;1551:20;1542:29;;1580:30;1604:5;1580:30;:::i;:::-;1483:133;;;;:::o;1622:139::-;1668:5;1706:6;1693:20;1684:29;;1722:33;1749:5;1722:33;:::i;:::-;1622:139;;;;:::o;1767:143::-;1824:5;1855:6;1849:13;1840:22;;1871:33;1898:5;1871:33;:::i;:::-;1767:143;;;;:::o;1916:329::-;1975:6;2024:2;2012:9;2003:7;1999:23;1995:32;1992:119;;;2030:79;;:::i;:::-;1992:119;2150:1;2175:53;2220:7;2211:6;2200:9;2196:22;2175:53;:::i;:::-;2165:63;;2121:117;1916:329;;;;:::o;2251:351::-;2321:6;2370:2;2358:9;2349:7;2345:23;2341:32;2338:119;;;2376:79;;:::i;:::-;2338:119;2496:1;2521:64;2577:7;2568:6;2557:9;2553:22;2521:64;:::i;:::-;2511:74;;2467:128;2251:351;;;;:::o;2608:474::-;2676:6;2684;2733:2;2721:9;2712:7;2708:23;2704:32;2701:119;;;2739:79;;:::i;:::-;2701:119;2859:1;2884:53;2929:7;2920:6;2909:9;2905:22;2884:53;:::i;:::-;2874:63;;2830:117;2986:2;3012:53;3057:7;3048:6;3037:9;3033:22;3012:53;:::i;:::-;3002:63;;2957:118;2608:474;;;;;:::o;3088:619::-;3165:6;3173;3181;3230:2;3218:9;3209:7;3205:23;3201:32;3198:119;;;3236:79;;:::i;:::-;3198:119;3356:1;3381:53;3426:7;3417:6;3406:9;3402:22;3381:53;:::i;:::-;3371:63;;3327:117;3483:2;3509:53;3554:7;3545:6;3534:9;3530:22;3509:53;:::i;:::-;3499:63;;3454:118;3611:2;3637:53;3682:7;3673:6;3662:9;3658:22;3637:53;:::i;:::-;3627:63;;3582:118;3088:619;;;;;:::o;3713:468::-;3778:6;3786;3835:2;3823:9;3814:7;3810:23;3806:32;3803:119;;;3841:79;;:::i;:::-;3803:119;3961:1;3986:53;4031:7;4022:6;4011:9;4007:22;3986:53;:::i;:::-;3976:63;;3932:117;4088:2;4114:50;4156:7;4147:6;4136:9;4132:22;4114:50;:::i;:::-;4104:60;;4059:115;3713:468;;;;;:::o;4187:474::-;4255:6;4263;4312:2;4300:9;4291:7;4287:23;4283:32;4280:119;;;4318:79;;:::i;:::-;4280:119;4438:1;4463:53;4508:7;4499:6;4488:9;4484:22;4463:53;:::i;:::-;4453:63;;4409:117;4565:2;4591:53;4636:7;4627:6;4616:9;4612:22;4591:53;:::i;:::-;4581:63;;4536:118;4187:474;;;;;:::o;4667:934::-;4789:6;4797;4805;4813;4862:2;4850:9;4841:7;4837:23;4833:32;4830:119;;;4868:79;;:::i;:::-;4830:119;5016:1;5005:9;5001:17;4988:31;5046:18;5038:6;5035:30;5032:117;;;5068:79;;:::i;:::-;5032:117;5181:80;5253:7;5244:6;5233:9;5229:22;5181:80;:::i;:::-;5163:98;;;;4959:312;5338:2;5327:9;5323:18;5310:32;5369:18;5361:6;5358:30;5355:117;;;5391:79;;:::i;:::-;5355:117;5504:80;5576:7;5567:6;5556:9;5552:22;5504:80;:::i;:::-;5486:98;;;;5281:313;4667:934;;;;;;;:::o;5607:698::-;5699:6;5707;5715;5764:2;5752:9;5743:7;5739:23;5735:32;5732:119;;;5770:79;;:::i;:::-;5732:119;5918:1;5907:9;5903:17;5890:31;5948:18;5940:6;5937:30;5934:117;;;5970:79;;:::i;:::-;5934:117;6083:80;6155:7;6146:6;6135:9;6131:22;6083:80;:::i;:::-;6065:98;;;;5861:312;6212:2;6238:50;6280:7;6271:6;6260:9;6256:22;6238:50;:::i;:::-;6228:60;;6183:115;5607:698;;;;;:::o;6311:323::-;6367:6;6416:2;6404:9;6395:7;6391:23;6387:32;6384:119;;;6422:79;;:::i;:::-;6384:119;6542:1;6567:50;6609:7;6600:6;6589:9;6585:22;6567:50;:::i;:::-;6557:60;;6513:114;6311:323;;;;:::o;6640:753::-;6720:6;6728;6736;6744;6793:3;6781:9;6772:7;6768:23;6764:33;6761:120;;;6800:79;;:::i;:::-;6761:120;6920:1;6945:50;6987:7;6978:6;6967:9;6963:22;6945:50;:::i;:::-;6935:60;;6891:114;7044:2;7070:50;7112:7;7103:6;7092:9;7088:22;7070:50;:::i;:::-;7060:60;;7015:115;7169:2;7195:53;7240:7;7231:6;7220:9;7216:22;7195:53;:::i;:::-;7185:63;;7140:118;7297:2;7323:53;7368:7;7359:6;7348:9;7344:22;7323:53;:::i;:::-;7313:63;;7268:118;6640:753;;;;;;;:::o;7399:468::-;7464:6;7472;7521:2;7509:9;7500:7;7496:23;7492:32;7489:119;;;7527:79;;:::i;:::-;7489:119;7647:1;7672:50;7714:7;7705:6;7694:9;7690:22;7672:50;:::i;:::-;7662:60;;7618:114;7771:2;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7742:118;7399:468;;;;;:::o;7873:329::-;7932:6;7981:2;7969:9;7960:7;7956:23;7952:32;7949:119;;;7987:79;;:::i;:::-;7949:119;8107:1;8132:53;8177:7;8168:6;8157:9;8153:22;8132:53;:::i;:::-;8122:63;;8078:117;7873:329;;;;:::o;8208:474::-;8276:6;8284;8333:2;8321:9;8312:7;8308:23;8304:32;8301:119;;;8339:79;;:::i;:::-;8301:119;8459:1;8484:53;8529:7;8520:6;8509:9;8505:22;8484:53;:::i;:::-;8474:63;;8430:117;8586:2;8612:53;8657:7;8648:6;8637:9;8633:22;8612:53;:::i;:::-;8602:63;;8557:118;8208:474;;;;;:::o;8688:::-;8756:6;8764;8813:2;8801:9;8792:7;8788:23;8784:32;8781:119;;;8819:79;;:::i;:::-;8781:119;8939:1;8964:53;9009:7;9000:6;8989:9;8985:22;8964:53;:::i;:::-;8954:63;;8910:117;9066:2;9092:53;9137:7;9128:6;9117:9;9113:22;9092:53;:::i;:::-;9082:63;;9037:118;8688:474;;;;;:::o;9168:619::-;9245:6;9253;9261;9310:2;9298:9;9289:7;9285:23;9281:32;9278:119;;;9316:79;;:::i;:::-;9278:119;9436:1;9461:53;9506:7;9497:6;9486:9;9482:22;9461:53;:::i;:::-;9451:63;;9407:117;9563:2;9589:53;9634:7;9625:6;9614:9;9610:22;9589:53;:::i;:::-;9579:63;;9534:118;9691:2;9717:53;9762:7;9753:6;9742:9;9738:22;9717:53;:::i;:::-;9707:63;;9662:118;9168:619;;;;;:::o;9793:663::-;9881:6;9889;9897;9946:2;9934:9;9925:7;9921:23;9917:32;9914:119;;;9952:79;;:::i;:::-;9914:119;10072:1;10097:64;10153:7;10144:6;10133:9;10129:22;10097:64;:::i;:::-;10087:74;;10043:128;10210:2;10236:64;10292:7;10283:6;10272:9;10268:22;10236:64;:::i;:::-;10226:74;;10181:129;10349:2;10375:64;10431:7;10422:6;10411:9;10407:22;10375:64;:::i;:::-;10365:74;;10320:129;9793:663;;;;;:::o;10462:765::-;10548:6;10556;10564;10572;10621:3;10609:9;10600:7;10596:23;10592:33;10589:120;;;10628:79;;:::i;:::-;10589:120;10748:1;10773:53;10818:7;10809:6;10798:9;10794:22;10773:53;:::i;:::-;10763:63;;10719:117;10875:2;10901:53;10946:7;10937:6;10926:9;10922:22;10901:53;:::i;:::-;10891:63;;10846:118;11003:2;11029:53;11074:7;11065:6;11054:9;11050:22;11029:53;:::i;:::-;11019:63;;10974:118;11131:2;11157:53;11202:7;11193:6;11182:9;11178:22;11157:53;:::i;:::-;11147:63;;11102:118;10462:765;;;;;;;:::o;11233:179::-;11302:10;11323:46;11365:3;11357:6;11323:46;:::i;:::-;11401:4;11396:3;11392:14;11378:28;;11233:179;;;;:::o;11418:147::-;11513:45;11552:5;11513:45;:::i;:::-;11508:3;11501:58;11418:147;;:::o;11571:142::-;11674:32;11700:5;11674:32;:::i;:::-;11669:3;11662:45;11571:142;;:::o;11719:108::-;11796:24;11814:5;11796:24;:::i;:::-;11791:3;11784:37;11719:108;;:::o;11833:118::-;11920:24;11938:5;11920:24;:::i;:::-;11915:3;11908:37;11833:118;;:::o;11987:732::-;12106:3;12135:54;12183:5;12135:54;:::i;:::-;12205:86;12284:6;12279:3;12205:86;:::i;:::-;12198:93;;12315:56;12365:5;12315:56;:::i;:::-;12394:7;12425:1;12410:284;12435:6;12432:1;12429:13;12410:284;;;12511:6;12505:13;12538:63;12597:3;12582:13;12538:63;:::i;:::-;12531:70;;12624:60;12677:6;12624:60;:::i;:::-;12614:70;;12470:224;12457:1;12454;12450:9;12445:14;;12410:284;;;12414:14;12710:3;12703:10;;12111:608;;;11987:732;;;;:::o;12725:109::-;12806:21;12821:5;12806:21;:::i;:::-;12801:3;12794:34;12725:109;;:::o;12840:167::-;12945:55;12994:5;12945:55;:::i;:::-;12940:3;12933:68;12840:167;;:::o;13013:147::-;13108:45;13147:5;13108:45;:::i;:::-;13103:3;13096:58;13013:147;;:::o;13166:143::-;13259:43;13296:5;13259:43;:::i;:::-;13254:3;13247:56;13166:143;;:::o;13315:::-;13408:43;13445:5;13408:43;:::i;:::-;13403:3;13396:56;13315:143;;:::o;13464:::-;13557:43;13594:5;13557:43;:::i;:::-;13552:3;13545:56;13464:143;;:::o;13613:364::-;13701:3;13729:39;13762:5;13729:39;:::i;:::-;13784:71;13848:6;13843:3;13784:71;:::i;:::-;13777:78;;13864:52;13909:6;13904:3;13897:4;13890:5;13886:16;13864:52;:::i;:::-;13941:29;13963:6;13941:29;:::i;:::-;13936:3;13932:39;13925:46;;13705:272;13613:364;;;;:::o;13983:366::-;14125:3;14146:67;14210:2;14205:3;14146:67;:::i;:::-;14139:74;;14222:93;14311:3;14222:93;:::i;:::-;14340:2;14335:3;14331:12;14324:19;;13983:366;;;:::o;14355:::-;14497:3;14518:67;14582:2;14577:3;14518:67;:::i;:::-;14511:74;;14594:93;14683:3;14594:93;:::i;:::-;14712:2;14707:3;14703:12;14696:19;;14355:366;;;:::o;14727:::-;14869:3;14890:67;14954:2;14949:3;14890:67;:::i;:::-;14883:74;;14966:93;15055:3;14966:93;:::i;:::-;15084:2;15079:3;15075:12;15068:19;;14727:366;;;:::o;15099:::-;15241:3;15262:67;15326:2;15321:3;15262:67;:::i;:::-;15255:74;;15338:93;15427:3;15338:93;:::i;:::-;15456:2;15451:3;15447:12;15440:19;;15099:366;;;:::o;15471:::-;15613:3;15634:67;15698:2;15693:3;15634:67;:::i;:::-;15627:74;;15710:93;15799:3;15710:93;:::i;:::-;15828:2;15823:3;15819:12;15812:19;;15471:366;;;:::o;15843:::-;15985:3;16006:67;16070:2;16065:3;16006:67;:::i;:::-;15999:74;;16082:93;16171:3;16082:93;:::i;:::-;16200:2;16195:3;16191:12;16184:19;;15843:366;;;:::o;16215:::-;16357:3;16378:67;16442:2;16437:3;16378:67;:::i;:::-;16371:74;;16454:93;16543:3;16454:93;:::i;:::-;16572:2;16567:3;16563:12;16556:19;;16215:366;;;:::o;16587:::-;16729:3;16750:67;16814:2;16809:3;16750:67;:::i;:::-;16743:74;;16826:93;16915:3;16826:93;:::i;:::-;16944:2;16939:3;16935:12;16928:19;;16587:366;;;:::o;16959:::-;17101:3;17122:67;17186:2;17181:3;17122:67;:::i;:::-;17115:74;;17198:93;17287:3;17198:93;:::i;:::-;17316:2;17311:3;17307:12;17300:19;;16959:366;;;:::o;17331:::-;17473:3;17494:67;17558:2;17553:3;17494:67;:::i;:::-;17487:74;;17570:93;17659:3;17570:93;:::i;:::-;17688:2;17683:3;17679:12;17672:19;;17331:366;;;:::o;17703:::-;17845:3;17866:67;17930:2;17925:3;17866:67;:::i;:::-;17859:74;;17942:93;18031:3;17942:93;:::i;:::-;18060:2;18055:3;18051:12;18044:19;;17703:366;;;:::o;18075:::-;18217:3;18238:67;18302:2;18297:3;18238:67;:::i;:::-;18231:74;;18314:93;18403:3;18314:93;:::i;:::-;18432:2;18427:3;18423:12;18416:19;;18075:366;;;:::o;18447:::-;18589:3;18610:67;18674:2;18669:3;18610:67;:::i;:::-;18603:74;;18686:93;18775:3;18686:93;:::i;:::-;18804:2;18799:3;18795:12;18788:19;;18447:366;;;:::o;18819:::-;18961:3;18982:67;19046:2;19041:3;18982:67;:::i;:::-;18975:74;;19058:93;19147:3;19058:93;:::i;:::-;19176:2;19171:3;19167:12;19160:19;;18819:366;;;:::o;19191:118::-;19278:24;19296:5;19278:24;:::i;:::-;19273:3;19266:37;19191:118;;:::o;19315:112::-;19398:22;19414:5;19398:22;:::i;:::-;19393:3;19386:35;19315:112;;:::o;19433:222::-;19526:4;19564:2;19553:9;19549:18;19541:26;;19577:71;19645:1;19634:9;19630:17;19621:6;19577:71;:::i;:::-;19433:222;;;;:::o;19661:254::-;19770:4;19808:2;19797:9;19793:18;19785:26;;19821:87;19905:1;19894:9;19890:17;19881:6;19821:87;:::i;:::-;19661:254;;;;:::o;19921:565::-;20104:4;20142:3;20131:9;20127:19;20119:27;;20156:71;20224:1;20213:9;20209:17;20200:6;20156:71;:::i;:::-;20237:72;20305:2;20294:9;20290:18;20281:6;20237:72;:::i;:::-;20319;20387:2;20376:9;20372:18;20363:6;20319:72;:::i;:::-;20401:78;20475:2;20464:9;20460:18;20451:6;20401:78;:::i;:::-;19921:565;;;;;;;:::o;20492:::-;20675:4;20713:3;20702:9;20698:19;20690:27;;20727:71;20795:1;20784:9;20780:17;20771:6;20727:71;:::i;:::-;20808:72;20876:2;20865:9;20861:18;20852:6;20808:72;:::i;:::-;20890;20958:2;20947:9;20943:18;20934:6;20890:72;:::i;:::-;20972:78;21046:2;21035:9;21031:18;21022:6;20972:78;:::i;:::-;20492:565;;;;;;;:::o;21063:::-;21246:4;21284:3;21273:9;21269:19;21261:27;;21298:71;21366:1;21355:9;21351:17;21342:6;21298:71;:::i;:::-;21379:72;21447:2;21436:9;21432:18;21423:6;21379:72;:::i;:::-;21461;21529:2;21518:9;21514:18;21505:6;21461:72;:::i;:::-;21543:78;21617:2;21606:9;21602:18;21593:6;21543:78;:::i;:::-;21063:565;;;;;;;:::o;21634:823::-;21891:4;21929:3;21918:9;21914:19;21906:27;;21943:71;22011:1;22000:9;21996:17;21987:6;21943:71;:::i;:::-;22024:72;22092:2;22081:9;22077:18;22068:6;22024:72;:::i;:::-;22106:80;22182:2;22171:9;22167:18;22158:6;22106:80;:::i;:::-;22196;22272:2;22261:9;22257:18;22248:6;22196:80;:::i;:::-;22286:81;22362:3;22351:9;22347:19;22338:6;22286:81;:::i;:::-;22377:73;22445:3;22434:9;22430:19;22421:6;22377:73;:::i;:::-;21634:823;;;;;;;;;:::o;22463:210::-;22550:4;22588:2;22577:9;22573:18;22565:26;;22601:65;22663:1;22652:9;22648:17;22639:6;22601:65;:::i;:::-;22463:210;;;;:::o;22679:258::-;22790:4;22828:2;22817:9;22813:18;22805:26;;22841:89;22927:1;22916:9;22912:17;22903:6;22841:89;:::i;:::-;22679:258;;;;:::o;22943:313::-;23056:4;23094:2;23083:9;23079:18;23071:26;;23143:9;23137:4;23133:20;23129:1;23118:9;23114:17;23107:47;23171:78;23244:4;23235:6;23171:78;:::i;:::-;23163:86;;22943:313;;;;:::o;23262:419::-;23428:4;23466:2;23455:9;23451:18;23443:26;;23515:9;23509:4;23505:20;23501:1;23490:9;23486:17;23479:47;23543:131;23669:4;23543:131;:::i;:::-;23535:139;;23262:419;;;:::o;23687:::-;23853:4;23891:2;23880:9;23876:18;23868:26;;23940:9;23934:4;23930:20;23926:1;23915:9;23911:17;23904:47;23968:131;24094:4;23968:131;:::i;:::-;23960:139;;23687:419;;;:::o;24112:::-;24278:4;24316:2;24305:9;24301:18;24293:26;;24365:9;24359:4;24355:20;24351:1;24340:9;24336:17;24329:47;24393:131;24519:4;24393:131;:::i;:::-;24385:139;;24112:419;;;:::o;24537:::-;24703:4;24741:2;24730:9;24726:18;24718:26;;24790:9;24784:4;24780:20;24776:1;24765:9;24761:17;24754:47;24818:131;24944:4;24818:131;:::i;:::-;24810:139;;24537:419;;;:::o;24962:::-;25128:4;25166:2;25155:9;25151:18;25143:26;;25215:9;25209:4;25205:20;25201:1;25190:9;25186:17;25179:47;25243:131;25369:4;25243:131;:::i;:::-;25235:139;;24962:419;;;:::o;25387:::-;25553:4;25591:2;25580:9;25576:18;25568:26;;25640:9;25634:4;25630:20;25626:1;25615:9;25611:17;25604:47;25668:131;25794:4;25668:131;:::i;:::-;25660:139;;25387:419;;;:::o;25812:::-;25978:4;26016:2;26005:9;26001:18;25993:26;;26065:9;26059:4;26055:20;26051:1;26040:9;26036:17;26029:47;26093:131;26219:4;26093:131;:::i;:::-;26085:139;;25812:419;;;:::o;26237:::-;26403:4;26441:2;26430:9;26426:18;26418:26;;26490:9;26484:4;26480:20;26476:1;26465:9;26461:17;26454:47;26518:131;26644:4;26518:131;:::i;:::-;26510:139;;26237:419;;;:::o;26662:::-;26828:4;26866:2;26855:9;26851:18;26843:26;;26915:9;26909:4;26905:20;26901:1;26890:9;26886:17;26879:47;26943:131;27069:4;26943:131;:::i;:::-;26935:139;;26662:419;;;:::o;27087:::-;27253:4;27291:2;27280:9;27276:18;27268:26;;27340:9;27334:4;27330:20;27326:1;27315:9;27311:17;27304:47;27368:131;27494:4;27368:131;:::i;:::-;27360:139;;27087:419;;;:::o;27512:::-;27678:4;27716:2;27705:9;27701:18;27693:26;;27765:9;27759:4;27755:20;27751:1;27740:9;27736:17;27729:47;27793:131;27919:4;27793:131;:::i;:::-;27785:139;;27512:419;;;:::o;27937:::-;28103:4;28141:2;28130:9;28126:18;28118:26;;28190:9;28184:4;28180:20;28176:1;28165:9;28161:17;28154:47;28218:131;28344:4;28218:131;:::i;:::-;28210:139;;27937:419;;;:::o;28362:::-;28528:4;28566:2;28555:9;28551:18;28543:26;;28615:9;28609:4;28605:20;28601:1;28590:9;28586:17;28579:47;28643:131;28769:4;28643:131;:::i;:::-;28635:139;;28362:419;;;:::o;28787:::-;28953:4;28991:2;28980:9;28976:18;28968:26;;29040:9;29034:4;29030:20;29026:1;29015:9;29011:17;29004:47;29068:131;29194:4;29068:131;:::i;:::-;29060:139;;28787:419;;;:::o;29212:222::-;29305:4;29343:2;29332:9;29328:18;29320:26;;29356:71;29424:1;29413:9;29409:17;29400:6;29356:71;:::i;:::-;29212:222;;;;:::o;29440:831::-;29703:4;29741:3;29730:9;29726:19;29718:27;;29755:71;29823:1;29812:9;29808:17;29799:6;29755:71;:::i;:::-;29836:80;29912:2;29901:9;29897:18;29888:6;29836:80;:::i;:::-;29963:9;29957:4;29953:20;29948:2;29937:9;29933:18;29926:48;29991:108;30094:4;30085:6;29991:108;:::i;:::-;29983:116;;30109:72;30177:2;30166:9;30162:18;30153:6;30109:72;:::i;:::-;30191:73;30259:3;30248:9;30244:19;30235:6;30191:73;:::i;:::-;29440:831;;;;;;;;:::o;30277:442::-;30426:4;30464:2;30453:9;30449:18;30441:26;;30477:71;30545:1;30534:9;30530:17;30521:6;30477:71;:::i;:::-;30558:72;30626:2;30615:9;30611:18;30602:6;30558:72;:::i;:::-;30640;30708:2;30697:9;30693:18;30684:6;30640:72;:::i;:::-;30277:442;;;;;;:::o;30725:214::-;30814:4;30852:2;30841:9;30837:18;30829:26;;30865:67;30929:1;30918:9;30914:17;30905:6;30865:67;:::i;:::-;30725:214;;;;:::o;31026:132::-;31093:4;31116:3;31108:11;;31146:4;31141:3;31137:14;31129:22;;31026:132;;;:::o;31164:114::-;31231:6;31265:5;31259:12;31249:22;;31164:114;;;:::o;31284:99::-;31336:6;31370:5;31364:12;31354:22;;31284:99;;;:::o;31389:113::-;31459:4;31491;31486:3;31482:14;31474:22;;31389:113;;;:::o;31508:184::-;31607:11;31641:6;31636:3;31629:19;31681:4;31676:3;31672:14;31657:29;;31508:184;;;;:::o;31698:169::-;31782:11;31816:6;31811:3;31804:19;31856:4;31851:3;31847:14;31832:29;;31698:169;;;;:::o;31873:305::-;31913:3;31932:20;31950:1;31932:20;:::i;:::-;31927:25;;31966:20;31984:1;31966:20;:::i;:::-;31961:25;;32120:1;32052:66;32048:74;32045:1;32042:81;32039:107;;;32126:18;;:::i;:::-;32039:107;32170:1;32167;32163:9;32156:16;;31873:305;;;;:::o;32184:185::-;32224:1;32241:20;32259:1;32241:20;:::i;:::-;32236:25;;32275:20;32293:1;32275:20;:::i;:::-;32270:25;;32314:1;32304:35;;32319:18;;:::i;:::-;32304:35;32361:1;32358;32354:9;32349:14;;32184:185;;;;:::o;32375:848::-;32436:5;32443:4;32467:6;32458:15;;32491:5;32482:14;;32505:712;32526:1;32516:8;32513:15;32505:712;;;32621:4;32616:3;32612:14;32606:4;32603:24;32600:50;;;32630:18;;:::i;:::-;32600:50;32680:1;32670:8;32666:16;32663:451;;;33095:4;33088:5;33084:16;33075:25;;32663:451;33145:4;33139;33135:15;33127:23;;33175:32;33198:8;33175:32;:::i;:::-;33163:44;;32505:712;;;32375:848;;;;;;;:::o;33229:281::-;33287:5;33311:23;33329:4;33311:23;:::i;:::-;33303:31;;33355:25;33371:8;33355:25;:::i;:::-;33343:37;;33399:104;33436:66;33426:8;33420:4;33399:104;:::i;:::-;33390:113;;33229:281;;;;:::o;33516:1073::-;33570:5;33761:8;33751:40;;33782:1;33773:10;;33784:5;;33751:40;33810:4;33800:36;;33827:1;33818:10;;33829:5;;33800:36;33896:4;33944:1;33939:27;;;;33980:1;33975:191;;;;33889:277;;33939:27;33957:1;33948:10;;33959:5;;;33975:191;34020:3;34010:8;34007:17;34004:43;;;34027:18;;:::i;:::-;34004:43;34076:8;34073:1;34069:16;34060:25;;34111:3;34104:5;34101:14;34098:40;;;34118:18;;:::i;:::-;34098:40;34151:5;;;33889:277;;34275:2;34265:8;34262:16;34256:3;34250:4;34247:13;34243:36;34225:2;34215:8;34212:16;34207:2;34201:4;34198:12;34194:35;34178:111;34175:246;;;34331:8;34325:4;34321:19;34312:28;;34366:3;34359:5;34356:14;34353:40;;;34373:18;;:::i;:::-;34353:40;34406:5;;34175:246;34446:42;34484:3;34474:8;34468:4;34465:1;34446:42;:::i;:::-;34431:57;;;;34520:4;34515:3;34511:14;34504:5;34501:25;34498:51;;;34529:18;;:::i;:::-;34498:51;34578:4;34571:5;34567:16;34558:25;;33516:1073;;;;;;:::o;34595:348::-;34635:7;34658:20;34676:1;34658:20;:::i;:::-;34653:25;;34692:20;34710:1;34692:20;:::i;:::-;34687:25;;34880:1;34812:66;34808:74;34805:1;34802:81;34797:1;34790:9;34783:17;34779:105;34776:131;;;34887:18;;:::i;:::-;34776:131;34935:1;34932;34928:9;34917:20;;34595:348;;;;:::o;34949:191::-;34989:4;35009:20;35027:1;35009:20;:::i;:::-;35004:25;;35043:20;35061:1;35043:20;:::i;:::-;35038:25;;35082:1;35079;35076:8;35073:34;;;35087:18;;:::i;:::-;35073:34;35132:1;35129;35125:9;35117:17;;34949:191;;;;:::o;35146:96::-;35183:7;35212:24;35230:5;35212:24;:::i;:::-;35201:35;;35146:96;;;:::o;35248:104::-;35293:7;35322:24;35340:5;35322:24;:::i;:::-;35311:35;;35248:104;;;:::o;35358:90::-;35392:7;35435:5;35428:13;35421:21;35410:32;;35358:90;;;:::o;35454:126::-;35491:7;35531:42;35524:5;35520:54;35509:65;;35454:126;;;:::o;35586:77::-;35623:7;35652:5;35641:16;;35586:77;;;:::o;35669:86::-;35704:7;35744:4;35737:5;35733:16;35722:27;;35669:86;;;:::o;35761:134::-;35819:9;35852:37;35883:5;35852:37;:::i;:::-;35839:50;;35761:134;;;:::o;35901:144::-;35969:9;36002:37;36033:5;36002:37;:::i;:::-;35989:50;;35901:144;;;:::o;36051:121::-;36109:9;36142:24;36160:5;36142:24;:::i;:::-;36129:37;;36051:121;;;:::o;36178:117::-;36234:9;36267:22;36283:5;36267:22;:::i;:::-;36254:35;;36178:117;;;:::o;36301:::-;36357:9;36390:22;36406:5;36390:22;:::i;:::-;36377:35;;36301:117;;;:::o;36424:::-;36480:9;36513:22;36529:5;36513:22;:::i;:::-;36500:35;;36424:117;;;:::o;36547:126::-;36597:9;36630:37;36661:5;36630:37;:::i;:::-;36617:50;;36547:126;;;:::o;36679:113::-;36729:9;36762:24;36780:5;36762:24;:::i;:::-;36749:37;;36679:113;;;:::o;36798:307::-;36866:1;36876:113;36890:6;36887:1;36884:13;36876:113;;;36975:1;36970:3;36966:11;36960:18;36956:1;36951:3;36947:11;36940:39;36912:2;36909:1;36905:10;36900:15;;36876:113;;;37007:6;37004:1;37001:13;36998:101;;;37087:1;37078:6;37073:3;37069:16;37062:27;36998:101;36847:258;36798:307;;;:::o;37111:171::-;37150:3;37173:24;37191:5;37173:24;:::i;:::-;37164:33;;37219:4;37212:5;37209:15;37206:41;;;37227:18;;:::i;:::-;37206:41;37274:1;37267:5;37263:13;37256:20;;37111:171;;;:::o;37288:233::-;37327:3;37350:24;37368:5;37350:24;:::i;:::-;37341:33;;37396:66;37389:5;37386:77;37383:103;;;37466:18;;:::i;:::-;37383:103;37513:1;37506:5;37502:13;37495:20;;37288:233;;;:::o;37527:180::-;37575:77;37572:1;37565:88;37672:4;37669:1;37662:15;37696:4;37693:1;37686:15;37713:180;37761:77;37758:1;37751:88;37858:4;37855:1;37848:15;37882:4;37879:1;37872:15;37899:180;37947:77;37944:1;37937:88;38044:4;38041:1;38034:15;38068:4;38065:1;38058:15;38085:180;38133:77;38130:1;38123:88;38230:4;38227:1;38220:15;38254:4;38251:1;38244:15;38271:117;38380:1;38377;38370:12;38394:117;38503:1;38500;38493:12;38517:117;38626:1;38623;38616:12;38640:117;38749:1;38746;38739:12;38763:117;38872:1;38869;38862:12;38886:102;38927:6;38978:2;38974:7;38969:2;38962:5;38958:14;38954:28;38944:38;;38886:102;;;:::o;38994:::-;39036:8;39083:5;39080:1;39076:13;39055:34;;38994:102;;;:::o;39102:171::-;39242:23;39238:1;39230:6;39226:14;39219:47;39102:171;:::o;39279:224::-;39419:34;39415:1;39407:6;39403:14;39396:58;39488:7;39483:2;39475:6;39471:15;39464:32;39279:224;:::o;39509:167::-;39649:19;39645:1;39637:6;39633:14;39626:43;39509:167;:::o;39682:174::-;39822:26;39818:1;39810:6;39806:14;39799:50;39682:174;:::o;39862:225::-;40002:34;39998:1;39990:6;39986:14;39979:58;40071:8;40066:2;40058:6;40054:15;40047:33;39862:225;:::o;40093:172::-;40233:24;40229:1;40221:6;40217:14;40210:48;40093:172;:::o;40271:170::-;40411:22;40407:1;40399:6;40395:14;40388:46;40271:170;:::o;40447:177::-;40587:29;40583:1;40575:6;40571:14;40564:53;40447:177;:::o;40630:179::-;40770:31;40766:1;40758:6;40754:14;40747:55;40630:179;:::o;40815:174::-;40955:26;40951:1;40943:6;40939:14;40932:50;40815:174;:::o;40995:228::-;41135:34;41131:1;41123:6;41119:14;41112:58;41204:11;41199:2;41191:6;41187:15;41180:36;40995:228;:::o;41229:182::-;41369:34;41365:1;41357:6;41353:14;41346:58;41229:182;:::o;41417:171::-;41557:23;41553:1;41545:6;41541:14;41534:47;41417:171;:::o;41594:221::-;41734:34;41730:1;41722:6;41718:14;41711:58;41803:4;41798:2;41790:6;41786:15;41779:29;41594:221;:::o;41821:122::-;41894:24;41912:5;41894:24;:::i;:::-;41887:5;41884:35;41874:63;;41933:1;41930;41923:12;41874:63;41821:122;:::o;41949:116::-;42019:21;42034:5;42019:21;:::i;:::-;42012:5;42009:32;41999:60;;42055:1;42052;42045:12;41999:60;41949:116;:::o;42071:122::-;42144:24;42162:5;42144:24;:::i;:::-;42137:5;42134:35;42124:63;;42183:1;42180;42173:12;42124:63;42071:122;:::o
Swarm Source
ipfs://0bcb5081f89a14082f82b216579e64c9f370daea3dd2a2db5c2be1ab99f16a83
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.07
Net Worth in ETH
0.000037
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,001.96 | 0.00003728 | $0.074641 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.