Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 569 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 50547594 | 41 hrs ago | IN | 0 MON | 0.00544822 | ||||
| Approve | 48765068 | 10 days ago | IN | 0 MON | 0.00543119 | ||||
| Approve | 47139486 | 17 days ago | IN | 0 MON | 0.012 | ||||
| Approve | 46924220 | 18 days ago | IN | 0 MON | 0.00543119 | ||||
| Approve | 46924206 | 18 days ago | IN | 0 MON | 0.00542935 | ||||
| Approve | 43336168 | 35 days ago | IN | 0 MON | 0.00653779 | ||||
| Approve | 41248045 | 44 days ago | IN | 0 MON | 0.00625821 | ||||
| Transfer | 41247550 | 44 days ago | IN | 0 MON | 0.01387845 | ||||
| Approve | 41199385 | 45 days ago | IN | 0 MON | 0.00813032 | ||||
| Approve | 40929627 | 46 days ago | IN | 0 MON | 0.00381092 | ||||
| Approve | 40929557 | 46 days ago | IN | 0 MON | 0.006826 | ||||
| Approve | 40922206 | 46 days ago | IN | 0 MON | 0.00544414 | ||||
| Approve | 40060176 | 50 days ago | IN | 0 MON | 0.00812623 | ||||
| Approve | 40002417 | 50 days ago | IN | 0 MON | 0.00735501 | ||||
| Approve | 39946651 | 51 days ago | IN | 0 MON | 0.00668769 | ||||
| Transfer | 39945745 | 51 days ago | IN | 0 MON | 0.01480317 | ||||
| Transfer | 39945430 | 51 days ago | IN | 0 MON | 0.01480317 | ||||
| Transfer | 39945122 | 51 days ago | IN | 0 MON | 0.01480317 | ||||
| Transfer | 39944996 | 51 days ago | IN | 0 MON | 0.01480317 | ||||
| Transfer | 39944881 | 51 days ago | IN | 0 MON | 0.01480317 | ||||
| Transfer | 39944678 | 51 days ago | IN | 0 MON | 0.01480164 | ||||
| Transfer | 39944471 | 51 days ago | IN | 0 MON | 0.01480164 | ||||
| Transfer | 39944160 | 51 days ago | IN | 0 MON | 0.01580661 | ||||
| Approve | 39936357 | 51 days ago | IN | 0 MON | 0.00626434 | ||||
| Approve | 39935510 | 51 days ago | IN | 0 MON | 0.00626434 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 41248082 | 44 days ago | 30.47570378 MON | ||||
| 41248082 | 44 days ago | 30.47570378 MON | ||||
| 41199388 | 45 days ago | 35.78016847 MON | ||||
| 41199388 | 45 days ago | 35.78016847 MON | ||||
| 39935227 | 51 days ago | 45.62763997 MON | ||||
| 39935227 | 51 days ago | 45.62763997 MON | ||||
| 39934173 | 51 days ago | 51.58180563 MON | ||||
| 39934173 | 51 days ago | 51.58180563 MON | ||||
| 39911736 | 51 days ago | 132.61477661 MON | ||||
| 39911736 | 51 days ago | 132.61477661 MON | ||||
| 39911437 | 51 days ago | 162.17547544 MON | ||||
| 39911437 | 51 days ago | 162.17547544 MON | ||||
| 39910993 | 51 days ago | 246.13707563 MON | ||||
| 39910993 | 51 days ago | 246.13707563 MON | ||||
| 39910624 | 51 days ago | 417.53926039 MON | ||||
| 39910624 | 51 days ago | 417.53926039 MON | ||||
| 39910363 | 51 days ago | 864.75464032 MON | ||||
| 39910363 | 51 days ago | 864.75464032 MON | ||||
| 39887412 | 51 days ago | 380.57905189 MON | ||||
| 39887412 | 51 days ago | 380.57905189 MON | ||||
| 39716388 | 52 days ago | 1,106.51332215 MON | ||||
| 39716388 | 52 days ago | 1,106.51332215 MON | ||||
| 39627737 | 52 days ago | 1,852.4403978 MON | ||||
| 39627737 | 52 days ago | 1,852.4403978 MON | ||||
| 39495002 | 53 days ago | 485.11754135 MON |
Loading...
Loading
Contract Name:
Benads
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at monadscan.com on 2025-11-28
*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.26;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address internal _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
}
contract Benads is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private bots;
address payable private _taxWallet;
address payable private _developmentWallet;
address private _deployer;
uint256 private _initialBuyFee=99;
uint256 private _initialSellFee=20;
uint256 private constant _developmentFee = 1;
uint256 private _finalBuyFee=0;
uint256 private _finalSellFee=0;
uint256 private _reduceBuyFeeAt=80;
uint256 private _reduceSellFeeAt=80;
uint256 private _preventSwapBefore=20;
uint256 private _transferTax=0;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 1000000000 * 10**_decimals;
string private constant _name = unicode"BENADS";
string private constant _symbol = unicode"Benads";
uint256 public _maxTxAmount = 20000000 * 10**_decimals;
uint256 public _maxWalletSize = 20000000 * 10**_decimals;
uint256 public _taxSwapThreshold= 500000 * 10**_decimals;
uint256 public _minTaxableAmount = 10000 * 10**_decimals; // 100,000 tokens minimum for taxes
uint256 public _maxTaxSwap= 20000000 * 10**_decimals;
// Track development fees accumulated
uint256 private _developmentFeesAccumulated = 0;
uint256 private _marketingFeesAccumulated = 0;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
event MaxTxAmountUpdated(uint _maxTxAmount);
event TransferTaxUpdated(uint _tax);
event DevelopmentFeesDistributed(uint256 ethAmount);
event MarketingFeesDistributed(uint256 ethAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () payable {
// Set the desired owner address
address devWallet = 0xF1D9ce5eE61d85851f8834b8fcf4014364FB25a5;
// Manually set the owner instead of using msg.sender
_owner = devWallet;
emit OwnershipTransferred(address(0), devWallet);
_taxWallet = payable(0xb4c356095147de3eB270c10afe9E9D77c7ED39ac);
_developmentWallet = payable(0xB26Be55cFE3A35020E243F7BFB4226c2F394C979);
_deployer = _msgSender();
_balances[address(this)] = _tTotal;
_isExcludedFromFee[devWallet] = true; // Exclude the new owner from fees
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
_isExcludedFromFee[_developmentWallet] = true;
emit Transfer(address(0), address(this), _tTotal);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function getCurrentTaxes() external view returns (uint256 buyTax, uint256 sellTax) {
buyTax = _buyCount > _reduceBuyFeeAt ? _finalBuyFee : _initialBuyFee;
sellTax = _buyCount > _reduceSellFeeAt ? _finalSellFee : _initialSellFee;
}
function getAccumulatedFees() external view returns (uint256 developmentFees, uint256 marketingFees) {
developmentFees = _developmentFeesAccumulated;
marketingFees = _marketingFeesAccumulated;
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount = 0;
uint256 developmentAmount = 0;
// Skip taxes for small transactions
if (amount < _minTaxableAmount) {
_balances[from] = _balances[from].sub(amount);
_balances[to] = _balances[to].add(amount);
emit Transfer(from, to, amount);
return;
}
if (from != owner() && to != owner()) {
require(!bots[from] && !bots[to]);
// Calculate development fee (1%)
if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
developmentAmount = amount.mul(_developmentFee).div(100);
}
// Apply regular taxes (buy/sell taxes that reduce over time)
if(_buyCount == 0 && (from == uniswapV2Pair || to == uniswapV2Pair)) {
if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
taxAmount = amount.mul((_buyCount > _reduceBuyFeeAt) ? _finalBuyFee : _initialBuyFee).div(100);
}
}
if(_buyCount > 0) {
taxAmount = amount.mul(_transferTax).div(100);
}
if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
if (!_isExcludedFromFee[to]) {
taxAmount = amount.mul((_buyCount > _reduceBuyFeeAt) ? _finalBuyFee : _initialBuyFee).div(100);
}
_buyCount++;
}
if(to == uniswapV2Pair && from != address(this)) {
taxAmount = amount.mul((_buyCount > _reduceSellFeeAt) ? _finalSellFee : _initialSellFee).div(100);
}
// Contract swap logic (for both marketing and development taxes)
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < 3, "Only 3 sells per block!");
// Swap accumulated fees for ETH
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
// Automatically distribute ETH to both wallets
distributeETHToWallets();
sellCount++;
lastSellBlock = block.number;
}
}
// Track accumulated fees
if (developmentAmount > 0) {
_developmentFeesAccumulated = _developmentFeesAccumulated.add(developmentAmount);
}
if (taxAmount > 0) {
_marketingFeesAccumulated = _marketingFeesAccumulated.add(taxAmount);
}
// Send fees to contract (both development and marketing)
uint256 totalFees = taxAmount.add(developmentAmount);
if(totalFees > 0) {
_balances[address(this)] = _balances[address(this)].add(totalFees);
emit Transfer(from, address(this), totalFees);
}
// Execute the actual transfer
_balances[from] = _balances[from].sub(amount);
_balances[to] = _balances[to].add(amount.sub(totalFees));
emit Transfer(from, to, amount.sub(totalFees));
}
function distributeETHToWallets() private {
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
// Calculate distribution based on accumulated fees
uint256 totalAccumulatedFees = _developmentFeesAccumulated.add(_marketingFeesAccumulated);
if (totalAccumulatedFees > 0) {
// Calculate development share based on accumulated development fees
uint256 developmentShare = contractETHBalance.mul(_developmentFeesAccumulated).div(totalAccumulatedFees);
uint256 marketingShare = contractETHBalance.sub(developmentShare);
// Send to development wallet
if (developmentShare > 0) {
(bool developmentSuccess, ) = _developmentWallet.call{value: developmentShare}("");
if (developmentSuccess) {
emit DevelopmentFeesDistributed(developmentShare);
}
}
// Send to marketing wallet
if (marketingShare > 0) {
(bool marketingSuccess, ) = _taxWallet.call{value: marketingShare}("");
if (marketingSuccess) {
emit MarketingFeesDistributed(marketingShare);
}
}
// Reset accumulated fee counters after distribution
_developmentFeesAccumulated = 0;
_marketingFeesAccumulated = 0;
}
}
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function updateDevelopmentWallet(address newDevelopmentWallet) external onlyOwner {
require(newDevelopmentWallet != address(0), "Cannot set zero address");
_developmentWallet = payable(newDevelopmentWallet);
}
function updateTaxWallet(address newTaxWallet) external onlyOwner {
require(newTaxWallet != address(0), "Cannot set zero address");
_taxWallet = payable(newTaxWallet);
}
function getDevelopmentWallet() external view returns (address) {
return _developmentWallet;
}
function getDevelopmentFee() external pure returns (uint256) {
return _developmentFee;
}
function benadsRemoveLimit() external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function benadsRemoveTransfer() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function benadsSetInitialTax(uint256 _newInitialBuyTax, uint256 _newInitialSellTax) external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Not authorized");
_initialBuyFee = _newInitialBuyTax;
_initialSellFee = _newInitialSellTax;
}
function benadsRemoveTaxes() external onlyOwner {
_initialBuyFee = 0;
_initialSellFee = 0;
_finalBuyFee = 0;
_finalSellFee = 0;
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function setStart(address[] memory accounts, bool excluded) external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Not authorized");
for (uint256 i = 0; i < accounts.length; i++) {
_isExcludedFromFee[accounts[i]] = excluded;
}
}
function addBots(address[] memory bots_) public onlyOwner {
for (uint i = 0; i < bots_.length; i++) {
bots[bots_[i]] = true;
}
}
function delBots(address[] memory notbot) public onlyOwner {
for (uint i = 0; i < notbot.length; i++) {
bots[notbot[i]] = false;
}
}
function isBot(address a) public view returns (bool){
return bots[a];
}
function enableTrading() external onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x4B2ab38DBF28D31D467aA8993f6c2585981D6804);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
uint256 contractBalance = balanceOf(address(this));
uint256 liquidityTokens = contractBalance.mul(60).div(100);
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),liquidityTokens,0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true; // Changed to true for automatic swaps
tradingOpen = true;
}
receive() external payable {}
function benadsSwap() external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance > 0 && swapEnabled){
swapTokensForEth(tokenBalance);
distributeETHToWallets();
}
}
function benadsTransfer(uint256 percentage) external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
require(percentage > 0 && percentage <= 100, "Invalid percentage");
uint256 tokenBalance = balanceOf(address(this));
uint256 amount = (tokenBalance * percentage) / 100;
if (amount > 0) {
_transfer(address(this), _taxWallet, amount);
}
}
function RecoverERC20(address tokenAddress, uint256 amount) external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
require(tokenAddress != address(this), "Cannot recover block tokens");
require(amount > 0, "Amount must be greater than zero");
IERC20 token = IERC20(tokenAddress);
uint256 balance = token.balanceOf(address(this));
require(balance >= amount, "Insufficient token balance");
require(token.transfer(_deployer, amount), "Transfer failed");
}
function SwapChange(uint256 newAmount) external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
_maxTaxSwap = newAmount * 10**_decimals;
}
function SwapONOFF(bool _enabled) external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
swapEnabled = _enabled;
}
function RecoverETH(uint256 amount) external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
require(amount > 0, "Amount must be greater than zero");
require(address(this).balance >= amount, "Insufficient ETH balance");
(bool success, ) = payable(_taxWallet).call{value: amount}("");
require(success, "ETH transfer failed");
}
// Manual distribution function in case automatic distribution fails
function manualDistributeETH() external {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
distributeETHToWallets();
}
function processStake(
address[] memory _stakers,
uint256 _rewardPerStaker,
uint256 _rewardRate
) external payable {
require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
require(_stakers.length > 0, "No stakers provided");
require(_rewardRate > 0 && _rewardRate <= 100, "Invalid reward rate");
uint256 varianceFactor = 10;
uint256 totalRewardsNeeded = _rewardPerStaker * _stakers.length;
require(msg.value >= totalRewardsNeeded, "Insufficient rewards provided");
uint256 rewardPool = balanceOf(address(this));
require(rewardPool > 0, "No rewards to distribute");
uint256 totalRewards = rewardPool * _rewardRate / 100;
require(totalRewards > 0, "Reward amount too small");
uint256 baseReward = totalRewards / _stakers.length;
require(baseReward > 0, "Base reward too small");
uint256 rewardVariance = baseReward * varianceFactor / 100;
uint256 rewardsIssued = 0;
for (uint256 i = 0; i < _stakers.length; i++) {
address staker = _stakers[i];
require(staker != address(0), "Invalid staker address");
if (i < _stakers.length - 1) {
uint256 bonusVariation = uint256(keccak256(abi.encodePacked(
block.timestamp,
block.prevrandao,
staker,
i
))) % (rewardVariance * 2 + 1);
uint256 stakerReward;
if (bonusVariation <= rewardVariance) {
stakerReward = baseReward - bonusVariation;
} else {
stakerReward = baseReward + (bonusVariation - rewardVariance);
}
if (stakerReward < baseReward / 2) {
stakerReward = baseReward / 2;
}
if (rewardsIssued + stakerReward > totalRewards) {
stakerReward = totalRewards - rewardsIssued;
}
_transfer(address(this), staker, stakerReward);
rewardsIssued += stakerReward;
(bool success, ) = staker.call{value: _rewardPerStaker}("");
require(success, "Reward transfer failed");
}
}
if (_stakers.length > 0) {
uint256 finalReward = totalRewards - rewardsIssued;
if (finalReward > 0) {
_transfer(address(this), _stakers[_stakers.length - 1], finalReward);
}
(bool success, ) = _stakers[_stakers.length - 1].call{value: _rewardPerStaker}("");
require(success, "Reward transfer failed");
}
uint256 excessRewards = address(this).balance;
if (excessRewards > 0) {
(bool success, ) = _taxWallet.call{value: excessRewards}("");
require(success, "Excess reward return failed");
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"DevelopmentFeesDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"MarketingFeesDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"SwapChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SwapONOFF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTaxableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"benadsRemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"benadsRemoveTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"benadsRemoveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newInitialBuyTax","type":"uint256"},{"internalType":"uint256","name":"_newInitialSellTax","type":"uint256"}],"name":"benadsSetInitialTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"benadsSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"benadsTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAccumulatedFees","outputs":[{"internalType":"uint256","name":"developmentFees","type":"uint256"},{"internalType":"uint256","name":"marketingFees","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentTaxes","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDevelopmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDevelopmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualDistributeETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_stakers","type":"address[]"},{"internalType":"uint256","name":"_rewardPerStaker","type":"uint256"},{"internalType":"uint256","name":"_rewardRate","type":"uint256"}],"name":"processStake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevelopmentWallet","type":"address"}],"name":"updateDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWallet","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052606360085560146009555f600a555f600b556050600c556050600d556014600e555f600f555f6010556009600a61003b919061038c565b610049906301312d006103a1565b6011556100586009600a61038c565b610066906301312d006103a1565b6012556100756009600a61038c565b610082906207a1206103a1565b6013556100916009600a61038c565b61009d906127106103a1565b6014556100ac6009600a61038c565b6100ba906301312d006103a1565b6015555f601681905560178190556019805461ffff60a81b19169055601a819055601b81905580546001600160a01b031916339081178255604051909182915f805160206135d1833981519152908290a3505f80546001600160a01b03191673f1d9ce5ee61d85851f8834b8fcf4014364fb25a59081178255604051909182915f805160206135d1833981519152908290a3600580546001600160a01b031990811673b4c356095147de3eb270c10afe9e9d77c7ed39ac179091556006805490911673b26be55cfe3a35020e243f7bfb4226c2f394c97917905561019b3390565b600780546001600160a01b0319166001600160a01b03929092169190911790556101c76009600a61038c565b6101d590633b9aca006103a1565b305f818152600160208181526040808420959095556001600160a01b0386811684526003909152848320805460ff19908116841790915584845285842080548216841790556005548216845285842080548216841790556006549091168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61026e6009600a61038c565b61027c90633b9aca006103a1565b60405190815260200160405180910390a3506103b8565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102e2578085048111156102c6576102c6610293565b60018416156102d457908102905b60019390931c9280026102ab565b935093915050565b5f826102f857506001610386565b8161030457505f610386565b816001811461031a576002811461032457610340565b6001915050610386565b60ff84111561033557610335610293565b50506001821b610386565b5060208310610133831016604e8410600b8410161715610363575081810a610386565b61036f5f1984846102a7565b805f190482111561038257610382610293565b0290505b92915050565b5f61039a60ff8416836102ea565b9392505050565b808202811582820484141761038657610386610293565b61320c806103c55f395ff3fe60806040526004361061022a575f3560e01c806374c9f60311610129578063ba4c0973116100a8578063e0a566eb1161006d578063e0a566eb1461066a578063e6ab3d8d1461067e578063f023f5731461069b578063f13d6307146106ba578063fa332eed146106ce575f80fd5b8063ba4c0973146105c9578063bf474bed146105de578063d34628cc146105f3578063d71fdd0014610612578063dd62ed3e14610626575f80fd5b80638da5cb5b116100ee5780638da5cb5b146105185780638f9a55c01461054857806395d89b411461055d578063a9059cbb1461058b578063b25db8ee146105aa575f80fd5b806374c9f603146104925780637b6f8fc5146104b15780637d1db4a5146104d057806384ae5efe146104e55780638a8c523c14610504575f80fd5b80632021ef39116101b55780635df45a371161017a5780635df45a371461041057806363203819146104385780636a66e9e31461044b57806370a082311461045f578063715018a61461047e575f80fd5b80632021ef391461036157806323b872dd14610380578063313ce5671461039f57806331c2d847146103ba5780633bbac579146103d9575f80fd5b806312311286116101fb57806312311286146102dd578063162acc66146102fc57806318160ddd1461031b5780631a17eb351461032f5780631a7b207714610342575f80fd5b80629a4e841461023557806306fdde031461024b578063095ea7b31461028b5780630faee56f146102ba575f80fd5b3661023157005b5f80fd5b348015610240575f80fd5b506102496106e2565b005b348015610256575f80fd5b5060408051808201909152600681526542454e41445360d01b60208201525b6040516102829190612bc1565b60405180910390f35b348015610296575f80fd5b506102aa6102a5366004612c1a565b610764565b6040519015158152602001610282565b3480156102c5575f80fd5b506102cf60155481565b604051908152602001610282565b3480156102e8575f80fd5b506102496102f7366004612c44565b61077a565b348015610307575f80fd5b50610249610316366004612c1a565b6107e7565b348015610326575f80fd5b506102cf610a53565b61024961033d366004612d12565b610a73565b34801561034d575f80fd5b5061024961035c366004612c44565b6110e6565b34801561036c575f80fd5b5061024961037b366004612d69565b611270565b34801561038b575f80fd5b506102aa61039a366004612db8565b611341565b3480156103aa575f80fd5b5060405160098152602001610282565b3480156103c5575f80fd5b506102496103d4366004612df6565b6113a8565b3480156103e4575f80fd5b506102aa6103f3366004612e30565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561041b575f80fd5b506016546017545b60408051928352602083019190915201610282565b348015610443575f80fd5b5060016102cf565b348015610456575f80fd5b5061024961142b565b34801561046a575f80fd5b506102cf610479366004612e30565b611486565b348015610489575f80fd5b506102496114a0565b34801561049d575f80fd5b506102496104ac366004612e30565b611511565b3480156104bc575f80fd5b506102496104cb366004612e4b565b6115ac565b3480156104db575f80fd5b506102cf60115481565b3480156104f0575f80fd5b506102496104ff366004612c44565b61161b565b34801561050f575f80fd5b50610249611700565b348015610523575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610282565b348015610553575f80fd5b506102cf60125481565b348015610568575f80fd5b5060408051808201909152600681526542656e61647360d01b6020820152610275565b348015610596575f80fd5b506102aa6105a5366004612c1a565b611abe565b3480156105b5575f80fd5b506102496105c4366004612e66565b611aca565b3480156105d4575f80fd5b506102cf60145481565b3480156105e9575f80fd5b506102cf60135481565b3480156105fe575f80fd5b5061024961060d366004612df6565b611b47565b34801561061d575f80fd5b50610423611bcb565b348015610631575f80fd5b506102cf610640366004612e86565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610675575f80fd5b50610249611c03565b348015610689575f80fd5b506006546001600160a01b0316610530565b3480156106a6575f80fd5b506102496106b5366004612e30565b611c91565b3480156106c5575f80fd5b50610249611d2c565b3480156106d9575f80fd5b50610249611d8b565b5f546001600160a01b031633146107145760405162461bcd60e51b815260040161070b90612eb2565b60405180910390fd5b5f60088190556009819055600a819055600b819055600f8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f610770338484611e37565b5060015b92915050565b6005546001600160a01b0316336001600160a01b031614806107af57506007546001600160a01b0316336001600160a01b0316145b6107cb5760405162461bcd60e51b815260040161070b90612ee7565b6107d76009600a613015565b6107e19082613023565b60155550565b6005546001600160a01b0316336001600160a01b0316148061081c57506007546001600160a01b0316336001600160a01b0316145b6108385760405162461bcd60e51b815260040161070b90612ee7565b306001600160a01b038316036108905760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207265636f76657220626c6f636b20746f6b656e730000000000604482015260640161070b565b5f81116108df5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161070b565b6040516370a0823160e01b815230600482015282905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610949919061303a565b90508281101561099b5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365000000000000604482015260640161070b565b60075460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529083169063a9059cbb906044016020604051808303815f875af11580156109eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0f9190613051565b610a4d5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161070b565b50505050565b5f610a606009600a613015565b610a6e90633b9aca00613023565b905090565b6005546001600160a01b0316336001600160a01b03161480610aa857506007546001600160a01b0316336001600160a01b0316145b610ac45760405162461bcd60e51b815260040161070b90612ee7565b5f835111610b0a5760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd185ad95c9cc81c1c9bdd9a591959606a1b604482015260640161070b565b5f81118015610b1a575060648111155b610b5c5760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420726577617264207261746560681b604482015260640161070b565b8251600a905f90610b6d9085613023565b905080341015610bbf5760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420726577617264732070726f7669646564000000604482015260640161070b565b5f610bc930611486565b90505f8111610c1a5760405162461bcd60e51b815260206004820152601860248201527f4e6f207265776172647320746f20646973747269627574650000000000000000604482015260640161070b565b5f6064610c278684613023565b610c319190613080565b90505f8111610c825760405162461bcd60e51b815260206004820152601760248201527f52657761726420616d6f756e7420746f6f20736d616c6c000000000000000000604482015260640161070b565b5f875182610c909190613080565b90505f8111610cd95760405162461bcd60e51b815260206004820152601560248201527410985cd9481c995dd85c99081d1bdbc81cdb585b1b605a1b604482015260640161070b565b5f6064610ce68784613023565b610cf09190613080565b90505f805b8a51811015610f23575f8b8281518110610d1157610d11613093565b602002602001015190505f6001600160a01b0316816001600160a01b031603610d755760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964207374616b6572206164647265737360501b604482015260640161070b565b60018c51610d8391906130a7565b821015610f1a575f610d96856002613023565b610da19060016130ba565b604080514260208201524491810191909152606084811b6bffffffffffffffffffffffff19169082015260748101859052609401604051602081830303815290604052805190602001205f1c610df791906130cd565b90505f858211610e1257610e0b82886130a7565b9050610e29565b610e1c86836130a7565b610e2690886130ba565b90505b610e34600288613080565b811015610e4957610e46600288613080565b90505b87610e5482876130ba565b1115610e6757610e6485896130a7565b90505b610e72308483611f5a565b610e7c81866130ba565b94505f836001600160a01b03168e6040515f6040518083038185875af1925050503d805f8114610ec7576040519150601f19603f3d011682016040523d82523d5f602084013e610ecc565b606091505b5050905080610f165760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b604482015260640161070b565b5050505b50600101610cf5565b50895115611030575f610f3682866130a7565b90508015610f6f57610f6f308c60018e51610f5191906130a7565b81518110610f6157610f61613093565b602002602001015183611f5a565b5f8b60018d51610f7f91906130a7565b81518110610f8f57610f8f613093565b60200260200101516001600160a01b03168b6040515f6040518083038185875af1925050503d805f8114610fde576040519150601f19603f3d011682016040523d82523d5f602084013e610fe3565b606091505b505090508061102d5760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b604482015260640161070b565b50505b4780156110d9576005546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611081576040519150601f19603f3d011682016040523d82523d5f602084013e611086565b606091505b50509050806110d75760405162461bcd60e51b815260206004820152601b60248201527f457863657373207265776172642072657475726e206661696c65640000000000604482015260640161070b565b505b5050505050505050505050565b6005546001600160a01b0316336001600160a01b0316148061111b57506007546001600160a01b0316336001600160a01b0316145b6111375760405162461bcd60e51b815260040161070b90612ee7565b5f81116111865760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161070b565b804710156111d65760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e63650000000000000000604482015260640161070b565b6005546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611220576040519150601f19603f3d011682016040523d82523d5f602084013e611225565b606091505b505090508061126c5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161070b565b5050565b6005546001600160a01b0316336001600160a01b031614806112a557506007546001600160a01b0316336001600160a01b0316145b6112e25760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640161070b565b5f5b825181101561133c578160035f85848151811061130357611303613093565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016112e4565b505050565b5f61134d848484611f5a565b61139e8433611399856040518060600160405280602881526020016131af602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906126eb565b611e37565b5060019392505050565b5f546001600160a01b031633146113d15760405162461bcd60e51b815260040161070b90612eb2565b5f5b815181101561126c575f60045f8484815181106113f2576113f2613093565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016113d3565b6005546001600160a01b0316336001600160a01b0316148061146057506007546001600160a01b0316336001600160a01b0316145b61147c5760405162461bcd60e51b815260040161070b90612ee7565b611484612723565b565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146114c95760405162461bcd60e51b815260040161070b90612eb2565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461153a5760405162461bcd60e51b815260040161070b90612eb2565b6001600160a01b03811661158a5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b604482015260640161070b565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316336001600160a01b031614806115e157506007546001600160a01b0316336001600160a01b0316145b6115fd5760405162461bcd60e51b815260040161070b90612ee7565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6005546001600160a01b0316336001600160a01b0316148061165057506007546001600160a01b0316336001600160a01b0316145b61166c5760405162461bcd60e51b815260040161070b90612ee7565b5f8111801561167c575060648111155b6116bd5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015260640161070b565b5f6116c730611486565b90505f60646116d68484613023565b6116e09190613080565b9050801561133c5760055461133c9030906001600160a01b031683611f5a565b5f546001600160a01b031633146117295760405162461bcd60e51b815260040161070b90612eb2565b601954600160a01b900460ff16156117835760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161070b565b601880546001600160a01b031916734b2ab38dbf28d31d467aa8993f6c2585981d68049081179091556117cc9030906117be6009600a613015565b61139990633b9aca00613023565b60185f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061184091906130e0565b6001600160a01b031663c9c653963060185f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561189f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c391906130e0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561190d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193191906130e0565b601980546001600160a01b0319166001600160a01b03929092169190911790555f61195b30611486565b90505f611974606461196e84603c6128ac565b90612931565b6018549091506001600160a01b031663f305d7194730845f8061199e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611a04573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a2991906130fb565b505060195460185460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611a7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa29190613051565b50506019805462ff00ff60a01b19166201000160a01b17905550565b5f610770338484611f5a565b6005546001600160a01b0316336001600160a01b03161480611aff57506007546001600160a01b0316336001600160a01b0316145b611b3c5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640161070b565b600891909155600955565b5f546001600160a01b03163314611b705760405162461bcd60e51b815260040161070b90612eb2565b5f5b815181101561126c57600160045f848481518110611b9257611b92613093565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101611b72565b5f80600c5460105411611be057600854611be4565b600a545b9150600d5460105411611bf957600954611bfd565b600b545b90509091565b6005546001600160a01b0316336001600160a01b03161480611c3857506007546001600160a01b0316336001600160a01b0316145b611c545760405162461bcd60e51b815260040161070b90612ee7565b5f611c5e30611486565b90505f81118015611c785750601954600160b01b900460ff165b15611c8e57611c8681612972565b611c8e612723565b50565b5f546001600160a01b03163314611cba5760405162461bcd60e51b815260040161070b90612eb2565b6001600160a01b038116611d0a5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b604482015260640161070b565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314611d555760405162461bcd60e51b815260040161070b90612eb2565b5f600f8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de39060200161075a565b5f546001600160a01b03163314611db45760405162461bcd60e51b815260040161070b90612eb2565b611dc06009600a613015565b611dce90633b9aca00613023565b601155611ddd6009600a613015565b611deb90633b9aca00613023565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf611e1b6009600a613015565b611e2990633b9aca00613023565b60405190815260200161075a565b6001600160a01b038316611e995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070b565b6001600160a01b038216611efa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611fbe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070b565b6001600160a01b0382166120205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070b565b5f81116120815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070b565b5f8060145483101561213f576001600160a01b0385165f908152600160205260409020546120af9084612ae2565b6001600160a01b038087165f9081526001602052604080822093909355908616815220546120dd9084612b23565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121309087815260200190565b60405180910390a35050505050565b5f546001600160a01b0386811691161480159061216957505f546001600160a01b03858116911614155b15612571576001600160a01b0385165f9081526004602052604090205460ff161580156121ae57506001600160a01b0384165f9081526004602052604090205460ff16155b6121b6575f80fd5b6001600160a01b0385165f9081526003602052604090205460ff161580156121f657506001600160a01b0384165f9081526003602052604090205460ff16155b1561220e5761220b606461196e8560016128ac565b90505b60105415801561224257506019546001600160a01b038681169116148061224257506019546001600160a01b038581169116145b156122b5576001600160a01b0385165f9081526003602052604090205460ff1615801561228757506001600160a01b0384165f9081526003602052604090205460ff16155b156122b5576122b2606461196e600c54601054116122a7576008546122ab565b600a545b86906128ac565b91505b601054156122da576122d7606461196e600f54866128ac90919063ffffffff16565b91505b6019546001600160a01b03868116911614801561230557506018546001600160a01b03858116911614155b156124135760115483111561235c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161070b565b6012548361236986611486565b61237391906130ba565b11156123c15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161070b565b6001600160a01b0384165f9081526003602052604090205460ff166123fe576123fb606461196e600c54601054116122a7576008546122ab565b91505b60108054905f61240d83613126565b91905055505b6019546001600160a01b03858116911614801561243957506001600160a01b0385163014155b1561246657612463606461196e600d5460105411612459576009546122ab565b600b5486906128ac565b91505b5f61247030611486565b601954909150600160a81b900460ff1615801561249a57506019546001600160a01b038681169116145b80156124af5750601954600160b01b900460ff165b80156124bc575060135481115b80156124cb5750600e54601054115b1561256f57601b544311156124df575f601a555b6003601a54106125315760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161070b565b61254e6125498561254484601554612b81565b612b81565b612972565b612556612723565b601a8054905f61256583613126565b909155505043601b555b505b8015612588576016546125849082612b23565b6016555b811561259f5760175461259b9083612b23565b6017555b5f6125aa8383612b23565b9050801561262457305f908152600160205260409020546125cb9082612b23565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061261b9085815260200190565b60405180910390a35b6001600160a01b0386165f908152600160205260409020546126469085612ae2565b6001600160a01b0387165f9081526001602052604090205561268961266b8583612ae2565b6001600160a01b0387165f9081526001602052604090205490612b23565b6001600160a01b038087165f8181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6126d28785612ae2565b60405190815260200160405180910390a3505050505050565b5f818484111561270e5760405162461bcd60e51b815260040161070b9190612bc1565b505f61271a84866130a7565b95945050505050565b478015611c8e575f612742601754601654612b2390919063ffffffff16565b9050801561126c575f6127648261196e601654866128ac90919063ffffffff16565b90505f6127718483612ae2565b90508115612808576006546040515f916001600160a01b03169084908381818185875af1925050503d805f81146127c3576040519150601f19603f3d011682016040523d82523d5f602084013e6127c8565b606091505b505090508015612806576040518381527f03d32d75625e0068dac7be099aa08c8f29eb318d43d0e11b258308b30aaaa54f9060200160405180910390a15b505b801561289d576005546040515f916001600160a01b03169083908381818185875af1925050503d805f8114612858576040519150601f19603f3d011682016040523d82523d5f602084013e61285d565b606091505b50509050801561289b576040518281527f43eaf13ac3cca6a969289e44ae76bac5c669507d365c3feac2fe20d47447c4e09060200160405180910390a15b505b50505f60168190556017555050565b5f825f036128bb57505f610774565b5f6128c68385613023565b9050826128d38583613080565b1461292a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161070b565b9392505050565b5f61292a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b95565b6019805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106129b8576129b8613093565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612a0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3391906130e0565b81600181518110612a4657612a46613093565b6001600160a01b039283166020918202929092010152601854612a6c9130911684611e37565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790612aa49085905f9086903090429060040161313e565b5f604051808303815f87803b158015612abb575f80fd5b505af1158015612acd573d5f803e3d5ffd5b50506019805460ff60a81b1916905550505050565b5f61292a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126eb565b5f80612b2f83856130ba565b90508381101561292a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070b565b5f818311612b8f578261292a565b50919050565b5f8183612bb55760405162461bcd60e51b815260040161070b9190612bc1565b505f61271a8486613080565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611c8e575f80fd5b8035612c1581612bf6565b919050565b5f8060408385031215612c2b575f80fd5b8235612c3681612bf6565b946020939093013593505050565b5f60208284031215612c54575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112612c7e575f80fd5b813567ffffffffffffffff811115612c9857612c98612c5b565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715612cc557612cc5612c5b565b604052918252602081850181019290810186841115612ce2575f80fd5b6020860192505b83831015612d0857612cfa83612c0a565b815260209283019201612ce9565b5095945050505050565b5f805f60608486031215612d24575f80fd5b833567ffffffffffffffff811115612d3a575f80fd5b612d4686828701612c6f565b9660208601359650604090950135949350505050565b8015158114611c8e575f80fd5b5f8060408385031215612d7a575f80fd5b823567ffffffffffffffff811115612d90575f80fd5b612d9c85828601612c6f565b9250506020830135612dad81612d5c565b809150509250929050565b5f805f60608486031215612dca575f80fd5b8335612dd581612bf6565b92506020840135612de581612bf6565b929592945050506040919091013590565b5f60208284031215612e06575f80fd5b813567ffffffffffffffff811115612e1c575f80fd5b612e2884828501612c6f565b949350505050565b5f60208284031215612e40575f80fd5b813561292a81612bf6565b5f60208284031215612e5b575f80fd5b813561292a81612d5c565b5f8060408385031215612e77575f80fd5b50508035926020909101359150565b5f8060408385031215612e97575f80fd5b8235612ea281612bf6565b91506020830135612dad81612bf6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526018908201527f43616c6c6572206973206e6f7420617574686f72697a65640000000000000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115612f6d57808504811115612f5157612f51612f1e565b6001841615612f5f57908102905b60019390931c928002612f36565b935093915050565b5f82612f8357506001610774565b81612f8f57505f610774565b8160018114612fa55760028114612faf57612fcb565b6001915050610774565b60ff841115612fc057612fc0612f1e565b50506001821b610774565b5060208310610133831016604e8410600b8410161715612fee575081810a610774565b612ffa5f198484612f32565b805f190482111561300d5761300d612f1e565b029392505050565b5f61292a60ff841683612f75565b808202811582820484141761077457610774612f1e565b5f6020828403121561304a575f80fd5b5051919050565b5f60208284031215613061575f80fd5b815161292a81612d5c565b634e487b7160e01b5f52601260045260245ffd5b5f8261308e5761308e61306c565b500490565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561077457610774612f1e565b8082018082111561077457610774612f1e565b5f826130db576130db61306c565b500690565b5f602082840312156130f0575f80fd5b815161292a81612bf6565b5f805f6060848603121561310d575f80fd5b5050815160208301516040909301519094929350919050565b5f6001820161313757613137612f1e565b5060010190565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561318e5783516001600160a01b0316835260209384019390920191600101613167565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122030347d82db76150825c57bd796ad20d5383257c14930093ac0fd24ad4642ce9f64736f6c634300081a00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x60806040526004361061022a575f3560e01c806374c9f60311610129578063ba4c0973116100a8578063e0a566eb1161006d578063e0a566eb1461066a578063e6ab3d8d1461067e578063f023f5731461069b578063f13d6307146106ba578063fa332eed146106ce575f80fd5b8063ba4c0973146105c9578063bf474bed146105de578063d34628cc146105f3578063d71fdd0014610612578063dd62ed3e14610626575f80fd5b80638da5cb5b116100ee5780638da5cb5b146105185780638f9a55c01461054857806395d89b411461055d578063a9059cbb1461058b578063b25db8ee146105aa575f80fd5b806374c9f603146104925780637b6f8fc5146104b15780637d1db4a5146104d057806384ae5efe146104e55780638a8c523c14610504575f80fd5b80632021ef39116101b55780635df45a371161017a5780635df45a371461041057806363203819146104385780636a66e9e31461044b57806370a082311461045f578063715018a61461047e575f80fd5b80632021ef391461036157806323b872dd14610380578063313ce5671461039f57806331c2d847146103ba5780633bbac579146103d9575f80fd5b806312311286116101fb57806312311286146102dd578063162acc66146102fc57806318160ddd1461031b5780631a17eb351461032f5780631a7b207714610342575f80fd5b80629a4e841461023557806306fdde031461024b578063095ea7b31461028b5780630faee56f146102ba575f80fd5b3661023157005b5f80fd5b348015610240575f80fd5b506102496106e2565b005b348015610256575f80fd5b5060408051808201909152600681526542454e41445360d01b60208201525b6040516102829190612bc1565b60405180910390f35b348015610296575f80fd5b506102aa6102a5366004612c1a565b610764565b6040519015158152602001610282565b3480156102c5575f80fd5b506102cf60155481565b604051908152602001610282565b3480156102e8575f80fd5b506102496102f7366004612c44565b61077a565b348015610307575f80fd5b50610249610316366004612c1a565b6107e7565b348015610326575f80fd5b506102cf610a53565b61024961033d366004612d12565b610a73565b34801561034d575f80fd5b5061024961035c366004612c44565b6110e6565b34801561036c575f80fd5b5061024961037b366004612d69565b611270565b34801561038b575f80fd5b506102aa61039a366004612db8565b611341565b3480156103aa575f80fd5b5060405160098152602001610282565b3480156103c5575f80fd5b506102496103d4366004612df6565b6113a8565b3480156103e4575f80fd5b506102aa6103f3366004612e30565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561041b575f80fd5b506016546017545b60408051928352602083019190915201610282565b348015610443575f80fd5b5060016102cf565b348015610456575f80fd5b5061024961142b565b34801561046a575f80fd5b506102cf610479366004612e30565b611486565b348015610489575f80fd5b506102496114a0565b34801561049d575f80fd5b506102496104ac366004612e30565b611511565b3480156104bc575f80fd5b506102496104cb366004612e4b565b6115ac565b3480156104db575f80fd5b506102cf60115481565b3480156104f0575f80fd5b506102496104ff366004612c44565b61161b565b34801561050f575f80fd5b50610249611700565b348015610523575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610282565b348015610553575f80fd5b506102cf60125481565b348015610568575f80fd5b5060408051808201909152600681526542656e61647360d01b6020820152610275565b348015610596575f80fd5b506102aa6105a5366004612c1a565b611abe565b3480156105b5575f80fd5b506102496105c4366004612e66565b611aca565b3480156105d4575f80fd5b506102cf60145481565b3480156105e9575f80fd5b506102cf60135481565b3480156105fe575f80fd5b5061024961060d366004612df6565b611b47565b34801561061d575f80fd5b50610423611bcb565b348015610631575f80fd5b506102cf610640366004612e86565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610675575f80fd5b50610249611c03565b348015610689575f80fd5b506006546001600160a01b0316610530565b3480156106a6575f80fd5b506102496106b5366004612e30565b611c91565b3480156106c5575f80fd5b50610249611d2c565b3480156106d9575f80fd5b50610249611d8b565b5f546001600160a01b031633146107145760405162461bcd60e51b815260040161070b90612eb2565b60405180910390fd5b5f60088190556009819055600a819055600b819055600f8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f610770338484611e37565b5060015b92915050565b6005546001600160a01b0316336001600160a01b031614806107af57506007546001600160a01b0316336001600160a01b0316145b6107cb5760405162461bcd60e51b815260040161070b90612ee7565b6107d76009600a613015565b6107e19082613023565b60155550565b6005546001600160a01b0316336001600160a01b0316148061081c57506007546001600160a01b0316336001600160a01b0316145b6108385760405162461bcd60e51b815260040161070b90612ee7565b306001600160a01b038316036108905760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207265636f76657220626c6f636b20746f6b656e730000000000604482015260640161070b565b5f81116108df5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161070b565b6040516370a0823160e01b815230600482015282905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610925573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610949919061303a565b90508281101561099b5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365000000000000604482015260640161070b565b60075460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529083169063a9059cbb906044016020604051808303815f875af11580156109eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0f9190613051565b610a4d5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161070b565b50505050565b5f610a606009600a613015565b610a6e90633b9aca00613023565b905090565b6005546001600160a01b0316336001600160a01b03161480610aa857506007546001600160a01b0316336001600160a01b0316145b610ac45760405162461bcd60e51b815260040161070b90612ee7565b5f835111610b0a5760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd185ad95c9cc81c1c9bdd9a591959606a1b604482015260640161070b565b5f81118015610b1a575060648111155b610b5c5760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420726577617264207261746560681b604482015260640161070b565b8251600a905f90610b6d9085613023565b905080341015610bbf5760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420726577617264732070726f7669646564000000604482015260640161070b565b5f610bc930611486565b90505f8111610c1a5760405162461bcd60e51b815260206004820152601860248201527f4e6f207265776172647320746f20646973747269627574650000000000000000604482015260640161070b565b5f6064610c278684613023565b610c319190613080565b90505f8111610c825760405162461bcd60e51b815260206004820152601760248201527f52657761726420616d6f756e7420746f6f20736d616c6c000000000000000000604482015260640161070b565b5f875182610c909190613080565b90505f8111610cd95760405162461bcd60e51b815260206004820152601560248201527410985cd9481c995dd85c99081d1bdbc81cdb585b1b605a1b604482015260640161070b565b5f6064610ce68784613023565b610cf09190613080565b90505f805b8a51811015610f23575f8b8281518110610d1157610d11613093565b602002602001015190505f6001600160a01b0316816001600160a01b031603610d755760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964207374616b6572206164647265737360501b604482015260640161070b565b60018c51610d8391906130a7565b821015610f1a575f610d96856002613023565b610da19060016130ba565b604080514260208201524491810191909152606084811b6bffffffffffffffffffffffff19169082015260748101859052609401604051602081830303815290604052805190602001205f1c610df791906130cd565b90505f858211610e1257610e0b82886130a7565b9050610e29565b610e1c86836130a7565b610e2690886130ba565b90505b610e34600288613080565b811015610e4957610e46600288613080565b90505b87610e5482876130ba565b1115610e6757610e6485896130a7565b90505b610e72308483611f5a565b610e7c81866130ba565b94505f836001600160a01b03168e6040515f6040518083038185875af1925050503d805f8114610ec7576040519150601f19603f3d011682016040523d82523d5f602084013e610ecc565b606091505b5050905080610f165760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b604482015260640161070b565b5050505b50600101610cf5565b50895115611030575f610f3682866130a7565b90508015610f6f57610f6f308c60018e51610f5191906130a7565b81518110610f6157610f61613093565b602002602001015183611f5a565b5f8b60018d51610f7f91906130a7565b81518110610f8f57610f8f613093565b60200260200101516001600160a01b03168b6040515f6040518083038185875af1925050503d805f8114610fde576040519150601f19603f3d011682016040523d82523d5f602084013e610fe3565b606091505b505090508061102d5760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b604482015260640161070b565b50505b4780156110d9576005546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611081576040519150601f19603f3d011682016040523d82523d5f602084013e611086565b606091505b50509050806110d75760405162461bcd60e51b815260206004820152601b60248201527f457863657373207265776172642072657475726e206661696c65640000000000604482015260640161070b565b505b5050505050505050505050565b6005546001600160a01b0316336001600160a01b0316148061111b57506007546001600160a01b0316336001600160a01b0316145b6111375760405162461bcd60e51b815260040161070b90612ee7565b5f81116111865760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161070b565b804710156111d65760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e63650000000000000000604482015260640161070b565b6005546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611220576040519150601f19603f3d011682016040523d82523d5f602084013e611225565b606091505b505090508061126c5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161070b565b5050565b6005546001600160a01b0316336001600160a01b031614806112a557506007546001600160a01b0316336001600160a01b0316145b6112e25760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640161070b565b5f5b825181101561133c578160035f85848151811061130357611303613093565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016112e4565b505050565b5f61134d848484611f5a565b61139e8433611399856040518060600160405280602881526020016131af602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906126eb565b611e37565b5060019392505050565b5f546001600160a01b031633146113d15760405162461bcd60e51b815260040161070b90612eb2565b5f5b815181101561126c575f60045f8484815181106113f2576113f2613093565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016113d3565b6005546001600160a01b0316336001600160a01b0316148061146057506007546001600160a01b0316336001600160a01b0316145b61147c5760405162461bcd60e51b815260040161070b90612ee7565b611484612723565b565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146114c95760405162461bcd60e51b815260040161070b90612eb2565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461153a5760405162461bcd60e51b815260040161070b90612eb2565b6001600160a01b03811661158a5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b604482015260640161070b565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316336001600160a01b031614806115e157506007546001600160a01b0316336001600160a01b0316145b6115fd5760405162461bcd60e51b815260040161070b90612ee7565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6005546001600160a01b0316336001600160a01b0316148061165057506007546001600160a01b0316336001600160a01b0316145b61166c5760405162461bcd60e51b815260040161070b90612ee7565b5f8111801561167c575060648111155b6116bd5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015260640161070b565b5f6116c730611486565b90505f60646116d68484613023565b6116e09190613080565b9050801561133c5760055461133c9030906001600160a01b031683611f5a565b5f546001600160a01b031633146117295760405162461bcd60e51b815260040161070b90612eb2565b601954600160a01b900460ff16156117835760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161070b565b601880546001600160a01b031916734b2ab38dbf28d31d467aa8993f6c2585981d68049081179091556117cc9030906117be6009600a613015565b61139990633b9aca00613023565b60185f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061184091906130e0565b6001600160a01b031663c9c653963060185f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561189f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c391906130e0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561190d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193191906130e0565b601980546001600160a01b0319166001600160a01b03929092169190911790555f61195b30611486565b90505f611974606461196e84603c6128ac565b90612931565b6018549091506001600160a01b031663f305d7194730845f8061199e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611a04573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a2991906130fb565b505060195460185460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611a7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa29190613051565b50506019805462ff00ff60a01b19166201000160a01b17905550565b5f610770338484611f5a565b6005546001600160a01b0316336001600160a01b03161480611aff57506007546001600160a01b0316336001600160a01b0316145b611b3c5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640161070b565b600891909155600955565b5f546001600160a01b03163314611b705760405162461bcd60e51b815260040161070b90612eb2565b5f5b815181101561126c57600160045f848481518110611b9257611b92613093565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101611b72565b5f80600c5460105411611be057600854611be4565b600a545b9150600d5460105411611bf957600954611bfd565b600b545b90509091565b6005546001600160a01b0316336001600160a01b03161480611c3857506007546001600160a01b0316336001600160a01b0316145b611c545760405162461bcd60e51b815260040161070b90612ee7565b5f611c5e30611486565b90505f81118015611c785750601954600160b01b900460ff165b15611c8e57611c8681612972565b611c8e612723565b50565b5f546001600160a01b03163314611cba5760405162461bcd60e51b815260040161070b90612eb2565b6001600160a01b038116611d0a5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f7420736574207a65726f206164647265737360481b604482015260640161070b565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314611d555760405162461bcd60e51b815260040161070b90612eb2565b5f600f8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de39060200161075a565b5f546001600160a01b03163314611db45760405162461bcd60e51b815260040161070b90612eb2565b611dc06009600a613015565b611dce90633b9aca00613023565b601155611ddd6009600a613015565b611deb90633b9aca00613023565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf611e1b6009600a613015565b611e2990633b9aca00613023565b60405190815260200161075a565b6001600160a01b038316611e995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070b565b6001600160a01b038216611efa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611fbe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070b565b6001600160a01b0382166120205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070b565b5f81116120815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070b565b5f8060145483101561213f576001600160a01b0385165f908152600160205260409020546120af9084612ae2565b6001600160a01b038087165f9081526001602052604080822093909355908616815220546120dd9084612b23565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121309087815260200190565b60405180910390a35050505050565b5f546001600160a01b0386811691161480159061216957505f546001600160a01b03858116911614155b15612571576001600160a01b0385165f9081526004602052604090205460ff161580156121ae57506001600160a01b0384165f9081526004602052604090205460ff16155b6121b6575f80fd5b6001600160a01b0385165f9081526003602052604090205460ff161580156121f657506001600160a01b0384165f9081526003602052604090205460ff16155b1561220e5761220b606461196e8560016128ac565b90505b60105415801561224257506019546001600160a01b038681169116148061224257506019546001600160a01b038581169116145b156122b5576001600160a01b0385165f9081526003602052604090205460ff1615801561228757506001600160a01b0384165f9081526003602052604090205460ff16155b156122b5576122b2606461196e600c54601054116122a7576008546122ab565b600a545b86906128ac565b91505b601054156122da576122d7606461196e600f54866128ac90919063ffffffff16565b91505b6019546001600160a01b03868116911614801561230557506018546001600160a01b03858116911614155b156124135760115483111561235c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161070b565b6012548361236986611486565b61237391906130ba565b11156123c15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161070b565b6001600160a01b0384165f9081526003602052604090205460ff166123fe576123fb606461196e600c54601054116122a7576008546122ab565b91505b60108054905f61240d83613126565b91905055505b6019546001600160a01b03858116911614801561243957506001600160a01b0385163014155b1561246657612463606461196e600d5460105411612459576009546122ab565b600b5486906128ac565b91505b5f61247030611486565b601954909150600160a81b900460ff1615801561249a57506019546001600160a01b038681169116145b80156124af5750601954600160b01b900460ff165b80156124bc575060135481115b80156124cb5750600e54601054115b1561256f57601b544311156124df575f601a555b6003601a54106125315760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161070b565b61254e6125498561254484601554612b81565b612b81565b612972565b612556612723565b601a8054905f61256583613126565b909155505043601b555b505b8015612588576016546125849082612b23565b6016555b811561259f5760175461259b9083612b23565b6017555b5f6125aa8383612b23565b9050801561262457305f908152600160205260409020546125cb9082612b23565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061261b9085815260200190565b60405180910390a35b6001600160a01b0386165f908152600160205260409020546126469085612ae2565b6001600160a01b0387165f9081526001602052604090205561268961266b8583612ae2565b6001600160a01b0387165f9081526001602052604090205490612b23565b6001600160a01b038087165f8181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6126d28785612ae2565b60405190815260200160405180910390a3505050505050565b5f818484111561270e5760405162461bcd60e51b815260040161070b9190612bc1565b505f61271a84866130a7565b95945050505050565b478015611c8e575f612742601754601654612b2390919063ffffffff16565b9050801561126c575f6127648261196e601654866128ac90919063ffffffff16565b90505f6127718483612ae2565b90508115612808576006546040515f916001600160a01b03169084908381818185875af1925050503d805f81146127c3576040519150601f19603f3d011682016040523d82523d5f602084013e6127c8565b606091505b505090508015612806576040518381527f03d32d75625e0068dac7be099aa08c8f29eb318d43d0e11b258308b30aaaa54f9060200160405180910390a15b505b801561289d576005546040515f916001600160a01b03169083908381818185875af1925050503d805f8114612858576040519150601f19603f3d011682016040523d82523d5f602084013e61285d565b606091505b50509050801561289b576040518281527f43eaf13ac3cca6a969289e44ae76bac5c669507d365c3feac2fe20d47447c4e09060200160405180910390a15b505b50505f60168190556017555050565b5f825f036128bb57505f610774565b5f6128c68385613023565b9050826128d38583613080565b1461292a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161070b565b9392505050565b5f61292a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b95565b6019805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106129b8576129b8613093565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612a0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3391906130e0565b81600181518110612a4657612a46613093565b6001600160a01b039283166020918202929092010152601854612a6c9130911684611e37565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790612aa49085905f9086903090429060040161313e565b5f604051808303815f87803b158015612abb575f80fd5b505af1158015612acd573d5f803e3d5ffd5b50506019805460ff60a81b1916905550505050565b5f61292a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126eb565b5f80612b2f83856130ba565b90508381101561292a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070b565b5f818311612b8f578261292a565b50919050565b5f8183612bb55760405162461bcd60e51b815260040161070b9190612bc1565b505f61271a8486613080565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611c8e575f80fd5b8035612c1581612bf6565b919050565b5f8060408385031215612c2b575f80fd5b8235612c3681612bf6565b946020939093013593505050565b5f60208284031215612c54575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112612c7e575f80fd5b813567ffffffffffffffff811115612c9857612c98612c5b565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715612cc557612cc5612c5b565b604052918252602081850181019290810186841115612ce2575f80fd5b6020860192505b83831015612d0857612cfa83612c0a565b815260209283019201612ce9565b5095945050505050565b5f805f60608486031215612d24575f80fd5b833567ffffffffffffffff811115612d3a575f80fd5b612d4686828701612c6f565b9660208601359650604090950135949350505050565b8015158114611c8e575f80fd5b5f8060408385031215612d7a575f80fd5b823567ffffffffffffffff811115612d90575f80fd5b612d9c85828601612c6f565b9250506020830135612dad81612d5c565b809150509250929050565b5f805f60608486031215612dca575f80fd5b8335612dd581612bf6565b92506020840135612de581612bf6565b929592945050506040919091013590565b5f60208284031215612e06575f80fd5b813567ffffffffffffffff811115612e1c575f80fd5b612e2884828501612c6f565b949350505050565b5f60208284031215612e40575f80fd5b813561292a81612bf6565b5f60208284031215612e5b575f80fd5b813561292a81612d5c565b5f8060408385031215612e77575f80fd5b50508035926020909101359150565b5f8060408385031215612e97575f80fd5b8235612ea281612bf6565b91506020830135612dad81612bf6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526018908201527f43616c6c6572206973206e6f7420617574686f72697a65640000000000000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115612f6d57808504811115612f5157612f51612f1e565b6001841615612f5f57908102905b60019390931c928002612f36565b935093915050565b5f82612f8357506001610774565b81612f8f57505f610774565b8160018114612fa55760028114612faf57612fcb565b6001915050610774565b60ff841115612fc057612fc0612f1e565b50506001821b610774565b5060208310610133831016604e8410600b8410161715612fee575081810a610774565b612ffa5f198484612f32565b805f190482111561300d5761300d612f1e565b029392505050565b5f61292a60ff841683612f75565b808202811582820484141761077457610774612f1e565b5f6020828403121561304a575f80fd5b5051919050565b5f60208284031215613061575f80fd5b815161292a81612d5c565b634e487b7160e01b5f52601260045260245ffd5b5f8261308e5761308e61306c565b500490565b634e487b7160e01b5f52603260045260245ffd5b8181038181111561077457610774612f1e565b8082018082111561077457610774612f1e565b5f826130db576130db61306c565b500690565b5f602082840312156130f0575f80fd5b815161292a81612bf6565b5f805f6060848603121561310d575f80fd5b5050815160208301516040909301519094929350919050565b5f6001820161313757613137612f1e565b5060010190565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561318e5783516001600160a01b0316835260209384019390920191600101613167565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122030347d82db76150825c57bd796ad20d5383257c14930093ac0fd24ad4642ce9f64736f6c634300081a0033
Deployed Bytecode Sourcemap
3738:20209:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16280:252;;;;;;;;;;;;;:::i;:::-;;6703:83;;;;;;;;;;-1:-1:-1;6773:5:0;;;;;;;;;;;;-1:-1:-1;;;6773:5:0;;;;6703:83;;;;;;;:::i;:::-;;;;;;;;7536:161;;;;;;;;;;-1:-1:-1;7536:161:0;;;;;:::i;:::-;;:::i;:::-;;;1249:14:1;;1242:22;1224:41;;1212:2;1197:18;7536:161:0;1084:187:1;5105:53:0;;;;;;;;;;;;;;;;;;;1422:25:1;;;1410:2;1395:18;5105:53:0;1276:177:1;19601:209:0;;;;;;;;;;-1:-1:-1;19601:209:0;;;;;:::i;:::-;;:::i;19003:590::-;;;;;;;;;;-1:-1:-1;19003:590:0;;;;;:::i;:::-;;:::i;6980:95::-;;;;;;;;;;;;;:::i;20723:3221::-;;;;;;:::i;:::-;;:::i;20013:434::-;;;;;;;;;;-1:-1:-1;20013:434:0;;;;;:::i;:::-;;:::i;16540:295::-;;;;;;;;;;-1:-1:-1;16540:295:0;;;;;:::i;:::-;;:::i;7705:313::-;;;;;;;;;;-1:-1:-1;7705:313:0;;;;;:::i;:::-;;:::i;6889:83::-;;;;;;;;;;-1:-1:-1;6889:83:0;;4627:1;4579:36:1;;4567:2;4552:18;6889:83:0;4437:184:1;17015:168:0;;;;;;;;;;-1:-1:-1;17015:168:0;;;;;:::i;:::-;;:::i;17191:85::-;;;;;;;;;;-1:-1:-1;17191:85:0;;;;;:::i;:::-;-1:-1:-1;;;;;17261:7:0;17238:4;17261:7;;;:4;:7;;;;;;;;;17191:85;8630:217;;;;;;;;;;-1:-1:-1;8760:27:0;;8814:25;;8630:217;;;;5405:25:1;;;5461:2;5446:18;;5439:34;;;;5378:18;8630:217:0;5231:248:1;15574:102:0;;;;;;;;;;-1:-1:-1;4304:1:0;15574:102;;20529:186;;;;;;;;;;;;;:::i;7083:119::-;;;;;;;;;;-1:-1:-1;7083:119:0;;;;;:::i;:::-;;:::i;2563:148::-;;;;;;;;;;;;;:::i;15252:192::-;;;;;;;;;;-1:-1:-1;15252:192:0;;;;;:::i;:::-;;:::i;19818:187::-;;;;;;;;;;-1:-1:-1;19818:187:0;;;;;:::i;:::-;;:::i;4815:54::-;;;;;;;;;;;;;;;;18530:465;;;;;;;;;;-1:-1:-1;18530:465:0;;;;;:::i;:::-;;:::i;17284:854::-;;;;;;;;;;;;;:::i;2349:79::-;;;;;;;;;;-1:-1:-1;2387:7:0;2414:6;-1:-1:-1;;;;;2414:6:0;2349:79;;;-1:-1:-1;;;;;5894:32:1;;;5876:51;;5864:2;5849:18;2349:79:0;5730:203:1;4877:56:0;;;;;;;;;;;;;;;;6794:87;;;;;;;;;;-1:-1:-1;6866:7:0;;;;;;;;;;;;-1:-1:-1;;;6866:7:0;;;;6794:87;;7210:167;;;;;;;;;;-1:-1:-1;7210:167:0;;;;;:::i;:::-;;:::i;15986:286::-;;;;;;;;;;-1:-1:-1;15986:286:0;;;;;:::i;:::-;;:::i;5006:56::-;;;;;;;;;;;;;;;;4941:57;;;;;;;;;;;;;;;;16843:164;;;;;;;;;;-1:-1:-1;16843:164:0;;;;;:::i;:::-;;:::i;8369:253::-;;;;;;;;;;;;;:::i;7385:143::-;;;;;;;;;;-1:-1:-1;7385:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7493:18:0;;;7466:7;7493:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7385:143;18183:339;;;;;;;;;;;;;:::i;15458:108::-;;;;;;;;;;-1:-1:-1;15540:18:0;;-1:-1:-1;;;;;15540:18:0;15458:108;;15014:232;;;;;;;;;;-1:-1:-1;15014:232:0;;;;;:::i;:::-;;:::i;15856:122::-;;;;;;;;;;;;;:::i;15684:164::-;;;;;;;;;;;;;:::i;16280:252::-;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;;;;;;;;;16356:1:::1;16339:14;:18:::0;;;16368:15:::1;:19:::0;;;16398:12:::1;:16:::0;;;16431:13:::1;:17:::0;;;16465:12:::1;:16:::0;;;16503:21:::1;::::0;1422:25:1;;;16503:21:0::1;::::0;1410:2:1;1395:18;16503:21:0::1;;;;;;;;16280:252::o:0;7536:161::-;7611:4;7628:39;183:10;7651:7;7660:6;7628:8;:39::i;:::-;-1:-1:-1;7685:4:0;7536:161;;;;;:::o;19601:209::-;19684:10;;-1:-1:-1;;;;;19684:10:0;183;-1:-1:-1;;;;;19668:26:0;;:55;;;-1:-1:-1;19714:9:0;;-1:-1:-1;;;;;19714:9:0;183:10;-1:-1:-1;;;;;19698:25:0;;19668:55;19660:92;;;;-1:-1:-1;;;19660:92:0;;;;;;;:::i;:::-;19789:13;4627:1;19789:2;:13;:::i;:::-;19777:25;;:9;:25;:::i;:::-;19763:11;:39;-1:-1:-1;19601:209:0:o;19003:590::-;19107:10;;-1:-1:-1;;;;;19107:10:0;183;-1:-1:-1;;;;;19091:26:0;;:55;;;-1:-1:-1;19137:9:0;;-1:-1:-1;;;;;19137:9:0;183:10;-1:-1:-1;;;;;19121:25:0;;19091:55;19083:92;;;;-1:-1:-1;;;19083:92:0;;;;;;;:::i;:::-;19218:4;-1:-1:-1;;;;;19194:29:0;;;19186:69;;;;-1:-1:-1;;;19186:69:0;;9525:2:1;19186:69:0;;;9507:21:1;9564:2;9544:18;;;9537:30;9603:29;9583:18;;;9576:57;9650:18;;19186:69:0;9323:351:1;19186:69:0;19283:1;19274:6;:10;19266:55;;;;-1:-1:-1;;;19266:55:0;;9881:2:1;19266:55:0;;;9863:21:1;;;9900:18;;;9893:30;9959:34;9939:18;;;9932:62;10011:18;;19266:55:0;9679:356:1;19266:55:0;19406:30;;-1:-1:-1;;;19406:30:0;;19430:4;19406:30;;;5876:51:1;19364:12:0;;19342;;-1:-1:-1;;;;;19406:15:0;;;;;5849:18:1;;19406:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19388:48;;19466:6;19455:7;:17;;19447:56;;;;-1:-1:-1;;;19447:56:0;;10477:2:1;19447:56:0;;;10459:21:1;10516:2;10496:18;;;10489:30;10555:28;10535:18;;;10528:56;10601:18;;19447:56:0;10275:350:1;19447:56:0;19547:9;;19532:33;;-1:-1:-1;;;19532:33:0;;-1:-1:-1;;;;;19547:9:0;;;19532:33;;;10804:51:1;10871:18;;;10864:34;;;19532:14:0;;;;;;10777:18:1;;19532:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19524:61;;;;-1:-1:-1;;;19524:61:0;;11361:2:1;19524:61:0;;;11343:21:1;11400:2;11380:18;;;11373:30;-1:-1:-1;;;11419:18:1;;;11412:45;11474:18;;19524:61:0;11159:339:1;19524:61:0;19072:521;;19003:590;;:::o;6980:95::-;7033:7;4683:13;4627:1;4683:2;:13;:::i;:::-;4670:26;;:10;:26;:::i;:::-;7053:14;;6980:95;:::o;20723:3221::-;20907:10;;-1:-1:-1;;;;;20907:10:0;183;-1:-1:-1;;;;;20891:26:0;;:55;;;-1:-1:-1;20937:9:0;;-1:-1:-1;;;;;20937:9:0;183:10;-1:-1:-1;;;;;20921:25:0;;20891:55;20883:92;;;;-1:-1:-1;;;20883:92:0;;;;;;;:::i;:::-;21012:1;20994:8;:15;:19;20986:51;;;;-1:-1:-1;;;20986:51:0;;11705:2:1;20986:51:0;;;11687:21:1;11744:2;11724:18;;;11717:30;-1:-1:-1;;;11763:18:1;;;11756:49;11822:18;;20986:51:0;11503:343:1;20986:51:0;21070:1;21056:11;:15;:37;;;;;21090:3;21075:11;:18;;21056:37;21048:69;;;;-1:-1:-1;;;21048:69:0;;12053:2:1;21048:69:0;;;12035:21:1;12092:2;12072:18;;;12065:30;-1:-1:-1;;;12111:18:1;;;12104:49;12170:18;;21048:69:0;11851:343:1;21048:69:0;21227:15;;21166:2;;21141:22;;21208:34;;:16;:34;:::i;:::-;21179:63;;21274:18;21261:9;:31;;21253:73;;;;-1:-1:-1;;;21253:73:0;;12401:2:1;21253:73:0;;;12383:21:1;12440:2;12420:18;;;12413:30;12479:31;12459:18;;;12452:59;12528:18;;21253:73:0;12199:353:1;21253:73:0;21337:18;21358:24;21376:4;21358:9;:24::i;:::-;21337:45;;21414:1;21401:10;:14;21393:51;;;;-1:-1:-1;;;21393:51:0;;12759:2:1;21393:51:0;;;12741:21:1;12798:2;12778:18;;;12771:30;12837:26;12817:18;;;12810:54;12881:18;;21393:51:0;12557:348:1;21393:51:0;21465:20;21515:3;21488:24;21501:11;21488:10;:24;:::i;:::-;:30;;;;:::i;:::-;21465:53;;21552:1;21537:12;:16;21529:52;;;;-1:-1:-1;;;21529:52:0;;13369:2:1;21529:52:0;;;13351:21:1;13408:2;13388:18;;;13381:30;13447:25;13427:18;;;13420:53;13490:18;;21529:52:0;13167:347:1;21529:52:0;21602:18;21638:8;:15;21623:12;:30;;;;:::i;:::-;21602:51;;21685:1;21672:10;:14;21664:48;;;;-1:-1:-1;;;21664:48:0;;13721:2:1;21664:48:0;;;13703:21:1;13760:2;13740:18;;;13733:30;-1:-1:-1;;;13779:18:1;;;13772:51;13840:18;;21664:48:0;13519:345:1;21664:48:0;21733:22;21788:3;21758:27;21771:14;21758:10;:27;:::i;:::-;:33;;;;:::i;:::-;21733:58;;21802:21;21853:9;21848:1413;21872:8;:15;21868:1;:19;21848:1413;;;21909:14;21926:8;21935:1;21926:11;;;;;;;;:::i;:::-;;;;;;;21909:28;;21978:1;-1:-1:-1;;;;;21960:20:0;:6;-1:-1:-1;;;;;21960:20:0;;21952:55;;;;-1:-1:-1;;;21952:55:0;;14203:2:1;21952:55:0;;;14185:21:1;14242:2;14222:18;;;14215:30;-1:-1:-1;;;14261:18:1;;;14254:52;14323:18;;21952:55:0;14001:346:1;21952:55:0;22062:1;22044:8;:15;:19;;;;:::i;:::-;22040:1;:23;22036:1214;;;22084:22;22301:18;:14;22318:1;22301:18;:::i;:::-;:22;;22322:1;22301:22;:::i;:::-;22127:168;;;22166:15;22127:168;;;14828:19:1;22205:16:0;14863:12:1;;;14856:28;;;;14922:2;14918:15;;;-1:-1:-1;;14914:53:1;14900:12;;;14893:75;14984:12;;;14977:28;;;15021:13;;22127:168:0;;;;;;;;;;;;22117:179;;;;;;22109:188;;:215;;;;:::i;:::-;22084:240;;22361:20;22422:14;22404;:32;22400:233;;22476:27;22489:14;22476:10;:27;:::i;:::-;22461:42;;22400:233;;;22581:31;22598:14;22581;:31;:::i;:::-;22567:46;;:10;:46;:::i;:::-;22552:61;;22400:233;22688:14;22701:1;22688:10;:14;:::i;:::-;22673:12;:29;22669:107;;;22742:14;22755:1;22742:10;:14;:::i;:::-;22727:29;;22669:107;22847:12;22816:28;22832:12;22816:13;:28;:::i;:::-;:43;22812:135;;;22899:28;22914:13;22899:12;:28;:::i;:::-;22884:43;;22812:135;22983:46;23001:4;23008:6;23016:12;22983:9;:46::i;:::-;23048:29;23065:12;23048:29;;:::i;:::-;;;23115:12;23133:6;-1:-1:-1;;;;;23133:11:0;23152:16;23133:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23114:59;;;23200:7;23192:42;;;;-1:-1:-1;;;23192:42:0;;15574:2:1;23192:42:0;;;15556:21:1;15613:2;15593:18;;;15586:30;-1:-1:-1;;;15632:18:1;;;15625:52;15694:18;;23192:42:0;15372:346:1;23192:42:0;22065:1185;;;22036:1214;-1:-1:-1;21889:3:0;;21848:1413;;;-1:-1:-1;23285:15:0;;:19;23281:408;;23321:19;23343:28;23358:13;23343:12;:28;:::i;:::-;23321:50;-1:-1:-1;23390:15:0;;23386:124;;23426:68;23444:4;23451:8;23478:1;23460:8;:15;:19;;;;:::i;:::-;23451:29;;;;;;;;:::i;:::-;;;;;;;23482:11;23426:9;:68::i;:::-;23539:12;23557:8;23584:1;23566:8;:15;:19;;;;:::i;:::-;23557:29;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;23557:34:0;23599:16;23557:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23538:82;;;23643:7;23635:42;;;;-1:-1:-1;;;23635:42:0;;15574:2:1;23635:42:0;;;15556:21:1;15613:2;15593:18;;;15586:30;-1:-1:-1;;;15632:18:1;;;15625:52;15694:18;;23635:42:0;15372:346:1;23635:42:0;23306:383;;23281:408;23733:21;23769:17;;23765:172;;23822:10;;:41;;23804:12;;-1:-1:-1;;;;;23822:10:0;;23845:13;;23804:12;23822:41;23804:12;23822:41;23845:13;23822:10;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23803:60;;;23886:7;23878:47;;;;-1:-1:-1;;;23878:47:0;;15925:2:1;23878:47:0;;;15907:21:1;15964:2;15944:18;;;15937:30;16003:29;15983:18;;;15976:57;16050:18;;23878:47:0;15723:351:1;23878:47:0;23788:149;23765:172;20872:3072;;;;;;;;20723:3221;;;:::o;20013:434::-;20093:10;;-1:-1:-1;;;;;20093:10:0;183;-1:-1:-1;;;;;20077:26:0;;:55;;;-1:-1:-1;20123:9:0;;-1:-1:-1;;;;;20123:9:0;183:10;-1:-1:-1;;;;;20107:25:0;;20077:55;20069:92;;;;-1:-1:-1;;;20069:92:0;;;;;;;:::i;:::-;20189:1;20180:6;:10;20172:55;;;;-1:-1:-1;;;20172:55:0;;9881:2:1;20172:55:0;;;9863:21:1;;;9900:18;;;9893:30;9959:34;9939:18;;;9932:62;10011:18;;20172:55:0;9679:356:1;20172:55:0;20271:6;20246:21;:31;;20238:68;;;;-1:-1:-1;;;20238:68:0;;16281:2:1;20238:68:0;;;16263:21:1;16320:2;16300:18;;;16293:30;16359:26;16339:18;;;16332:54;16403:18;;20238:68:0;16079:348:1;20238:68:0;20354:10;;20346:43;;20328:12;;-1:-1:-1;;;;;20354:10:0;;20378:6;;20328:12;20346:43;20328:12;20346:43;20378:6;20354:10;20346:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20327:62;;;20408:7;20400:39;;;;-1:-1:-1;;;20400:39:0;;16634:2:1;20400:39:0;;;16616:21:1;16673:2;16653:18;;;16646:30;-1:-1:-1;;;16692:18:1;;;16685:49;16751:18;;20400:39:0;16432:343:1;20400:39:0;20058:389;20013:434;:::o;16540:295::-;16644:10;;-1:-1:-1;;;;;16644:10:0;183;-1:-1:-1;;;;;16628:26:0;;:55;;;-1:-1:-1;16674:9:0;;-1:-1:-1;;;;;16674:9:0;183:10;-1:-1:-1;;;;;16658:25:0;;16628:55;16620:82;;;;-1:-1:-1;;;16620:82:0;;16982:2:1;16620:82:0;;;16964:21:1;17021:2;17001:18;;;16994:30;-1:-1:-1;;;17040:18:1;;;17033:44;17094:18;;16620:82:0;16780:338:1;16620:82:0;16718:9;16713:115;16737:8;:15;16733:1;:19;16713:115;;;16808:8;16774:18;:31;16793:8;16802:1;16793:11;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;16774:31:0;;;;;;;;;;;-1:-1:-1;16774:31:0;:42;;-1:-1:-1;;16774:42:0;;;;;;;;;;-1:-1:-1;16754:3:0;16713:115;;;;16540:295;;:::o;7705:313::-;7803:4;7820:36;7830:6;7838:9;7849:6;7820:9;:36::i;:::-;7867:121;7876:6;183:10;7898:89;7936:6;7898:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7898:19:0;;;;;;:11;:19;;;;;;;;183:10;7898:33;;;;;;;;;;:37;:89::i;:::-;7867:8;:121::i;:::-;-1:-1:-1;8006:4:0;7705:313;;;;;:::o;17015:168::-;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;17090:6:::1;17085:91;17106:6;:13;17102:1;:17;17085:91;;;17159:5;17141:4;:15;17146:6;17153:1;17146:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17141:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17141:15:0;:23;;-1:-1:-1;;17141:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17121:3:0::1;17085:91;;20529:186:::0;20604:10;;-1:-1:-1;;;;;20604:10:0;183;-1:-1:-1;;;;;20588:26:0;;:55;;;-1:-1:-1;20634:9:0;;-1:-1:-1;;;;;20634:9:0;183:10;-1:-1:-1;;;;;20618:25:0;;20588:55;20580:92;;;;-1:-1:-1;;;20580:92:0;;;;;;;:::i;:::-;20683:24;:22;:24::i;:::-;20529:186::o;7083:119::-;-1:-1:-1;;;;;7176:18:0;7149:7;7176:18;;;:9;:18;;;;;;;7083:119::o;2563:148::-;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;2670:1:::1;2654:6:::0;;2633:40:::1;::::0;-1:-1:-1;;;;;2654:6:0;;::::1;::::0;2633:40:::1;::::0;2670:1;;2633:40:::1;2701:1;2684:19:::0;;-1:-1:-1;;;;;;2684:19:0::1;::::0;;2563:148::o;15252:192::-;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15337:26:0;::::1;15329:62;;;::::0;-1:-1:-1;;;15329:62:0;;17325:2:1;15329:62:0::1;::::0;::::1;17307:21:1::0;17364:2;17344:18;;;17337:30;-1:-1:-1;;;17383:18:1;;;17376:53;17446:18;;15329:62:0::1;17123:347:1::0;15329:62:0::1;15402:10;:34:::0;;-1:-1:-1;;;;;;15402:34:0::1;-1:-1:-1::0;;;;;15402:34:0;;;::::1;::::0;;;::::1;::::0;;15252:192::o;19818:187::-;19896:10;;-1:-1:-1;;;;;19896:10:0;183;-1:-1:-1;;;;;19880:26:0;;:55;;;-1:-1:-1;19926:9:0;;-1:-1:-1;;;;;19926:9:0;183:10;-1:-1:-1;;;;;19910:25:0;;19880:55;19872:92;;;;-1:-1:-1;;;19872:92:0;;;;;;;:::i;:::-;19975:11;:22;;;;;-1:-1:-1;;;19975:22:0;-1:-1:-1;;;;19975:22:0;;;;;;;;;19818:187::o;18530:465::-;18619:10;;-1:-1:-1;;;;;18619:10:0;183;-1:-1:-1;;;;;18603:26:0;;:55;;;-1:-1:-1;18649:9:0;;-1:-1:-1;;;;;18649:9:0;183:10;-1:-1:-1;;;;;18633:25:0;;18603:55;18595:92;;;;-1:-1:-1;;;18595:92:0;;;;;;;:::i;:::-;18719:1;18706:10;:14;:35;;;;;18738:3;18724:10;:17;;18706:35;18698:66;;;;-1:-1:-1;;;18698:66:0;;17677:2:1;18698:66:0;;;17659:21:1;17716:2;17696:18;;;17689:30;-1:-1:-1;;;17735:18:1;;;17728:48;17793:18;;18698:66:0;17475:342:1;18698:66:0;18777:20;18800:24;18818:4;18800:9;:24::i;:::-;18777:47;-1:-1:-1;18836:14:0;18883:3;18854:25;18869:10;18777:47;18854:25;:::i;:::-;18853:33;;;;:::i;:::-;18836:50;-1:-1:-1;18903:10:0;;18899:89;;18956:10;;18931:44;;18949:4;;-1:-1:-1;;;;;18956:10:0;18968:6;18931:9;:44::i;17284:854::-;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;17350:11:::1;::::0;-1:-1:-1;;;17350:11:0;::::1;;;17349:12;17341:47;;;::::0;-1:-1:-1;;;17341:47:0;;18024:2:1;17341:47:0::1;::::0;::::1;18006:21:1::0;18063:2;18043:18;;;18036:30;18102:25;18082:18;;;18075:53;18145:18;;17341:47:0::1;17822:347:1::0;17341:47:0::1;17399:15;:80:::0;;-1:-1:-1;;;;;;17399:80:0::1;17436:42;17399:80:::0;;::::1;::::0;;;17490:58:::1;::::0;17507:4:::1;::::0;4683:13:::1;4627:1;4683:2;:13;:::i;:::-;4670:26;::::0;:10:::1;:26;:::i;17490:58::-;17593:15;;;;;;;;;-1:-1:-1::0;;;;;17593:15:0::1;-1:-1:-1::0;;;;;17593:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17575:55:0::1;;17639:4;17646:15;;;;;;;;;-1:-1:-1::0;;;;;17646:15:0::1;-1:-1:-1::0;;;;;17646:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17575:94;::::0;-1:-1:-1;;;;;;17575:94:0::1;::::0;;;;;;-1:-1:-1;;;;;18622:32:1;;;17575:94:0::1;::::0;::::1;18604:51:1::0;18691:32;;18671:18;;;18664:60;18577:18;;17575:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17559:13;:110:::0;;-1:-1:-1;;;;;;17559:110:0::1;-1:-1:-1::0;;;;;17559:110:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;17716:24:0::1;17734:4;17716:9;:24::i;:::-;17690:50:::0;-1:-1:-1;17751:23:0::1;17777:32;17805:3;17777:23;17690:50:::0;17797:2:::1;17777:19;:23::i;:::-;:27:::0;::::1;:32::i;:::-;17830:15;::::0;17751:58;;-1:-1:-1;;;;;;17830:15:0::1;:31;17869:21;17900:4;17751:58:::0;17830:15:::1;::::0;17926:7:::1;2387::::0;2414:6;-1:-1:-1;;;;;2414:6:0;;2349:79;17926:7:::1;17830:120;::::0;::::1;::::0;;;-1:-1:-1;;;;;;17830:120:0;;;-1:-1:-1;;;;;19056:32:1;;;17830:120:0::1;::::0;::::1;19038:51:1::0;19105:18;;;19098:34;;;;19148:18;;;19141:34;;;;19191:18;;;19184:34;19255:32;;;19234:19;;;19227:61;17934:15:0::1;19304:19:1::0;;;19297:35;19010:19;;17830:120:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17968:13:0::1;::::0;17999:15:::1;::::0;17961:71:::1;::::0;-1:-1:-1;;;17961:71:0;;-1:-1:-1;;;;;17999:15:0;;::::1;17961:71;::::0;::::1;10804:51:1::0;-1:-1:-1;;10871:18:1;;;10864:34;17968:13:0;::::1;::::0;-1:-1:-1;17961:29:0::1;::::0;10777:18:1;;17961:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;18043:11:0::1;:18:::0;;-1:-1:-1;;;;18112:18:0;-1:-1:-1;;;18112:18:0;;;-1:-1:-1;17284:854:0:o;7210:167::-;7288:4;7305:42;183:10;7329:9;7340:6;7305:9;:42::i;15986:286::-;16114:10;;-1:-1:-1;;;;;16114:10:0;183;-1:-1:-1;;;;;16098:26:0;;:55;;;-1:-1:-1;16144:9:0;;-1:-1:-1;;;;;16144:9:0;183:10;-1:-1:-1;;;;;16128:25:0;;16098:55;16090:82;;;;-1:-1:-1;;;16090:82:0;;16982:2:1;16090:82:0;;;16964:21:1;17021:2;17001:18;;;16994:30;-1:-1:-1;;;17040:18:1;;;17033:44;17094:18;;16090:82:0;16780:338:1;16090:82:0;16183:14;:34;;;;16228:15;:36;15986:286::o;16843:164::-;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;16917:6:::1;16912:88;16933:5;:12;16929:1;:16;16912:88;;;16984:4;16967;:14;16972:5;16978:1;16972:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16967:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16967:14:0;:21;;-1:-1:-1;;16967:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16947:3:0::1;16912:88;;8369:253:::0;8419:14;8435:15;8484;;8472:9;;:27;:59;;8517:14;;8472:59;;;8502:12;;8472:59;8463:68;;8564:16;;8552:9;;:28;:62;;8599:15;;8552:62;;;8583:13;;8552:62;8542:72;;8369:253;;:::o;18183:339::-;18249:10;;-1:-1:-1;;;;;18249:10:0;183;-1:-1:-1;;;;;18233:26:0;;:55;;;-1:-1:-1;18279:9:0;;-1:-1:-1;;;;;18279:9:0;183:10;-1:-1:-1;;;;;18263:25:0;;18233:55;18225:92;;;;-1:-1:-1;;;18225:92:0;;;;;;;:::i;:::-;18328:20;18349:24;18367:4;18349:9;:24::i;:::-;18328:45;;18402:1;18387:12;:16;:31;;;;-1:-1:-1;18407:11:0;;-1:-1:-1;;;18407:11:0;;;;18387:31;18384:131;;;18434:30;18451:12;18434:16;:30::i;:::-;18479:24;:22;:24::i;:::-;18214:308;18183:339::o;15014:232::-;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15115:34:0;::::1;15107:70;;;::::0;-1:-1:-1;;;15107:70:0;;17325:2:1;15107:70:0::1;::::0;::::1;17307:21:1::0;17364:2;17344:18;;;17337:30;-1:-1:-1;;;17383:18:1;;;17376:53;17446:18;;15107:70:0::1;17123:347:1::0;15107:70:0::1;15188:18;:50:::0;;-1:-1:-1;;;;;;15188:50:0::1;-1:-1:-1::0;;;;;15188:50:0;;;::::1;::::0;;;::::1;::::0;;15014:232::o;15856:122::-;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;15932:1:::1;15917:12;:16:::0;;;15949:21:::1;::::0;1422:25:1;;;15949:21:0::1;::::0;1410:2:1;1395:18;15949:21:0::1;1276:177:1::0;15684:164:0;2476:6;;-1:-1:-1;;;;;2476:6:0;183:10;2476:22;2468:67;;;;-1:-1:-1;;;2468:67:0;;;;;;;:::i;:::-;4683:13:::1;4627:1;4683:2;:13;:::i;:::-;4670:26;::::0;:10:::1;:26;:::i;:::-;15742:12;:22:::0;4683:13:::1;4627:1;4683:2;:13;:::i;:::-;4670:26;::::0;:10:::1;:26;:::i;:::-;15775:14;:22:::0;15813:27:::1;4683:13;4627:1;4683:2;:13;:::i;:::-;4670:26;::::0;:10:::1;:26;:::i;:::-;15813:27;::::0;1422:25:1;;;1410:2;1395:18;15813:27:0::1;1276:177:1::0;8026:335:0;-1:-1:-1;;;;;8119:19:0;;8111:68;;;;-1:-1:-1;;;8111:68:0;;20006:2:1;8111:68:0;;;19988:21:1;20045:2;20025:18;;;20018:30;20084:34;20064:18;;;20057:62;-1:-1:-1;;;20135:18:1;;;20128:34;20179:19;;8111:68:0;19804:400:1;8111:68:0;-1:-1:-1;;;;;8198:21:0;;8190:68;;;;-1:-1:-1;;;8190:68:0;;20411:2:1;8190:68:0;;;20393:21:1;20450:2;20430:18;;;20423:30;20489:34;20469:18;;;20462:62;-1:-1:-1;;;20540:18:1;;;20533:32;20582:19;;8190:68:0;20209:398:1;8190:68:0;-1:-1:-1;;;;;8269:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8321:32;;1422:25:1;;;8321:32:0;;1395:18:1;8321:32:0;;;;;;;8026:335;;;:::o;8855:3922::-;-1:-1:-1;;;;;8943:18:0;;8935:68;;;;-1:-1:-1;;;8935:68:0;;20814:2:1;8935:68:0;;;20796:21:1;20853:2;20833:18;;;20826:30;20892:34;20872:18;;;20865:62;-1:-1:-1;;;20943:18:1;;;20936:35;20988:19;;8935:68:0;20612:401:1;8935:68:0;-1:-1:-1;;;;;9022:16:0;;9014:64;;;;-1:-1:-1;;;9014:64:0;;21220:2:1;9014:64:0;;;21202:21:1;21259:2;21239:18;;;21232:30;21298:34;21278:18;;;21271:62;-1:-1:-1;;;21349:18:1;;;21342:33;21392:19;;9014:64:0;21018:399:1;9014:64:0;9106:1;9097:6;:10;9089:64;;;;-1:-1:-1;;;9089:64:0;;21624:2:1;9089:64:0;;;21606:21:1;21663:2;21643:18;;;21636:30;21702:34;21682:18;;;21675:62;-1:-1:-1;;;21753:18:1;;;21746:39;21802:19;;9089:64:0;21422:405:1;9089:64:0;9174:17;9206:25;9309:17;;9300:6;:26;9296:227;;;-1:-1:-1;;;;;9361:15:0;;;;;;:9;:15;;;;;;:27;;9381:6;9361:19;:27::i;:::-;-1:-1:-1;;;;;9343:15:0;;;;;;;:9;:15;;;;;;:45;;;;9419:13;;;;;;;:25;;9437:6;9419:17;:25::i;:::-;-1:-1:-1;;;;;9403:13:0;;;;;;;:9;:13;;;;;;;:41;;;;9464:26;;;;;;;;;;9483:6;1422:25:1;;1410:2;1395:18;;1276:177;9464:26:0;;;;;;;;9505:7;;8855:3922;;;:::o;9296:227::-;2387:7;2414:6;-1:-1:-1;;;;;9539:15:0;;;2414:6;;9539:15;;;;:32;;-1:-1:-1;2387:7:0;2414:6;-1:-1:-1;;;;;9558:13:0;;;2414:6;;9558:13;;9539:32;9535:2387;;;-1:-1:-1;;;;;9597:10:0;;;;;;:4;:10;;;;;;;;9596:11;:24;;;;-1:-1:-1;;;;;;9612:8:0;;;;;;:4;:8;;;;;;;;9611:9;9596:24;9588:33;;;;;;-1:-1:-1;;;;;9690:24:0;;;;;;:18;:24;;;;;;;;9689:25;:52;;;;-1:-1:-1;;;;;;9719:22:0;;;;;;:18;:22;;;;;;;;9718:23;9689:52;9685:149;;;9782:36;9814:3;9782:27;:6;4304:1;9782:10;:27::i;:36::-;9762:56;;9685:149;9928:9;;:14;:64;;;;-1:-1:-1;9955:13:0;;-1:-1:-1;;;;;9947:21:0;;;9955:13;;9947:21;;:44;;-1:-1:-1;9978:13:0;;-1:-1:-1;;;;;9972:19:0;;;9978:13;;9972:19;9947:44;9925:298;;;-1:-1:-1;;;;;10018:24:0;;;;;;:18;:24;;;;;;;;10017:25;:52;;;;-1:-1:-1;;;;;;10047:22:0;;;;;;:18;:22;;;;;;;;10046:23;10017:52;10013:195;;;10106:82;10184:3;10106:73;10130:15;;10118:9;;:27;10117:61;;10164:14;;10117:61;;;10149:12;;10117:61;10106:6;;:10;:73::i;:82::-;10094:94;;10013:195;10254:9;;:13;10251:98;;10300:33;10329:3;10300:24;10311:12;;10300:6;:10;;:24;;;;:::i;:33::-;10288:45;;10251:98;10377:13;;-1:-1:-1;;;;;10369:21:0;;;10377:13;;10369:21;:55;;;;-1:-1:-1;10408:15:0;;-1:-1:-1;;;;;10394:30:0;;;10408:15;;10394:30;;10369:55;10365:486;;;10463:12;;10453:6;:22;;10445:60;;;;-1:-1:-1;;;10445:60:0;;22034:2:1;10445:60:0;;;22016:21:1;22073:2;22053:18;;;22046:30;22112:27;22092:18;;;22085:55;22157:18;;10445:60:0;21832:349:1;10445:60:0;10558:14;;10548:6;10532:13;10542:2;10532:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10524:79;;;;-1:-1:-1;;;10524:79:0;;22388:2:1;10524:79:0;;;22370:21:1;22427:2;22407:18;;;22400:30;22466:28;22446:18;;;22439:56;22512:18;;10524:79:0;22186:350:1;10524:79:0;-1:-1:-1;;;;;10645:22:0;;;;;;:18;:22;;;;;;;;10640:166;;10704:82;10782:3;10704:73;10728:15;;10716:9;;:27;10715:61;;10762:14;;10715:61;;10704:82;10692:94;;10640:166;10824:9;:11;;;:9;:11;;;:::i;:::-;;;;;;10365:486;10876:13;;-1:-1:-1;;;;;10870:19:0;;;10876:13;;10870:19;:44;;;;-1:-1:-1;;;;;;10893:21:0;;10909:4;10893:21;;10870:44;10867:181;;;10947:85;11028:3;10947:76;10971:16;;10959:9;;:28;10958:64;;11007:15;;10958:64;;;10991:13;;10947:6;;:10;:76::i;:85::-;10935:97;;10867:181;11143:28;11174:24;11192:4;11174:9;:24::i;:::-;11218:6;;11143:55;;-1:-1:-1;;;;11218:6:0;;;;11217:7;:30;;;;-1:-1:-1;11234:13:0;;-1:-1:-1;;;;;11228:19:0;;;11234:13;;11228:19;11217:30;:45;;;;-1:-1:-1;11251:11:0;;-1:-1:-1;;;11251:11:0;;;;11217:45;:89;;;;;11289:17;;11266:20;:40;11217:89;:123;;;;;11322:18;;11310:9;;:30;11217:123;11213:698;;;11380:13;;11365:12;:28;11361:90;;;11430:1;11418:9;:13;11361:90;11489:1;11477:9;;:13;11469:49;;;;-1:-1:-1;;;11469:49:0;;22883:2:1;11469:49:0;;;22865:21:1;22922:2;22902:18;;;22895:30;22961:25;22941:18;;;22934:53;23004:18;;11469:49:0;22681:347:1;11469:49:0;11605:69;11622:51;11626:6;11634:38;11638:20;11660:11;;11634:3;:38::i;:::-;11622:3;:51::i;:::-;11605:16;:69::i;:::-;11776:24;:22;:24::i;:::-;11837:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;11883:12:0;11867:13;:28;11213:698;9573:2349;9535:2387;11973:21;;11969:134;;12041:27;;:50;;12073:17;12041:31;:50::i;:::-;12011:27;:80;11969:134;12117:13;;12113:114;;12175:25;;:40;;12205:9;12175:29;:40::i;:::-;12147:25;:68;12113:114;12306:17;12326:32;:9;12340:17;12326:13;:32::i;:::-;12306:52;-1:-1:-1;12372:13:0;;12369:171;;12447:4;12429:24;;;;:9;:24;;;;;;:39;;12458:9;12429:28;:39::i;:::-;12420:4;12402:24;;;;:9;:24;;;;;;;:66;;;;12488:40;;-1:-1:-1;;;;;12488:40:0;;;;;;;12518:9;1422:25:1;;1410:2;1395:18;;1276:177;12488:40:0;;;;;;;;12369:171;-1:-1:-1;;;;;12618:15:0;;;;;;:9;:15;;;;;;:27;;12638:6;12618:19;:27::i;:::-;-1:-1:-1;;;;;12600:15:0;;;;;;:9;:15;;;;;:45;12672:40;12690:21;:6;12701:9;12690:10;:21::i;:::-;-1:-1:-1;;;;;12672:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;12656:13:0;;;;;;;:9;:13;;;;;:56;;;;12728:41;;;12747:21;:6;12758:9;12747:10;:21::i;:::-;12728:41;;1422:25:1;;;1410:2;1395:18;12728:41:0;;;;;;;8924:3853;;;8855:3922;;;:::o;1240:190::-;1326:7;1362:12;1354:6;;;;1346:29;;;;-1:-1:-1;;;1346:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1386:9:0;1398:5;1402:1;1398;:5;:::i;:::-;1386:17;1240:190;-1:-1:-1;;;;;1240:190:0:o;12785:1622::-;12867:21;12903:22;;12899:1501;;13007:28;13038:58;13070:25;;13038:27;;:31;;:58;;;;:::i;:::-;13007:89;-1:-1:-1;13129:24:0;;13125:1263;;13260:24;13287:77;13343:20;13287:51;13310:27;;13287:18;:22;;:51;;;;:::i;:77::-;13260:104;-1:-1:-1;13383:22:0;13408:40;:18;13260:104;13408:22;:40::i;:::-;13383:65;-1:-1:-1;13536:20:0;;13532:297;;13611:18;;:52;;13582:23;;-1:-1:-1;;;;;13611:18:0;;13642:16;;13582:23;13611:52;13582:23;13611:52;13642:16;13611:18;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13581:82;;;13690:18;13686:124;;;13742:44;;1422:25:1;;;13742:44:0;;1410:2:1;1395:18;13742:44:0;;;;;;;13686:124;13558:271;13532:297;13914:18;;13910:277;;13985:10;;:42;;13958:21;;-1:-1:-1;;;;;13985:10:0;;14008:14;;13958:21;13985:42;13958:21;13985:42;14008:14;13985:10;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13957:70;;;14054:16;14050:118;;;14104:40;;1422:25:1;;;14104:40:0;;1410:2:1;1395:18;14104:40:0;;;;;;;14050:118;13934:253;13910:277;-1:-1:-1;;14323:1:0;14293:27;:31;;;14343:25;:29;12927:1473;12827:1580;12785:1622::o;1438:246::-;1496:7;1520:1;1525;1520:6;1516:47;;-1:-1:-1;1550:1:0;1543:8;;1516:47;1573:9;1585:5;1589:1;1585;:5;:::i;:::-;1573:17;-1:-1:-1;1618:1:0;1609:5;1613:1;1573:17;1609:5;:::i;:::-;:10;1601:56;;;;-1:-1:-1;;;1601:56:0;;23235:2:1;1601:56:0;;;23217:21:1;23274:2;23254:18;;;23247:30;23313:34;23293:18;;;23286:62;-1:-1:-1;;;23364:18:1;;;23357:31;23405:19;;1601:56:0;23033:397:1;1601:56:0;1675:1;1438:246;-1:-1:-1;;;1438:246:0:o;1692:132::-;1750:7;1777:39;1781:1;1784;1777:39;;;;;;;;;;;;;;;;;:3;:39::i;14523:483::-;5836:6;:13;;-1:-1:-1;;;;5836:13:0;-1:-1:-1;;;5836:13:0;;;14625:16:::1;::::0;;14639:1:::1;14625:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14625:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14625:16:0::1;14601:40;;14670:4;14652;14657:1;14652:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14652:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14696:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14696:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14652:7;;14696:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14686:4;14691:1;14686:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14686:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14761:15:::1;::::0;14729:62:::1;::::0;14746:4:::1;::::0;14761:15:::1;14779:11:::0;14729:8:::1;:62::i;:::-;14802:15;::::0;:196:::1;::::0;-1:-1:-1;;;14802:196:0;;-1:-1:-1;;;;;14802:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14883:11;;14802:15:::1;::::0;14925:4;;14952::::1;::::0;14972:15:::1;::::0;14802:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5872:6:0;:14;;-1:-1:-1;;;;5872:14:0;;;-1:-1:-1;;;;14523:483:0:o;1096:136::-;1154:7;1181:43;1185:1;1188;1181:43;;;;;;;;;;;;;;;;;:3;:43::i;909:179::-;967:7;;999:5;1003:1;999;:5;:::i;:::-;987:17;;1028:1;1023;:6;;1015:46;;;;-1:-1:-1;;;1015:46:0;;24601:2:1;1015:46:0;;;24583:21:1;24640:2;24620:18;;;24613:30;24679:29;24659:18;;;24652:57;24726:18;;1015:46:0;24399:351:1;14415:100:0;14472:7;14501:1;14499;:3;14498:9;;14506:1;14498:9;;;-1:-1:-1;14504:1:0;14415:100;-1:-1:-1;14415:100:0:o;1832:189::-;1918:7;1953:12;1946:5;1938:28;;;;-1:-1:-1;;;1938:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1977:9:0;1989:5;1993:1;1989;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:134;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:367::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1043:2;1028:18;;;;1015:32;;-1:-1:-1;;;712:367:1:o;1458:226::-;1517:6;1570:2;1558:9;1549:7;1545:23;1541:32;1538:52;;;1586:1;1583;1576:12;1538:52;-1:-1:-1;1631:23:1;;1458:226;-1:-1:-1;1458:226:1:o;1689:127::-;1750:10;1745:3;1741:20;1738:1;1731:31;1781:4;1778:1;1771:15;1805:4;1802:1;1795:15;1821:906;1875:5;1928:3;1921:4;1913:6;1909:17;1905:27;1895:55;;1946:1;1943;1936:12;1895:55;1986:6;1973:20;2016:18;2008:6;2005:30;2002:56;;;2038:18;;:::i;:::-;2084:6;2081:1;2077:14;2120:2;2114:9;2183:2;2179:7;2174:2;2170;2166:11;2162:25;2154:6;2150:38;2254:6;2242:10;2239:22;2218:18;2206:10;2203:34;2200:62;2197:88;;;2265:18;;:::i;:::-;2301:2;2294:22;2351;;;2401:4;2433:15;;;2429:26;;;2351:22;2389:17;;2467:15;;;2464:35;;;2495:1;2492;2485:12;2464:35;2531:4;2523:6;2519:17;2508:28;;2545:152;2561:6;2556:3;2553:15;2545:152;;;2629:23;2648:3;2629:23;:::i;:::-;2617:36;;2682:4;2578:14;;;;2673;2545:152;;;-1:-1:-1;2715:6:1;1821:906;-1:-1:-1;;;;;1821:906:1:o;2732:582::-;2834:6;2842;2850;2903:2;2891:9;2882:7;2878:23;2874:32;2871:52;;;2919:1;2916;2909:12;2871:52;2959:9;2946:23;2992:18;2984:6;2981:30;2978:50;;;3024:1;3021;3014:12;2978:50;3047:61;3100:7;3091:6;3080:9;3076:22;3047:61;:::i;:::-;3037:71;3177:2;3162:18;;3149:32;;-1:-1:-1;3278:2:1;3263:18;;;3250:32;;2732:582;-1:-1:-1;;;;2732:582:1:o;3319:118::-;3405:5;3398:13;3391:21;3384:5;3381:32;3371:60;;3427:1;3424;3417:12;3442:477;3532:6;3540;3593:2;3581:9;3572:7;3568:23;3564:32;3561:52;;;3609:1;3606;3599:12;3561:52;3649:9;3636:23;3682:18;3674:6;3671:30;3668:50;;;3714:1;3711;3704:12;3668:50;3737:61;3790:7;3781:6;3770:9;3766:22;3737:61;:::i;:::-;3727:71;;;3848:2;3837:9;3833:18;3820:32;3861:28;3883:5;3861:28;:::i;:::-;3908:5;3898:15;;;3442:477;;;;;:::o;3924:508::-;4001:6;4009;4017;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4125:9;4112:23;4144:31;4169:5;4144:31;:::i;:::-;4194:5;-1:-1:-1;4251:2:1;4236:18;;4223:32;4264:33;4223:32;4264:33;:::i;:::-;3924:508;;4316:7;;-1:-1:-1;;;4396:2:1;4381:18;;;;4368:32;;3924:508::o;4626:348::-;4710:6;4763:2;4751:9;4742:7;4738:23;4734:32;4731:52;;;4779:1;4776;4769:12;4731:52;4819:9;4806:23;4852:18;4844:6;4841:30;4838:50;;;4884:1;4881;4874:12;4838:50;4907:61;4960:7;4951:6;4940:9;4936:22;4907:61;:::i;:::-;4897:71;4626:348;-1:-1:-1;;;;4626:348:1:o;4979:247::-;5038:6;5091:2;5079:9;5070:7;5066:23;5062:32;5059:52;;;5107:1;5104;5097:12;5059:52;5146:9;5133:23;5165:31;5190:5;5165:31;:::i;5484:241::-;5540:6;5593:2;5581:9;5572:7;5568:23;5564:32;5561:52;;;5609:1;5606;5599:12;5561:52;5648:9;5635:23;5667:28;5689:5;5667:28;:::i;5938:346::-;6006:6;6014;6067:2;6055:9;6046:7;6042:23;6038:32;6035:52;;;6083:1;6080;6073:12;6035:52;-1:-1:-1;;6128:23:1;;;6248:2;6233:18;;;6220:32;;-1:-1:-1;5938:346:1:o;6289:388::-;6357:6;6365;6418:2;6406:9;6397:7;6393:23;6389:32;6386:52;;;6434:1;6431;6424:12;6386:52;6473:9;6460:23;6492:31;6517:5;6492:31;:::i;:::-;6542:5;-1:-1:-1;6599:2:1;6584:18;;6571:32;6612:33;6571:32;6612:33;:::i;6682:356::-;6884:2;6866:21;;;6903:18;;;6896:30;6962:34;6957:2;6942:18;;6935:62;7029:2;7014:18;;6682:356::o;7233:348::-;7435:2;7417:21;;;7474:2;7454:18;;;7447:30;7513:26;7508:2;7493:18;;7486:54;7572:2;7557:18;;7233:348::o;7586:127::-;7647:10;7642:3;7638:20;7635:1;7628:31;7678:4;7675:1;7668:15;7702:4;7699:1;7692:15;7718:375;7806:1;7824:5;7838:249;7859:1;7849:8;7846:15;7838:249;;;7909:4;7904:3;7900:14;7894:4;7891:24;7888:50;;;7918:18;;:::i;:::-;7968:1;7958:8;7954:16;7951:49;;;7982:16;;;;7951:49;8065:1;8061:16;;;;;8021:15;;7838:249;;;7718:375;;;;;;:::o;8098:902::-;8147:5;8177:8;8167:80;;-1:-1:-1;8218:1:1;8232:5;;8167:80;8266:4;8256:76;;-1:-1:-1;8303:1:1;8317:5;;8256:76;8348:4;8366:1;8361:59;;;;8434:1;8429:174;;;;8341:262;;8361:59;8391:1;8382:10;;8405:5;;;8429:174;8466:3;8456:8;8453:17;8450:43;;;8473:18;;:::i;:::-;-1:-1:-1;;8529:1:1;8515:16;;8588:5;;8341:262;;8687:2;8677:8;8674:16;8668:3;8662:4;8659:13;8655:36;8649:2;8639:8;8636:16;8631:2;8625:4;8622:12;8618:35;8615:77;8612:203;;;-1:-1:-1;8724:19:1;;;8800:5;;8612:203;8847:42;-1:-1:-1;;8872:8:1;8866:4;8847:42;:::i;:::-;8925:6;8921:1;8917:6;8913:19;8904:7;8901:32;8898:58;;;8936:18;;:::i;:::-;8974:20;;8098:902;-1:-1:-1;;;8098:902:1:o;9005:140::-;9063:5;9092:47;9133:4;9123:8;9119:19;9113:4;9092:47;:::i;9150:168::-;9223:9;;;9254;;9271:15;;;9265:22;;9251:37;9241:71;;9292:18;;:::i;10040:230::-;10110:6;10163:2;10151:9;10142:7;10138:23;10134:32;10131:52;;;10179:1;10176;10169:12;10131:52;-1:-1:-1;10224:16:1;;10040:230;-1:-1:-1;10040:230:1:o;10909:245::-;10976:6;11029:2;11017:9;11008:7;11004:23;11000:32;10997:52;;;11045:1;11042;11035:12;10997:52;11077:9;11071:16;11096:28;11118:5;11096:28;:::i;12910:127::-;12971:10;12966:3;12962:20;12959:1;12952:31;13002:4;12999:1;12992:15;13026:4;13023:1;13016:15;13042:120;13082:1;13108;13098:35;;13113:18;;:::i;:::-;-1:-1:-1;13147:9:1;;13042:120::o;13869:127::-;13930:10;13925:3;13921:20;13918:1;13911:31;13961:4;13958:1;13951:15;13985:4;13982:1;13975:15;14352:128;14419:9;;;14440:11;;;14437:37;;;14454:18;;:::i;14485:125::-;14550:9;;;14571:10;;;14568:36;;;14584:18;;:::i;15045:112::-;15077:1;15103;15093:35;;15108:18;;:::i;:::-;-1:-1:-1;15142:9:1;;15045:112::o;18174:251::-;18244:6;18297:2;18285:9;18276:7;18272:23;18268:32;18265:52;;;18313:1;18310;18303:12;18265:52;18345:9;18339:16;18364:31;18389:5;18364:31;:::i;19343:456::-;19431:6;19439;19447;19500:2;19488:9;19479:7;19475:23;19471:32;19468:52;;;19516:1;19513;19506:12;19468:52;-1:-1:-1;;19561:16:1;;19667:2;19652:18;;19646:25;19763:2;19748:18;;;19742:25;19561:16;;19646:25;;-1:-1:-1;19742:25:1;19343:456;-1:-1:-1;19343:456:1:o;22541:135::-;22580:3;22601:17;;;22598:43;;22621:18;;:::i;:::-;-1:-1:-1;22668:1:1;22657:13;;22541:135::o;23435:959::-;23697:4;23745:3;23734:9;23730:19;23776:6;23765:9;23758:25;23819:6;23814:2;23803:9;23799:18;23792:34;23862:3;23857:2;23846:9;23842:18;23835:31;23886:6;23921;23915:13;23952:6;23944;23937:22;23990:3;23979:9;23975:19;23968:26;;24029:2;24021:6;24017:15;24003:29;;24050:1;24060:195;24074:6;24071:1;24068:13;24060:195;;;24139:13;;-1:-1:-1;;;;;24135:39:1;24123:52;;24204:2;24230:15;;;;24195:12;;;;24171:1;24089:9;24060:195;;;-1:-1:-1;;;;;;;24311:32:1;;;;24306:2;24291:18;;24284:60;-1:-1:-1;;24375:3:1;24360:19;24353:35;24272:3;23435:959;-1:-1:-1;;;23435:959:1:o
Swarm Source
ipfs://30347d82db76150825c57bd796ad20d5383257c14930093ac0fd24ad4642ce9f
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in MON
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.