BscScan - Sponsored slots available. Book your slot here!
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 13 from a total of 13 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 94697523 | 35 hrs ago | IN | 0 BNB | 0.0000024 | ||||
| Approve | 54507495 | 282 days ago | IN | 0 BNB | 0.00000471 | ||||
| Approve | 9737547 | 1727 days ago | IN | 0 BNB | 0.00022505 | ||||
| Approve | 9737058 | 1727 days ago | IN | 0 BNB | 0.00022505 | ||||
| Approve | 9737000 | 1727 days ago | IN | 0 BNB | 0.00022505 | ||||
| Approve | 9736995 | 1727 days ago | IN | 0 BNB | 0.00022505 | ||||
| Set Max Wallet S... | 9736873 | 1727 days ago | IN | 0 BNB | 0.00017774 | ||||
| Set Max Tx Perce... | 9736870 | 1727 days ago | IN | 0 BNB | 0.00017768 | ||||
| Approve | 9736845 | 1727 days ago | IN | 0 BNB | 0.00022505 | ||||
| Approve | 9736837 | 1727 days ago | IN | 0 BNB | 0.00022505 | ||||
| Set Max Tx Perce... | 9736830 | 1727 days ago | IN | 0 BNB | 0.0001781 | ||||
| Approve | 9736726 | 1727 days ago | IN | 0 BNB | 0.00022505 | ||||
| Set Marketing Wa... | 9736655 | 1727 days ago | IN | 0 BNB | 0.00014814 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 94695340 | 35 hrs ago | 0.00000929 BNB | ||||
| 94695340 | 35 hrs ago | 0.00000043 BNB | ||||
| 94695340 | 35 hrs ago | 0.00000092 BNB | ||||
| 94695340 | 35 hrs ago | 0.00000433 BNB | ||||
| 94695340 | 35 hrs ago | 0.00001456 BNB | ||||
| 54494090 | 282 days ago | 0.00037883 BNB | ||||
| 54494090 | 282 days ago | 0.00003611 BNB | ||||
| 54494090 | 282 days ago | 0.00003788 BNB | ||||
| 54494090 | 282 days ago | 0.00017678 BNB | ||||
| 54494090 | 282 days ago | 0.0005935 BNB | ||||
| 9737688 | 1727 days ago | 0.00931704 BNB | ||||
| 9737688 | 1727 days ago | 0.00621136 BNB | ||||
| 9737688 | 1727 days ago | 0.01552841 BNB | ||||
| 9737685 | 1727 days ago | 0.01000045 BNB | ||||
| 9737685 | 1727 days ago | 0.00666697 BNB | ||||
| 9737685 | 1727 days ago | 0.01666742 BNB | ||||
| 9737572 | 1727 days ago | 0.01074475 BNB | ||||
| 9737572 | 1727 days ago | 0.00716317 BNB | ||||
| 9737572 | 1727 days ago | 0.01790792 BNB | ||||
| 9737086 | 1727 days ago | 0.00719568 BNB | ||||
| 9737086 | 1727 days ago | 0.00479712 BNB | ||||
| 9737086 | 1727 days ago | 0.0119928 BNB | ||||
| 9737035 | 1727 days ago | 0.00767344 BNB | ||||
| 9737035 | 1727 days ago | 0.00511563 BNB | ||||
| 9737035 | 1727 days ago | 0.01278907 BNB |
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
mummascake
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/**
*Submitted for verification at BscScan.com on 2021-08-04
*/
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;
abstract contract Context {
function _msgSender() internal view returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the token decimals.
*/
function decimals() external view returns (uint8);
/**
* @dev Returns the token symbol.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the token name.
*/
function name() external view returns (string memory);
/**
* @dev Returns the bep token owner.
*/
function getOwner() external view returns (address);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address _owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
// solhint-disable-next-line no-inline-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address lpPair);
function allPairs(uint) external view returns (address lpPair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address lpPair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
interface Cashier {
function whomst() external view returns(address);
function setReflectionCriteria(uint256 _minPeriod, uint256 _minReflection) external;
function setShare(address shareholder, uint256 amount) external;
function deposit() external payable;
function process(uint256 gas) external;
function giveMeWelfarePlease(address hobo) external;
function getTotalDistributed() external view returns(uint256);
}
contract mummascake is IERC20 {
using SafeMath for uint256;
// Ownership moved to in-contract for customizability.
address private _owner;
mapping (address => uint256) _tOwned;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) _isFeeExcluded;
mapping (address => bool) _isDividendExcluded;
mapping (address => bool) private _isBlacklisted;
mapping (address => bool) private _liquidityHolders;
uint256 private constant startingSupply = 1_000_000_000; // 1 Billion, underscores aid readability
uint8 private _decimals = 18;
uint256 private _decimalsMul = _decimals;
uint256 private _tTotal = startingSupply * (10 ** _decimalsMul);
string constant _name = "mummascake";
string constant _symbol = "mummascake";
uint256 public _liquidityFee = 300;
uint256 public maxLiquidityFee = 600;
uint256 public _reflectionFee = 1500;
uint256 public maxReflectionFee = 2000;
uint256 public _marketingFee = 700;
uint256 public maxMarketingFee = 2000;
uint256 public _totalFee = _liquidityFee + _reflectionFee + _marketingFee;
uint256 public masterTaxDivisor = 10000;
IUniswapV2Router02 public dexRouter;
address public lpPair;
// PCS ROUTER
address private _routerAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
address private WBNB;
address public burnAddress = 0x000000000000000000000000000000000000dEaD;
address private ZERO = 0x0000000000000000000000000000000000000000;
address payable private _marketingWallet = payable(0xEbFc2a7D6c96b34A987Cd1eb9d1f203C9D410A3f);
// Max TX amount is 0.5% of the total supply.
uint256 private maxTxPercent = 5; // Less fields to edit
uint256 private maxTxDivisor = 1000;
uint256 private _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor;
uint256 private _previousMaxTxAmount = _maxTxAmount;
uint256 public maxTxAmountUI = (startingSupply * maxTxPercent) / maxTxDivisor; // Actual amount for UI's
// Maximum wallet size is 1.5% of the total supply.
uint256 private maxWalletPercent = 15; // Less fields to edit
uint256 private maxWalletDivisor = 1000;
uint256 private _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor;
uint256 private _previousMaxWalletSize = _maxWalletSize;
uint256 public maxWalletSizeUI = (startingSupply * maxWalletPercent) / maxWalletDivisor; // Actual amount for UI's
uint256 targetLiquidity = 25;
uint256 targetLiquidityDenominator = 100;
Cashier reflector;
uint256 reflectorGas = 500000;
bool public swapAndLiquifyEnabled = true;
bool public processReflect = true;
uint256 public swapThreshold = _tTotal / 20000;
uint256 public swapAmount = _maxTxAmount;
bool public initialSubEnabled = true;
bool inSwap;
bool private sniperProtection = true;
bool public _hasLiqBeenAdded = false;
uint256 private _liqAddBlock = 0;
uint256 private _liqAddStamp = 0;
uint256 private immutable snipeBlockAmt;
uint256 public snipersCaught = 0;
modifier swapping() {
inSwap = true;
_;
inSwap = false;
}
modifier onlyOwner() {
require(_owner == msg.sender, "Ownable: caller is not the owner");
_;
}
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event SwapAndLiquifyEnabledUpdated(bool enabled);
event AutoLiquify(uint256 amountBNB, uint256 amount);
event SniperCaught(address sniperAddress);
constructor (uint256 _snipeBlockAmt, address cInitializer) payable {
address msgSender = msg.sender;
_tOwned[msgSender] = _tTotal;
// Set the owner.
_owner = msgSender;
// Set the amount of blocks to count a sniper.
snipeBlockAmt = _snipeBlockAmt;
dexRouter = IUniswapV2Router02(_routerAddress);
lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
_allowances[address(this)][address(dexRouter)] = type(uint256).max;
WBNB = dexRouter.WETH();
reflector = Cashier(cInitializer);
_isFeeExcluded[owner()] = true;
_isFeeExcluded[address(this)] = true;
_isDividendExcluded[owner()] = true;
_isDividendExcluded[lpPair] = true;
_isDividendExcluded[address(this)] = true;
_isDividendExcluded[burnAddress] = true;
_isDividendExcluded[ZERO] = true;
// DxLocker Address (BSC)
_isFeeExcluded[0x2D045410f002A95EFcEE67759A92518fA3FcE677] = true;
_isDividendExcluded[0x2D045410f002A95EFcEE67759A92518fA3FcE677] = true;
// Approve the owner for PancakeSwap, timesaver.
approveMax(_routerAddress);
// Ever-growing sniper/tool blacklist
_isBlacklisted[0xE4882975f933A199C92b5A925C9A8fE65d599Aa8] = true;
_isBlacklisted[0x86C70C4a3BC775FB4030448c9fdb73Dc09dd8444] = true;
_isBlacklisted[0xa4A25AdcFCA938aa030191C297321323C57148Bd] = true;
_isBlacklisted[0x20C00AFf15Bb04cC631DB07ee9ce361ae91D12f8] = true;
_isBlacklisted[0x0538856b6d0383cde1709c6531B9a0437185462b] = true;
emit Transfer(ZERO, msg.sender, _tTotal);
emit OwnershipTransferred(address(0), msgSender);
}
// Ownable removed as a lib and added here to allow for custom transfers and recnouncements.
// This allows for removal of ownership privelages from the owner once renounced or transferred.
function owner() public view returns (address) {
return _owner;
}
function transferOwner(address newOwner) external onlyOwner() {
require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
_allowances[_owner][newOwner] = _tOwned[_owner];
_transfer(_owner, newOwner, _tOwned[_owner]);
_isFeeExcluded[_owner] = false;
_isDividendExcluded[_owner] = false;
_isFeeExcluded[newOwner] = true;
_isDividendExcluded[newOwner] = true;
if (_marketingWallet == payable(_owner))
_marketingWallet = payable(newOwner);
_owner = newOwner;
emit OwnershipTransferred(_owner, newOwner);
}
function renounceOwnership() public virtual onlyOwner() {
_isFeeExcluded[_owner] = false;
_isDividendExcluded[_owner] = false;
_owner = address(0);
emit OwnershipTransferred(_owner, address(0));
}
receive() external payable {}
function totalSupply() external view override returns (uint256) { return _tTotal; }
function decimals() external view override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function getOwner() external view override returns (address) { return owner(); }
function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) public returns (bool) {
return approve(spender, type(uint256).max);
}
function _approve(address sender, address spender, uint256 amount) private {
require(sender != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[sender][spender] = amount;
emit Approval(sender, spender, amount);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transfer(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
}
return _transfer(sender, recipient, amount);
}
function isBlacklisted(address account) public view returns (bool) {
return _isBlacklisted[account];
}
function isFeeExcluded(address account) public view returns(bool) {
return _isFeeExcluded[account];
}
function isDividendExcluded(address account) public view returns(bool) {
return _isDividendExcluded[account];
}
function setBlacklistEnabled(address account, bool enabled) external onlyOwner() {
_isBlacklisted[account] = enabled;
}
function setSniperProtectionEnabled(bool enabled) external onlyOwner() {
require(enabled != sniperProtection, "Already set.");
sniperProtection = enabled;
}
function setDividendExcluded(address holder, bool enabled) public onlyOwner {
require(holder != address(this) && holder != lpPair);
_isDividendExcluded[holder] = enabled;
if (enabled) {
reflector.setShare(holder, 0);
} else {
reflector.setShare(holder, _tOwned[holder]);
}
}
function setExcludeFromFees(address account, bool enabled) public onlyOwner {
_isFeeExcluded[account] = enabled;
}
function setTaxes(uint256 liquidityFee, uint256 reflectionFee, uint256 marketingFee, uint256 divisor) external onlyOwner {
require(liquidityFee <= maxLiquidityFee
&& reflectionFee <= maxReflectionFee
&& marketingFee <= maxMarketingFee);
require(liquidityFee + reflectionFee + marketingFee <= (divisor / 2));
_liquidityFee = liquidityFee;
_reflectionFee = reflectionFee;
_marketingFee = marketingFee;
_totalFee = liquidityFee + reflectionFee + marketingFee;
masterTaxDivisor = divisor;
}
function setMarketingWallet(address payable newWallet) external onlyOwner {
require(_marketingWallet != newWallet, "Wallet already set!");
_marketingWallet = payable(newWallet);
}
function setSwapBackSettings(bool _enabled, bool processReflectEnabled) external onlyOwner {
swapAndLiquifyEnabled = _enabled;
processReflect = processReflectEnabled;
}
function setSwapThreshold(uint256 percent, uint256 divisor) external onlyOwner() {
swapThreshold = _tTotal.mul(percent).div(divisor);
}
function setSwapAmount(uint256 percent, uint256 divisor) external onlyOwner {
swapAmount = _tTotal.mul(percent).div(divisor);
}
function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
targetLiquidity = _target;
targetLiquidityDenominator = _denominator;
}
function setReflectionCriteria(uint256 _minPeriod, uint256 _minReflection, uint256 minReflectionMultiplier) external onlyOwner {
_minReflection = _minReflection * 10**minReflectionMultiplier;
reflector.setReflectionCriteria(_minPeriod, _minReflection);
}
function setReflectorSettings(uint256 gas) external onlyOwner {
require(gas < 750000);
reflectorGas = gas;
}
function setInitialSubEnabled(bool enabled) external onlyOwner() {
initialSubEnabled = enabled;
}
function getCirculatingSupply() public view returns (uint256) {
return _tTotal - balanceOf(burnAddress) - balanceOf(ZERO);
}
function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
return accuracy * balanceOf(lpPair) * 2 / getCirculatingSupply();
}
function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
return getLiquidityBacking(accuracy) > target;
}
function giveMeWelfarePlease() external {
reflector.giveMeWelfarePlease(msg.sender);
}
function getTotalReflected() external view returns (uint256) {
return reflector.getTotalDistributed();
}
function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner() {
require(divisor <= 10000); // Cannot set lower than 0.01%
_maxTxAmount = _tTotal.mul(percent).div(divisor);
maxTxAmountUI = startingSupply.mul(percent).div(divisor);
}
function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner() {
require(divisor <= 1000); // Cannot set lower than 0.1%
_maxWalletSize = _tTotal.mul(percent).div(divisor);
maxWalletSizeUI = startingSupply.mul(percent).div(divisor);
}
function _hasLimits(address from, address to) private view returns (bool) {
return from != owner()
&& to != owner()
&& !_liquidityHolders[to]
&& !_liquidityHolders[from]
&& to != burnAddress
&& to != address(0)
&& from != address(this);
}
function _transfer(address from, address to, uint256 amount) internal returns (bool) {
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");
if(_hasLimits(from, to))
require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
if(_hasLimits(from, to)
&& to != _routerAddress
&& to != lpPair
) {
uint256 contractBalanceRecepient = balanceOf(to);
require(contractBalanceRecepient + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize.");
}
bool takeFee = true;
if(_isFeeExcluded[from] || _isFeeExcluded[to]){
takeFee = false;
}
return _finalizeTransfer(from, to, amount, takeFee);
}
function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) internal returns (bool) {
// Failsafe, disable the whole system if needed.
if (sniperProtection){
// If sender is a sniper address, reject the transfer.
if (isBlacklisted(from) || isBlacklisted(to)) {
revert("Sniper rejected.");
}
// Check if this is the liquidity adding tx to startup.
if (!_hasLiqBeenAdded) {
_checkLiquidityAdd(from, to);
if (!_hasLiqBeenAdded && _hasLimits(from, to)) {
revert("Only owner can transfer at this time.");
}
} else {
if (_liqAddBlock > 0
&& from == lpPair
&& _hasLimits(from, to)
) {
if (block.number - _liqAddBlock < snipeBlockAmt) {
_isBlacklisted[to] = true;
snipersCaught ++;
emit SniperCaught(to);
}
}
}
}
_tOwned[from] = _tOwned[from].sub(amount, "Insufficient Balance");
if (inSwap) {
return _basicTransfer(from, to, amount);
}
uint256 contractTokenBalance = _tOwned[address(this)];
if(contractTokenBalance >= swapAmount)
contractTokenBalance = swapAmount;
if (!inSwap
&& from != lpPair
&& swapAndLiquifyEnabled
&& contractTokenBalance >= swapThreshold
) {
swapBack(contractTokenBalance);
}
uint256 amountReceived = amount;
if (takeFee) {
amountReceived = takeTaxes(from, amount);
}
_tOwned[to] = _tOwned[to].add(amountReceived);
if (processReflect)
processTokenReflect(from, to);
emit Transfer(from, to, amountReceived);
return true;
}
function shouldSwapBack() internal view returns (bool) {
return msg.sender != lpPair
&& !inSwap
&& swapAndLiquifyEnabled
&& _tOwned[address(this)] >= swapThreshold;
}
function processTokenReflect(address from, address to) internal {
// Process TOKEN Reflect.
if (!_isDividendExcluded[from]) {
try reflector.setShare(from, _tOwned[from]) {} catch {}
}
if (!_isDividendExcluded[to]) {
try reflector.setShare(to, _tOwned[to]) {} catch {}
}
try reflector.process(reflectorGas) {} catch {}
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_tOwned[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !_isFeeExcluded[sender];
}
function getTotalFee() public view returns (uint256) {
return _totalFee;
}
function takeTaxes(address sender, uint256 amount) internal returns (uint256) {
uint256 feeAmount = amount * getTotalFee() / masterTaxDivisor;
_tOwned[address(this)] += feeAmount;
emit Transfer(sender, address(this), feeAmount);
return amount - feeAmount;
}
function swapBack(uint256 numTokensToSwap) internal swapping {
uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : _liquidityFee;
uint256 amountToLiquify = numTokensToSwap * dynamicLiquidityFee / _totalFee / 2;
uint256 amountToSwap = numTokensToSwap - amountToLiquify;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WBNB;
uint256 balanceBefore = address(this).balance;
dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountBNB = address(this).balance;
if (initialSubEnabled)
amountBNB = address(this).balance - balanceBefore;
uint256 totalBNBFee = _totalFee - dynamicLiquidityFee / 2;
uint256 amountBNBLiquidity = amountBNB * dynamicLiquidityFee / totalBNBFee / 2;
uint256 amountBNBReflection = amountBNB * _reflectionFee / totalBNBFee;
uint256 amountBNBMarketing = amountBNB.sub(amountBNBLiquidity).sub(amountBNBReflection);
_marketingWallet.transfer(amountBNBMarketing);
if (amountToLiquify > 0) {
dexRouter.addLiquidityETH{value: amountBNBLiquidity}(
address(this),
amountToLiquify,
0,
0,
burnAddress,
block.timestamp
);
emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
} else {
// If we are not liquifying we add the bnb to busd buys.
amountBNBReflection += amountBNBLiquidity;
}
try reflector.deposit{value: amountBNBReflection}() {} catch {}
}
function manualDepost() external onlyOwner() {
try reflector.deposit{value: address(this).balance}() {} catch {}
}
function _checkLiquidityAdd(address from, address to) private {
require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
if (!_hasLimits(from, to) && to == lpPair) {
_liquidityHolders[from] = true;
_hasLiqBeenAdded = true;
_liqAddBlock = block.number;
_liqAddStamp = block.timestamp;
swapAndLiquifyEnabled = true;
emit SwapAndLiquifyEnabledUpdated(true);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"_snipeBlockAmt","type":"uint256"},{"internalType":"address","name":"cInitializer","type":"address"}],"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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniperAddress","type":"address"}],"name":"SniperCaught","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalReflected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giveMeWelfarePlease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialSubEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isDividendExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isFeeExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualDepost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxReflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmountUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSizeUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"processReflect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setDividendExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setInitialSubEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minReflection","type":"uint256"},{"internalType":"uint256","name":"minReflectionMultiplier","type":"uint256"}],"name":"setReflectionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setReflectorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSniperProtectionEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"processReflectEnabled","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"reflectionFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a06040526012600760006101000a81548160ff021916908360ff160217905550600760009054906101000a900460ff1660ff16600855600854600a620000479190620012ca565b633b9aca0062000058919062001407565b60095561012c600a55610258600b556105dc600c556107d0600d556102bc600e556107d0600f55600e54600c54600a54620000949190620011da565b620000a09190620011da565b6010556127106011557310ed43c718714eb63d5aa57b78b54704e256024e601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ebfc2a7d6c96b34a987cd1eb9d1f203c9d410a3f601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060056019556103e8601a55601a54601954600954620001f8919062001407565b62000204919062001237565b601b55601b54601c55601a54601954633b9aca0062000224919062001407565b62000230919062001237565b601d55600f601e556103e8601f55601f54601e5460095462000253919062001407565b6200025f919062001237565b602055602054602155601f54601e54633b9aca006200027f919062001407565b6200028b919062001237565b602255601960235560646024556207a1206026556001602760006101000a81548160ff0219169083151502179055506001602760016101000a81548160ff021916908315150217905550614e20600954620002e7919062001237565b602855601b546029556001602a60006101000a81548160ff0219169083151502179055506001602a60026101000a81548160ff0219169083151502179055506000602a60036101000a81548160ff0219169083151502179055506000602b556000602c556000602d55604051620070d8380380620070d8833981810160405281019062000375919062001127565b6000339050600954600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260808181525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004d457600080fd5b505afa158015620004e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050f9190620010f5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200059357600080fd5b505afa158015620005a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ce9190620010f5565b306040518363ffffffff1660e01b8152600401620005ee92919062001190565b602060405180830381600087803b1580156200060957600080fd5b505af11580156200061e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006449190620010f5565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620007b057600080fd5b505afa158015620007c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007eb9190620010f5565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360006200088262000f6f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460006200094162000f6f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000732d045410f002a95efcee67759a92518fa3fce67773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000732d045410f002a95efcee67759a92518fa3fce67773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000c63601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000f9860201b60201c565b5060016005600073e4882975f933a199c92b5a925c9a8fe65d599aa873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560007386c70c4a3bc775fb4030448c9fdb73dc09dd844473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600073a4a25adcfca938aa030191c297321323c57148bd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560007320c00aff15bb04cc631db07ee9ce361ae91d12f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000730538856b6d0383cde1709c6531b9a0437185462b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000f039190620011bd565b60405180910390a38073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050506200154a565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600062000fcc827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000fd360201b60201c565b9050919050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051620010b59190620011bd565b60405180910390a36001905092915050565b600081519050620010d88162001516565b92915050565b600081519050620010ef8162001530565b92915050565b6000602082840312156200110e576200110d62001504565b5b60006200111e84828501620010c7565b91505092915050565b6000806040838503121562001141576200114062001504565b5b60006200115185828601620010de565b92505060206200116485828601620010c7565b9150509250929050565b620011798162001468565b82525050565b6200118a816200149c565b82525050565b6000604082019050620011a760008301856200116e565b620011b660208301846200116e565b9392505050565b6000602082019050620011d460008301846200117f565b92915050565b6000620011e7826200149c565b9150620011f4836200149c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200122c576200122b620014a6565b5b828201905092915050565b600062001244826200149c565b915062001251836200149c565b925082620012645762001263620014d5565b5b828204905092915050565b6000808291508390505b6001851115620012c157808604811115620012995762001298620014a6565b5b6001851615620012a95780820291505b8081029050620012b98562001509565b945062001279565b94509492505050565b6000620012d7826200149c565b9150620012e4836200149c565b9250620013137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200131b565b905092915050565b6000826200132d576001905062001400565b816200133d576000905062001400565b8160018114620013565760028114620013615762001397565b600191505062001400565b60ff841115620013765762001375620014a6565b5b8360020a91508482111562001390576200138f620014a6565b5b5062001400565b5060208310610133831016604e8410600b8410161715620013d15782820a905083811115620013cb57620013ca620014a6565b5b62001400565b620013e084848460016200126f565b92509050818404811115620013fa57620013f9620014a6565b5b81810290505b9392505050565b600062001414826200149c565b915062001421836200149c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200145d576200145c620014a6565b5b828202905092915050565b600062001475826200147c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b620015218162001468565b81146200152d57600080fd5b50565b6200153b816200149c565b81146200154757600080fd5b50565b608051615b726200156660003960006137960152615b726000f3fe6080604052600436106103905760003560e01c806364038409116101dc578063d4e43fb311610102578063e79d4160116100a0578063f6540ec71161006f578063f6540ec714610d45578063f7727e1414610d70578063f7c245ea14610d87578063fe575a8714610db257610397565b8063e79d416014610c9d578063ea4a145414610cc8578063eec2744e14610cf1578063efe7dc9014610d1a57610397565b8063d7124d9f116100dc578063d7124d9f14610be5578063dd62ed3e14610c0e578063e0edd58614610c4b578063e179503314610c7457610397565b8063d4e43fb314610b56578063d51ed1c814610b7f578063d63cad2214610bbc57610397565b8063893d20e81161017a578063a12a7d6111610149578063a12a7d6114610a8a578063a9059cbb14610ab3578063bca238aa14610af0578063d0b1449d14610b2d57610397565b8063893d20e8146109f25780638da5cb5b14610a1d57806395d89b4114610a485780639dc6761514610a7357610397565b806370a08231116101b657806370a082311461094857806370d5ae0514610985578063715018a6146109b05780637ae316d0146109c757610397565b806364038409146108c95780636b639a25146108f45780636bc87c3a1461091d57610397565b8063255a2e54116102c15780633f3cf56c1161025f57806350a8e0161161022e57806350a8e0161461080d57806352d80fac14610838578063571ac8b0146108635780635d098b38146108a057610397565b80633f3cf56c14610765578063452ed4f11461078e5780634a74bb02146107b95780634fb2e45d146107e457610397565b80632b112e491161029b5780632b112e49146106b95780632e8fa821146106e4578063313ce5671461070f5780633206b4aa1461073a57610397565b8063255a2e54146106285780632600395714610665578063283f78201461068e57610397565b806312907bea1161032e5780631db414ad116103085780631db414ad1461056c578063201e79911461059757806322976e0d146105c057806323b872dd146105eb57610397565b806312907bea146104eb57806318160ddd146105165780631d6167ac1461054157610397565b806309094d661161036a57806309094d661461041d578063095ea7b31461044857806309a8f179146104855780631161ae39146104ae57610397565b80630445b6671461039c57806306fdde03146103c75780630758d924146103f257610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610def565b6040516103be91906151c0565b60405180910390f35b3480156103d357600080fd5b506103dc610df5565b6040516103e99190614fde565b60405180910390f35b3480156103fe57600080fd5b50610407610e32565b6040516104149190614fc3565b60405180910390f35b34801561042957600080fd5b50610432610e58565b60405161043f91906151c0565b60405180910390f35b34801561045457600080fd5b5061046f600480360381019061046a9190614984565b610e5e565b60405161047c9190614fa8565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a79190614acb565b610f50565b005b3480156104ba57600080fd5b506104d560048036038101906104d09190614a8b565b61108c565b6040516104e29190614fa8565b60405180910390f35b3480156104f757600080fd5b506105006110a1565b60405161050d91906151c0565b60405180910390f35b34801561052257600080fd5b5061052b6110a7565b60405161053891906151c0565b60405180910390f35b34801561054d57600080fd5b506105566110b1565b60405161056391906151c0565b60405180910390f35b34801561057857600080fd5b506105816110b7565b60405161058e91906151c0565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b99190614a8b565b6110bd565b005b3480156105cc57600080fd5b506105d561115d565b6040516105e291906151c0565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d91906148f1565b611163565b60405161061f9190614fa8565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190614857565b611363565b60405161065c9190614fa8565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190614a8b565b6113b9565b005b34801561069a57600080fd5b506106a36114b6565b6040516106b091906151c0565b60405180910390f35b3480156106c557600080fd5b506106ce6114bc565b6040516106db91906151c0565b60405180910390f35b3480156106f057600080fd5b506106f9611530565b60405161070691906151c0565b60405180910390f35b34801561071b57600080fd5b50610724611536565b604051610731919061525e565b60405180910390f35b34801561074657600080fd5b5061074f61154d565b60405161075c91906151c0565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190614a8b565b611553565b005b34801561079a57600080fd5b506107a3611650565b6040516107b09190614eda565b60405180910390f35b3480156107c557600080fd5b506107ce611676565b6040516107db9190614fa8565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190614857565b611689565b005b34801561081957600080fd5b50610822611c2c565b60405161082f9190614fa8565b60405180910390f35b34801561084457600080fd5b5061084d611c3f565b60405161085a9190614fa8565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190614857565b611c52565b6040516108979190614fa8565b60405180910390f35b3480156108ac57600080fd5b506108c760048036038101906108c29190614884565b611c85565b005b3480156108d557600080fd5b506108de611de8565b6040516108eb91906151c0565b60405180910390f35b34801561090057600080fd5b5061091b60048036038101906109169190614944565b611dee565b005b34801561092957600080fd5b506109326120d4565b60405161093f91906151c0565b60405180910390f35b34801561095457600080fd5b5061096f600480360381019061096a9190614857565b6120da565b60405161097c91906151c0565b60405180910390f35b34801561099157600080fd5b5061099a612123565b6040516109a79190614eda565b60405180910390f35b3480156109bc57600080fd5b506109c5612149565b005b3480156109d357600080fd5b506109dc612387565b6040516109e991906151c0565b60405180910390f35b3480156109fe57600080fd5b50610a07612391565b604051610a149190614eda565b60405180910390f35b348015610a2957600080fd5b50610a326123a0565b604051610a3f9190614eda565b60405180910390f35b348015610a5457600080fd5b50610a5d6123c9565b604051610a6a9190614fde565b60405180910390f35b348015610a7f57600080fd5b50610a88612406565b005b348015610a9657600080fd5b50610ab16004803603810190610aac9190614b71565b612495565b005b348015610abf57600080fd5b50610ada6004803603810190610ad59190614984565b6125bc565b604051610ae79190614fa8565b60405180910390f35b348015610afc57600080fd5b50610b176004803603810190610b129190614857565b6125d1565b604051610b249190614fa8565b60405180910390f35b348015610b3957600080fd5b50610b546004803603810190610b4f9190614a31565b612627565b005b348015610b6257600080fd5b50610b7d6004803603810190610b7891906149f1565b6126ce565b005b348015610b8b57600080fd5b50610ba66004803603810190610ba19190614a31565b612794565b604051610bb391906151c0565b60405180910390f35b348015610bc857600080fd5b50610be36004803603810190610bde9190614944565b6127f1565b005b348015610bf157600080fd5b50610c0c6004803603810190610c0791906149c4565b6128da565b005b348015610c1a57600080fd5b50610c356004803603810190610c3091906148b1565b6129db565b604051610c4291906151c0565b60405180910390f35b348015610c5757600080fd5b50610c726004803603810190610c6d9190614a8b565b612a62565b005b348015610c8057600080fd5b50610c9b6004803603810190610c9691906149c4565b612b21565b005b348015610ca957600080fd5b50610cb2612bcc565b604051610cbf91906151c0565b60405180910390f35b348015610cd457600080fd5b50610cef6004803603810190610cea9190614a8b565b612bd2565b005b348015610cfd57600080fd5b50610d186004803603810190610d139190614944565b612c91565b005b348015610d2657600080fd5b50610d2f612d7a565b604051610d3c9190614fa8565b60405180910390f35b348015610d5157600080fd5b50610d5a612d8d565b604051610d6791906151c0565b60405180910390f35b348015610d7c57600080fd5b50610d85612d93565b005b348015610d9357600080fd5b50610d9c612ea9565b604051610da991906151c0565b60405180910390f35b348015610dbe57600080fd5b50610dd96004803603810190610dd49190614857565b612f50565b604051610de69190614fa8565b60405180910390f35b60285481565b60606040518060400160405280600a81526020017f6d756d6d617363616b6500000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f3e91906151c0565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd590615120565b60405180910390fd5b80600a610feb91906153a8565b82610ff691906154c6565b9150602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638cd7f02e84846040518363ffffffff1660e01b8152600401611055929190615235565b600060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b50505050505050565b60008261109883612794565b11905092915050565b600b5481565b6000600954905090565b60115481565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114290615120565b60405180910390fd5b81602381905550806024819055505050565b600e5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461134f576112ce826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa69092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61135a84848461300a565b90509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90615120565b60405180910390fd5b6103e881111561145657600080fd5b61147d8161146f8460095461336c90919063ffffffff16565b6133e790919063ffffffff16565b6020819055506114ac8161149e84633b9aca0061336c90919063ffffffff16565b6133e790919063ffffffff16565b6022819055505050565b60105481565b60006114e9601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166120da565b611514601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166120da565b6009546115219190615520565b61152b9190615520565b905090565b60295481565b6000600760009054906101000a900460ff16905090565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890615120565b60405180910390fd5b6127108111156115f057600080fd5b611617816116098460095461336c90919063ffffffff16565b6133e790919063ffffffff16565b601b819055506116468161163884633b9aca0061336c90919063ffffffff16565b6133e790919063ffffffff16565b601d819055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602760009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e90615120565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e906151a0565b60405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061191460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461300a565b506000600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b6f5780601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602a60039054906101000a900460ff1681565b602a60009054906101000a900460ff1681565b6000611c7e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e5e565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a90615120565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b906150a0565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390615120565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f065750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f0f57600080fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561200157602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401611fca929190614ef5565b600060405180830381600087803b158015611fe457600080fd5b505af1158015611ff8573d6000803e3d6000fd5b505050506120d0565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161209d929190614f1e565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b505050505b5050565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ce90615120565b60405180910390fd5b6000600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b6000601054905090565b600061239b6123a0565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600a81526020017f6d756d6d617363616b6500000000000000000000000000000000000000000000815250905090565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e6f0efd336040518263ffffffff1660e01b81526004016124619190614eda565b600060405180830381600087803b15801561247b57600080fd5b505af115801561248f573d6000803e3d6000fd5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251a90615120565b60405180910390fd5b600b5484111580156125375750600d548311155b80156125455750600f548211155b61254e57600080fd5b60028161255b9190615324565b82848661256891906152ce565b61257291906152ce565b111561257d57600080fd5b83600a8190555082600c8190555081600e8190555081838561259f91906152ce565b6125a991906152ce565b6010819055508060118190555050505050565b60006125c933848461300a565b905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ac90615120565b60405180910390fd5b620b71b081106126c457600080fd5b8060268190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275390615120565b60405180910390fd5b81602760006101000a81548160ff02191690831515021790555080602760016101000a81548160ff0219169083151502179055505050565b600061279e6114bc565b60026127cb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166120da565b846127d691906154c6565b6127e091906154c6565b6127ea9190615324565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461287f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287690615120565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295f90615120565b60405180910390fd5b602a60029054906101000a900460ff16151581151514156129be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b590615020565b60405180910390fd5b80602a60026101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae790615120565b60405180910390fd5b612b1781612b098460095461336c90919063ffffffff16565b6133e790919063ffffffff16565b6028819055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba690615120565b60405180910390fd5b80602a60006101000a81548160ff02191690831515021790555050565b602d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5790615120565b60405180910390fd5b612c8781612c798460095461336c90919063ffffffff16565b6133e790919063ffffffff16565b6029819055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1690615120565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602760019054906101000a900460ff1681565b60225481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1890615120565b60405180910390fd5b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0476040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e8b57600080fd5b505af193505050508015612e9d575060015b612ea657612ea7565b5b565b6000602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635695fa586040518163ffffffff1660e01b815260040160206040518083038186803b158015612f1357600080fd5b505afa158015612f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4b9190614a5e565b905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290612fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fe59190614fde565b60405180910390fd5b5060008385612ffd9190615520565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307290615180565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156130eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e290615000565b60405180910390fd5b6000821161312e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312590615140565b60405180910390fd5b6131388484613431565b1561318357601b54821115613182576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613179906150c0565b60405180910390fd5b5b61318d8484613431565b80156131e75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132415750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156132a5576000613251846120da565b9050602054838261326291906152ce565b11156132a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329a906150e0565b60405180910390fd5b505b600060019050600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061334c5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561335657600090505b61336285858584613628565b9150509392505050565b60008083141561337f57600090506133e1565b6000828461338d91906154c6565b905082848261339c9190615324565b146133dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d390615100565b60405180910390fd5b809150505b92915050565b600061342983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b9b565b905092915050565b600061343b6123a0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156134a957506134796123a0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156134ff5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135555750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135af5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156135e85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561362057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6000602a60029054906101000a900460ff16156138745761364885612f50565b80613658575061365784612f50565b5b15613698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368f90615160565b60405180910390fd5b602a60039054906101000a900460ff1661371e576136b68585613bfe565b602a60039054906101000a900460ff161580156136d957506136d88585613431565b5b15613719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371090615080565b60405180910390fd5b613873565b6000602b5411801561377d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561378f575061378e8585613431565b5b15613872577f0000000000000000000000000000000000000000000000000000000000000000602b54436137c39190615520565b1015613871576001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602d600081548092919061383490615624565b91905055507f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e5846040516138689190614eda565b60405180910390a15b5b5b5b6138fd836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa69092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602a60019054906101000a900460ff161561396757613960858585613d90565b9050613b93565b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060295481106139ba5760295490505b602a60019054906101000a900460ff16158015613a255750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015613a3d5750602760009054906101000a900460ff165b8015613a4b57506028548110155b15613a5a57613a5981613e58565b5b60008490508315613a7257613a6f8786614375565b90505b613ac481600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461446a90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602760019054906101000a900460ff1615613b2757613b2687876144c8565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b8491906151c0565b60405180910390a36001925050505b949350505050565b60008083118290613be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bd99190614fde565b60405180910390fd5b5060008385613bf19190615324565b9050809150509392505050565b602a60039054906101000a900460ff1615613c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4590615040565b60405180910390fd5b613c588282613431565b158015613cb25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613d8c576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602a60036101000a81548160ff02191690831515021790555043602b8190555042602c819055506001602760006101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1596001604051613d839190614fa8565b60405180910390a15b5050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613de191906152ce565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613e4591906151c0565b60405180910390a3600190509392505050565b6001602a60016101000a81548160ff0219169083151502179055506000613e8360235460245461108c565b613e8f57600a54613e92565b60005b9050600060026010548385613ea791906154c6565b613eb19190615324565b613ebb9190615324565b905060008184613ecb9190615520565b90506000600267ffffffffffffffff811115613eea57613ee96156fa565b5b604051908082528060200260200182016040528015613f185781602001602082028036833780820191505090505b5090503081600081518110613f3057613f2f6156cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613fa157613fa06156cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016140449594939291906151db565b600060405180830381600087803b15801561405e57600080fd5b505af1158015614072573d6000803e3d6000fd5b505050506000479050602a60009054906101000a900460ff161561409f57814761409c9190615520565b90505b60006002876140ae9190615324565b6010546140bb9190615520565b9050600060028289856140ce91906154c6565b6140d89190615324565b6140e29190615324565b9050600082600c54856140f591906154c6565b6140ff9190615324565b905060006141288261411a85886147a490919063ffffffff16565b6147a490919063ffffffff16565b9050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614192573d6000803e3d6000fd5b5060008911156142b857601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161422596959493929190614f47565b6060604051808303818588803b15801561423e57600080fd5b505af1158015614252573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142779190614b1e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516142ab929190615235565b60405180910390a16142c7565b82826142c491906152ce565b91505b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561433157600080fd5b505af193505050508015614343575060015b61434c5761434d565b5b505050505050505050506000602a60016101000a81548160ff02191690831515021790555050565b600080601154614383612387565b8461438e91906154c6565b6143989190615324565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546143e991906152ce565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161444d91906151c0565b60405180910390a380836144619190615520565b91505092915050565b600080828461447991906152ce565b9050838110156144be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144b590615060565b60405180910390fd5b8091505092915050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166145eb57602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016145b5929190614f1e565b600060405180830381600087803b1580156145cf57600080fd5b505af19250505080156145e0575060015b6145e9576145ea565b5b5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661470e57602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9682600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016146d8929190614f1e565b600060405180830381600087803b1580156146f257600080fd5b505af1925050508015614703575060015b61470c5761470d565b5b5b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796026546040518263ffffffff1660e01b815260040161476b91906151c0565b600060405180830381600087803b15801561478557600080fd5b505af1925050508015614796575060015b61479f576147a0565b5b5050565b60006147e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612fa6565b905092915050565b6000813590506147fd81615ae0565b92915050565b60008135905061481281615af7565b92915050565b60008135905061482781615b0e565b92915050565b60008135905061483c81615b25565b92915050565b60008151905061485181615b25565b92915050565b60006020828403121561486d5761486c615729565b5b600061487b848285016147ee565b91505092915050565b60006020828403121561489a57614899615729565b5b60006148a884828501614803565b91505092915050565b600080604083850312156148c8576148c7615729565b5b60006148d6858286016147ee565b92505060206148e7858286016147ee565b9150509250929050565b60008060006060848603121561490a57614909615729565b5b6000614918868287016147ee565b9350506020614929868287016147ee565b925050604061493a8682870161482d565b9150509250925092565b6000806040838503121561495b5761495a615729565b5b6000614969858286016147ee565b925050602061497a85828601614818565b9150509250929050565b6000806040838503121561499b5761499a615729565b5b60006149a9858286016147ee565b92505060206149ba8582860161482d565b9150509250929050565b6000602082840312156149da576149d9615729565b5b60006149e884828501614818565b91505092915050565b60008060408385031215614a0857614a07615729565b5b6000614a1685828601614818565b9250506020614a2785828601614818565b9150509250929050565b600060208284031215614a4757614a46615729565b5b6000614a558482850161482d565b91505092915050565b600060208284031215614a7457614a73615729565b5b6000614a8284828501614842565b91505092915050565b60008060408385031215614aa257614aa1615729565b5b6000614ab08582860161482d565b9250506020614ac18582860161482d565b9150509250929050565b600080600060608486031215614ae457614ae3615729565b5b6000614af28682870161482d565b9350506020614b038682870161482d565b9250506040614b148682870161482d565b9150509250925092565b600080600060608486031215614b3757614b36615729565b5b6000614b4586828701614842565b9350506020614b5686828701614842565b9250506040614b6786828701614842565b9150509250925092565b60008060008060808587031215614b8b57614b8a615729565b5b6000614b998782880161482d565b9450506020614baa8782880161482d565b9350506040614bbb8782880161482d565b9250506060614bcc8782880161482d565b91505092959194509250565b6000614be48383614bf0565b60208301905092915050565b614bf981615554565b82525050565b614c0881615554565b82525050565b6000614c1982615289565b614c2381856152ac565b9350614c2e83615279565b8060005b83811015614c5f578151614c468882614bd8565b9750614c518361529f565b925050600181019050614c32565b5085935050505092915050565b614c7581615578565b82525050565b614c84816155bb565b82525050565b614c93816155df565b82525050565b6000614ca482615294565b614cae81856152bd565b9350614cbe8185602086016155f1565b614cc78161572e565b840191505092915050565b6000614cdf6023836152bd565b9150614cea8261574c565b604082019050919050565b6000614d02600c836152bd565b9150614d0d8261579b565b602082019050919050565b6000614d256023836152bd565b9150614d30826157c4565b604082019050919050565b6000614d48601b836152bd565b9150614d5382615813565b602082019050919050565b6000614d6b6025836152bd565b9150614d768261583c565b604082019050919050565b6000614d8e6013836152bd565b9150614d998261588b565b602082019050919050565b6000614db16028836152bd565b9150614dbc826158b4565b604082019050919050565b6000614dd4602a836152bd565b9150614ddf82615903565b604082019050919050565b6000614df76021836152bd565b9150614e0282615952565b604082019050919050565b6000614e1a6020836152bd565b9150614e25826159a1565b602082019050919050565b6000614e3d6029836152bd565b9150614e48826159ca565b604082019050919050565b6000614e606010836152bd565b9150614e6b82615a19565b602082019050919050565b6000614e836025836152bd565b9150614e8e82615a42565b604082019050919050565b6000614ea6603d836152bd565b9150614eb182615a91565b604082019050919050565b614ec5816155a4565b82525050565b614ed4816155ae565b82525050565b6000602082019050614eef6000830184614bff565b92915050565b6000604082019050614f0a6000830185614bff565b614f176020830184614c8a565b9392505050565b6000604082019050614f336000830185614bff565b614f406020830184614ebc565b9392505050565b600060c082019050614f5c6000830189614bff565b614f696020830188614ebc565b614f766040830187614c8a565b614f836060830186614c8a565b614f906080830185614bff565b614f9d60a0830184614ebc565b979650505050505050565b6000602082019050614fbd6000830184614c6c565b92915050565b6000602082019050614fd86000830184614c7b565b92915050565b60006020820190508181036000830152614ff88184614c99565b905092915050565b6000602082019050818103600083015261501981614cd2565b9050919050565b6000602082019050818103600083015261503981614cf5565b9050919050565b6000602082019050818103600083015261505981614d18565b9050919050565b6000602082019050818103600083015261507981614d3b565b9050919050565b6000602082019050818103600083015261509981614d5e565b9050919050565b600060208201905081810360008301526150b981614d81565b9050919050565b600060208201905081810360008301526150d981614da4565b9050919050565b600060208201905081810360008301526150f981614dc7565b9050919050565b6000602082019050818103600083015261511981614dea565b9050919050565b6000602082019050818103600083015261513981614e0d565b9050919050565b6000602082019050818103600083015261515981614e30565b9050919050565b6000602082019050818103600083015261517981614e53565b9050919050565b6000602082019050818103600083015261519981614e76565b9050919050565b600060208201905081810360008301526151b981614e99565b9050919050565b60006020820190506151d56000830184614ebc565b92915050565b600060a0820190506151f06000830188614ebc565b6151fd6020830187614c8a565b818103604083015261520f8186614c0e565b905061521e6060830185614bff565b61522b6080830184614ebc565b9695505050505050565b600060408201905061524a6000830185614ebc565b6152576020830184614ebc565b9392505050565b60006020820190506152736000830184614ecb565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006152d9826155a4565b91506152e4836155a4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156153195761531861566d565b5b828201905092915050565b600061532f826155a4565b915061533a836155a4565b92508261534a5761534961569c565b5b828204905092915050565b6000808291508390505b600185111561539f5780860481111561537b5761537a61566d565b5b600185161561538a5780820291505b80810290506153988561573f565b945061535f565b94509492505050565b60006153b3826155a4565b91506153be836155a4565b92506153eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846153f3565b905092915050565b60008261540357600190506154bf565b8161541157600090506154bf565b8160018114615427576002811461543157615460565b60019150506154bf565b60ff8411156154435761544261566d565b5b8360020a91508482111561545a5761545961566d565b5b506154bf565b5060208310610133831016604e8410600b84101617156154955782820a9050838111156154905761548f61566d565b5b6154bf565b6154a28484846001615355565b925090508184048111156154b9576154b861566d565b5b81810290505b9392505050565b60006154d1826155a4565b91506154dc836155a4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156155155761551461566d565b5b828202905092915050565b600061552b826155a4565b9150615536836155a4565b9250828210156155495761554861566d565b5b828203905092915050565b600061555f82615584565b9050919050565b600061557182615584565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155c6826155cd565b9050919050565b60006155d882615584565b9050919050565b60006155ea826155a4565b9050919050565b60005b8381101561560f5780820151818401526020810190506155f4565b8381111561561e576000848401525b50505050565b600061562f826155a4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156156625761566161566d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416c7265616479207365742e0000000000000000000000000000000000000000600082015250565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b60008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060008201527f74696d652e000000000000000000000000000000000000000000000000000000602082015250565b7f57616c6c657420616c7265616479207365742100000000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c657453697a652e00000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f536e697065722072656a65637465642e00000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660008201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b615ae981615554565b8114615af457600080fd5b50565b615b0081615566565b8114615b0b57600080fd5b50565b615b1781615578565b8114615b2257600080fd5b50565b615b2e816155a4565b8114615b3957600080fd5b5056fea2646970667358221220b9d1026061438dd7a63eddbbf4b2e761201e8bcac81774843639bafd52bb1f3664736f6c6343000806003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82
Deployed Bytecode
0x6080604052600436106103905760003560e01c806364038409116101dc578063d4e43fb311610102578063e79d4160116100a0578063f6540ec71161006f578063f6540ec714610d45578063f7727e1414610d70578063f7c245ea14610d87578063fe575a8714610db257610397565b8063e79d416014610c9d578063ea4a145414610cc8578063eec2744e14610cf1578063efe7dc9014610d1a57610397565b8063d7124d9f116100dc578063d7124d9f14610be5578063dd62ed3e14610c0e578063e0edd58614610c4b578063e179503314610c7457610397565b8063d4e43fb314610b56578063d51ed1c814610b7f578063d63cad2214610bbc57610397565b8063893d20e81161017a578063a12a7d6111610149578063a12a7d6114610a8a578063a9059cbb14610ab3578063bca238aa14610af0578063d0b1449d14610b2d57610397565b8063893d20e8146109f25780638da5cb5b14610a1d57806395d89b4114610a485780639dc6761514610a7357610397565b806370a08231116101b657806370a082311461094857806370d5ae0514610985578063715018a6146109b05780637ae316d0146109c757610397565b806364038409146108c95780636b639a25146108f45780636bc87c3a1461091d57610397565b8063255a2e54116102c15780633f3cf56c1161025f57806350a8e0161161022e57806350a8e0161461080d57806352d80fac14610838578063571ac8b0146108635780635d098b38146108a057610397565b80633f3cf56c14610765578063452ed4f11461078e5780634a74bb02146107b95780634fb2e45d146107e457610397565b80632b112e491161029b5780632b112e49146106b95780632e8fa821146106e4578063313ce5671461070f5780633206b4aa1461073a57610397565b8063255a2e54146106285780632600395714610665578063283f78201461068e57610397565b806312907bea1161032e5780631db414ad116103085780631db414ad1461056c578063201e79911461059757806322976e0d146105c057806323b872dd146105eb57610397565b806312907bea146104eb57806318160ddd146105165780631d6167ac1461054157610397565b806309094d661161036a57806309094d661461041d578063095ea7b31461044857806309a8f179146104855780631161ae39146104ae57610397565b80630445b6671461039c57806306fdde03146103c75780630758d924146103f257610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610def565b6040516103be91906151c0565b60405180910390f35b3480156103d357600080fd5b506103dc610df5565b6040516103e99190614fde565b60405180910390f35b3480156103fe57600080fd5b50610407610e32565b6040516104149190614fc3565b60405180910390f35b34801561042957600080fd5b50610432610e58565b60405161043f91906151c0565b60405180910390f35b34801561045457600080fd5b5061046f600480360381019061046a9190614984565b610e5e565b60405161047c9190614fa8565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a79190614acb565b610f50565b005b3480156104ba57600080fd5b506104d560048036038101906104d09190614a8b565b61108c565b6040516104e29190614fa8565b60405180910390f35b3480156104f757600080fd5b506105006110a1565b60405161050d91906151c0565b60405180910390f35b34801561052257600080fd5b5061052b6110a7565b60405161053891906151c0565b60405180910390f35b34801561054d57600080fd5b506105566110b1565b60405161056391906151c0565b60405180910390f35b34801561057857600080fd5b506105816110b7565b60405161058e91906151c0565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b99190614a8b565b6110bd565b005b3480156105cc57600080fd5b506105d561115d565b6040516105e291906151c0565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d91906148f1565b611163565b60405161061f9190614fa8565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190614857565b611363565b60405161065c9190614fa8565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190614a8b565b6113b9565b005b34801561069a57600080fd5b506106a36114b6565b6040516106b091906151c0565b60405180910390f35b3480156106c557600080fd5b506106ce6114bc565b6040516106db91906151c0565b60405180910390f35b3480156106f057600080fd5b506106f9611530565b60405161070691906151c0565b60405180910390f35b34801561071b57600080fd5b50610724611536565b604051610731919061525e565b60405180910390f35b34801561074657600080fd5b5061074f61154d565b60405161075c91906151c0565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190614a8b565b611553565b005b34801561079a57600080fd5b506107a3611650565b6040516107b09190614eda565b60405180910390f35b3480156107c557600080fd5b506107ce611676565b6040516107db9190614fa8565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190614857565b611689565b005b34801561081957600080fd5b50610822611c2c565b60405161082f9190614fa8565b60405180910390f35b34801561084457600080fd5b5061084d611c3f565b60405161085a9190614fa8565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190614857565b611c52565b6040516108979190614fa8565b60405180910390f35b3480156108ac57600080fd5b506108c760048036038101906108c29190614884565b611c85565b005b3480156108d557600080fd5b506108de611de8565b6040516108eb91906151c0565b60405180910390f35b34801561090057600080fd5b5061091b60048036038101906109169190614944565b611dee565b005b34801561092957600080fd5b506109326120d4565b60405161093f91906151c0565b60405180910390f35b34801561095457600080fd5b5061096f600480360381019061096a9190614857565b6120da565b60405161097c91906151c0565b60405180910390f35b34801561099157600080fd5b5061099a612123565b6040516109a79190614eda565b60405180910390f35b3480156109bc57600080fd5b506109c5612149565b005b3480156109d357600080fd5b506109dc612387565b6040516109e991906151c0565b60405180910390f35b3480156109fe57600080fd5b50610a07612391565b604051610a149190614eda565b60405180910390f35b348015610a2957600080fd5b50610a326123a0565b604051610a3f9190614eda565b60405180910390f35b348015610a5457600080fd5b50610a5d6123c9565b604051610a6a9190614fde565b60405180910390f35b348015610a7f57600080fd5b50610a88612406565b005b348015610a9657600080fd5b50610ab16004803603810190610aac9190614b71565b612495565b005b348015610abf57600080fd5b50610ada6004803603810190610ad59190614984565b6125bc565b604051610ae79190614fa8565b60405180910390f35b348015610afc57600080fd5b50610b176004803603810190610b129190614857565b6125d1565b604051610b249190614fa8565b60405180910390f35b348015610b3957600080fd5b50610b546004803603810190610b4f9190614a31565b612627565b005b348015610b6257600080fd5b50610b7d6004803603810190610b7891906149f1565b6126ce565b005b348015610b8b57600080fd5b50610ba66004803603810190610ba19190614a31565b612794565b604051610bb391906151c0565b60405180910390f35b348015610bc857600080fd5b50610be36004803603810190610bde9190614944565b6127f1565b005b348015610bf157600080fd5b50610c0c6004803603810190610c0791906149c4565b6128da565b005b348015610c1a57600080fd5b50610c356004803603810190610c3091906148b1565b6129db565b604051610c4291906151c0565b60405180910390f35b348015610c5757600080fd5b50610c726004803603810190610c6d9190614a8b565b612a62565b005b348015610c8057600080fd5b50610c9b6004803603810190610c9691906149c4565b612b21565b005b348015610ca957600080fd5b50610cb2612bcc565b604051610cbf91906151c0565b60405180910390f35b348015610cd457600080fd5b50610cef6004803603810190610cea9190614a8b565b612bd2565b005b348015610cfd57600080fd5b50610d186004803603810190610d139190614944565b612c91565b005b348015610d2657600080fd5b50610d2f612d7a565b604051610d3c9190614fa8565b60405180910390f35b348015610d5157600080fd5b50610d5a612d8d565b604051610d6791906151c0565b60405180910390f35b348015610d7c57600080fd5b50610d85612d93565b005b348015610d9357600080fd5b50610d9c612ea9565b604051610da991906151c0565b60405180910390f35b348015610dbe57600080fd5b50610dd96004803603810190610dd49190614857565b612f50565b604051610de69190614fa8565b60405180910390f35b60285481565b60606040518060400160405280600a81526020017f6d756d6d617363616b6500000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f3e91906151c0565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd590615120565b60405180910390fd5b80600a610feb91906153a8565b82610ff691906154c6565b9150602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638cd7f02e84846040518363ffffffff1660e01b8152600401611055929190615235565b600060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b50505050505050565b60008261109883612794565b11905092915050565b600b5481565b6000600954905090565b60115481565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114290615120565b60405180910390fd5b81602381905550806024819055505050565b600e5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461134f576112ce826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa69092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61135a84848461300a565b90509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90615120565b60405180910390fd5b6103e881111561145657600080fd5b61147d8161146f8460095461336c90919063ffffffff16565b6133e790919063ffffffff16565b6020819055506114ac8161149e84633b9aca0061336c90919063ffffffff16565b6133e790919063ffffffff16565b6022819055505050565b60105481565b60006114e9601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166120da565b611514601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166120da565b6009546115219190615520565b61152b9190615520565b905090565b60295481565b6000600760009054906101000a900460ff16905090565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890615120565b60405180910390fd5b6127108111156115f057600080fd5b611617816116098460095461336c90919063ffffffff16565b6133e790919063ffffffff16565b601b819055506116468161163884633b9aca0061336c90919063ffffffff16565b6133e790919063ffffffff16565b601d819055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602760009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e90615120565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e906151a0565b60405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061191460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461300a565b506000600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b6f5780601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602a60039054906101000a900460ff1681565b602a60009054906101000a900460ff1681565b6000611c7e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e5e565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a90615120565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b906150a0565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390615120565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f065750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f0f57600080fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561200157602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401611fca929190614ef5565b600060405180830381600087803b158015611fe457600080fd5b505af1158015611ff8573d6000803e3d6000fd5b505050506120d0565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161209d929190614f1e565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b505050505b5050565b600a5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ce90615120565b60405180910390fd5b6000600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b6000601054905090565b600061239b6123a0565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600a81526020017f6d756d6d617363616b6500000000000000000000000000000000000000000000815250905090565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e6f0efd336040518263ffffffff1660e01b81526004016124619190614eda565b600060405180830381600087803b15801561247b57600080fd5b505af115801561248f573d6000803e3d6000fd5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251a90615120565b60405180910390fd5b600b5484111580156125375750600d548311155b80156125455750600f548211155b61254e57600080fd5b60028161255b9190615324565b82848661256891906152ce565b61257291906152ce565b111561257d57600080fd5b83600a8190555082600c8190555081600e8190555081838561259f91906152ce565b6125a991906152ce565b6010819055508060118190555050505050565b60006125c933848461300a565b905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ac90615120565b60405180910390fd5b620b71b081106126c457600080fd5b8060268190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275390615120565b60405180910390fd5b81602760006101000a81548160ff02191690831515021790555080602760016101000a81548160ff0219169083151502179055505050565b600061279e6114bc565b60026127cb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166120da565b846127d691906154c6565b6127e091906154c6565b6127ea9190615324565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461287f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287690615120565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295f90615120565b60405180910390fd5b602a60029054906101000a900460ff16151581151514156129be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b590615020565b60405180910390fd5b80602a60026101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae790615120565b60405180910390fd5b612b1781612b098460095461336c90919063ffffffff16565b6133e790919063ffffffff16565b6028819055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba690615120565b60405180910390fd5b80602a60006101000a81548160ff02191690831515021790555050565b602d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5790615120565b60405180910390fd5b612c8781612c798460095461336c90919063ffffffff16565b6133e790919063ffffffff16565b6029819055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1690615120565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602760019054906101000a900460ff1681565b60225481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1890615120565b60405180910390fd5b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0476040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e8b57600080fd5b505af193505050508015612e9d575060015b612ea657612ea7565b5b565b6000602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635695fa586040518163ffffffff1660e01b815260040160206040518083038186803b158015612f1357600080fd5b505afa158015612f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4b9190614a5e565b905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290612fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fe59190614fde565b60405180910390fd5b5060008385612ffd9190615520565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307290615180565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156130eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e290615000565b60405180910390fd5b6000821161312e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312590615140565b60405180910390fd5b6131388484613431565b1561318357601b54821115613182576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613179906150c0565b60405180910390fd5b5b61318d8484613431565b80156131e75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156132415750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156132a5576000613251846120da565b9050602054838261326291906152ce565b11156132a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329a906150e0565b60405180910390fd5b505b600060019050600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061334c5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561335657600090505b61336285858584613628565b9150509392505050565b60008083141561337f57600090506133e1565b6000828461338d91906154c6565b905082848261339c9190615324565b146133dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d390615100565b60405180910390fd5b809150505b92915050565b600061342983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b9b565b905092915050565b600061343b6123a0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156134a957506134796123a0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156134ff5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135555750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135af5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156135e85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561362057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6000602a60029054906101000a900460ff16156138745761364885612f50565b80613658575061365784612f50565b5b15613698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368f90615160565b60405180910390fd5b602a60039054906101000a900460ff1661371e576136b68585613bfe565b602a60039054906101000a900460ff161580156136d957506136d88585613431565b5b15613719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371090615080565b60405180910390fd5b613873565b6000602b5411801561377d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561378f575061378e8585613431565b5b15613872577f0000000000000000000000000000000000000000000000000000000000000000602b54436137c39190615520565b1015613871576001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602d600081548092919061383490615624565b91905055507f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e5846040516138689190614eda565b60405180910390a15b5b5b5b6138fd836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fa69092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602a60019054906101000a900460ff161561396757613960858585613d90565b9050613b93565b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060295481106139ba5760295490505b602a60019054906101000a900460ff16158015613a255750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015613a3d5750602760009054906101000a900460ff165b8015613a4b57506028548110155b15613a5a57613a5981613e58565b5b60008490508315613a7257613a6f8786614375565b90505b613ac481600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461446a90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602760019054906101000a900460ff1615613b2757613b2687876144c8565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b8491906151c0565b60405180910390a36001925050505b949350505050565b60008083118290613be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bd99190614fde565b60405180910390fd5b5060008385613bf19190615324565b9050809150509392505050565b602a60039054906101000a900460ff1615613c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4590615040565b60405180910390fd5b613c588282613431565b158015613cb25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15613d8c576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602a60036101000a81548160ff02191690831515021790555043602b8190555042602c819055506001602760006101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1596001604051613d839190614fa8565b60405180910390a15b5050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613de191906152ce565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613e4591906151c0565b60405180910390a3600190509392505050565b6001602a60016101000a81548160ff0219169083151502179055506000613e8360235460245461108c565b613e8f57600a54613e92565b60005b9050600060026010548385613ea791906154c6565b613eb19190615324565b613ebb9190615324565b905060008184613ecb9190615520565b90506000600267ffffffffffffffff811115613eea57613ee96156fa565b5b604051908082528060200260200182016040528015613f185781602001602082028036833780820191505090505b5090503081600081518110613f3057613f2f6156cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613fa157613fa06156cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016140449594939291906151db565b600060405180830381600087803b15801561405e57600080fd5b505af1158015614072573d6000803e3d6000fd5b505050506000479050602a60009054906101000a900460ff161561409f57814761409c9190615520565b90505b60006002876140ae9190615324565b6010546140bb9190615520565b9050600060028289856140ce91906154c6565b6140d89190615324565b6140e29190615324565b9050600082600c54856140f591906154c6565b6140ff9190615324565b905060006141288261411a85886147a490919063ffffffff16565b6147a490919063ffffffff16565b9050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614192573d6000803e3d6000fd5b5060008911156142b857601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161422596959493929190614f47565b6060604051808303818588803b15801561423e57600080fd5b505af1158015614252573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142779190614b1e565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516142ab929190615235565b60405180910390a16142c7565b82826142c491906152ce565b91505b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561433157600080fd5b505af193505050508015614343575060015b61434c5761434d565b5b505050505050505050506000602a60016101000a81548160ff02191690831515021790555050565b600080601154614383612387565b8461438e91906154c6565b6143989190615324565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546143e991906152ce565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161444d91906151c0565b60405180910390a380836144619190615520565b91505092915050565b600080828461447991906152ce565b9050838110156144be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144b590615060565b60405180910390fd5b8091505092915050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166145eb57602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016145b5929190614f1e565b600060405180830381600087803b1580156145cf57600080fd5b505af19250505080156145e0575060015b6145e9576145ea565b5b5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661470e57602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9682600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016146d8929190614f1e565b600060405180830381600087803b1580156146f257600080fd5b505af1925050508015614703575060015b61470c5761470d565b5b5b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796026546040518263ffffffff1660e01b815260040161476b91906151c0565b600060405180830381600087803b15801561478557600080fd5b505af1925050508015614796575060015b61479f576147a0565b5b5050565b60006147e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612fa6565b905092915050565b6000813590506147fd81615ae0565b92915050565b60008135905061481281615af7565b92915050565b60008135905061482781615b0e565b92915050565b60008135905061483c81615b25565b92915050565b60008151905061485181615b25565b92915050565b60006020828403121561486d5761486c615729565b5b600061487b848285016147ee565b91505092915050565b60006020828403121561489a57614899615729565b5b60006148a884828501614803565b91505092915050565b600080604083850312156148c8576148c7615729565b5b60006148d6858286016147ee565b92505060206148e7858286016147ee565b9150509250929050565b60008060006060848603121561490a57614909615729565b5b6000614918868287016147ee565b9350506020614929868287016147ee565b925050604061493a8682870161482d565b9150509250925092565b6000806040838503121561495b5761495a615729565b5b6000614969858286016147ee565b925050602061497a85828601614818565b9150509250929050565b6000806040838503121561499b5761499a615729565b5b60006149a9858286016147ee565b92505060206149ba8582860161482d565b9150509250929050565b6000602082840312156149da576149d9615729565b5b60006149e884828501614818565b91505092915050565b60008060408385031215614a0857614a07615729565b5b6000614a1685828601614818565b9250506020614a2785828601614818565b9150509250929050565b600060208284031215614a4757614a46615729565b5b6000614a558482850161482d565b91505092915050565b600060208284031215614a7457614a73615729565b5b6000614a8284828501614842565b91505092915050565b60008060408385031215614aa257614aa1615729565b5b6000614ab08582860161482d565b9250506020614ac18582860161482d565b9150509250929050565b600080600060608486031215614ae457614ae3615729565b5b6000614af28682870161482d565b9350506020614b038682870161482d565b9250506040614b148682870161482d565b9150509250925092565b600080600060608486031215614b3757614b36615729565b5b6000614b4586828701614842565b9350506020614b5686828701614842565b9250506040614b6786828701614842565b9150509250925092565b60008060008060808587031215614b8b57614b8a615729565b5b6000614b998782880161482d565b9450506020614baa8782880161482d565b9350506040614bbb8782880161482d565b9250506060614bcc8782880161482d565b91505092959194509250565b6000614be48383614bf0565b60208301905092915050565b614bf981615554565b82525050565b614c0881615554565b82525050565b6000614c1982615289565b614c2381856152ac565b9350614c2e83615279565b8060005b83811015614c5f578151614c468882614bd8565b9750614c518361529f565b925050600181019050614c32565b5085935050505092915050565b614c7581615578565b82525050565b614c84816155bb565b82525050565b614c93816155df565b82525050565b6000614ca482615294565b614cae81856152bd565b9350614cbe8185602086016155f1565b614cc78161572e565b840191505092915050565b6000614cdf6023836152bd565b9150614cea8261574c565b604082019050919050565b6000614d02600c836152bd565b9150614d0d8261579b565b602082019050919050565b6000614d256023836152bd565b9150614d30826157c4565b604082019050919050565b6000614d48601b836152bd565b9150614d5382615813565b602082019050919050565b6000614d6b6025836152bd565b9150614d768261583c565b604082019050919050565b6000614d8e6013836152bd565b9150614d998261588b565b602082019050919050565b6000614db16028836152bd565b9150614dbc826158b4565b604082019050919050565b6000614dd4602a836152bd565b9150614ddf82615903565b604082019050919050565b6000614df76021836152bd565b9150614e0282615952565b604082019050919050565b6000614e1a6020836152bd565b9150614e25826159a1565b602082019050919050565b6000614e3d6029836152bd565b9150614e48826159ca565b604082019050919050565b6000614e606010836152bd565b9150614e6b82615a19565b602082019050919050565b6000614e836025836152bd565b9150614e8e82615a42565b604082019050919050565b6000614ea6603d836152bd565b9150614eb182615a91565b604082019050919050565b614ec5816155a4565b82525050565b614ed4816155ae565b82525050565b6000602082019050614eef6000830184614bff565b92915050565b6000604082019050614f0a6000830185614bff565b614f176020830184614c8a565b9392505050565b6000604082019050614f336000830185614bff565b614f406020830184614ebc565b9392505050565b600060c082019050614f5c6000830189614bff565b614f696020830188614ebc565b614f766040830187614c8a565b614f836060830186614c8a565b614f906080830185614bff565b614f9d60a0830184614ebc565b979650505050505050565b6000602082019050614fbd6000830184614c6c565b92915050565b6000602082019050614fd86000830184614c7b565b92915050565b60006020820190508181036000830152614ff88184614c99565b905092915050565b6000602082019050818103600083015261501981614cd2565b9050919050565b6000602082019050818103600083015261503981614cf5565b9050919050565b6000602082019050818103600083015261505981614d18565b9050919050565b6000602082019050818103600083015261507981614d3b565b9050919050565b6000602082019050818103600083015261509981614d5e565b9050919050565b600060208201905081810360008301526150b981614d81565b9050919050565b600060208201905081810360008301526150d981614da4565b9050919050565b600060208201905081810360008301526150f981614dc7565b9050919050565b6000602082019050818103600083015261511981614dea565b9050919050565b6000602082019050818103600083015261513981614e0d565b9050919050565b6000602082019050818103600083015261515981614e30565b9050919050565b6000602082019050818103600083015261517981614e53565b9050919050565b6000602082019050818103600083015261519981614e76565b9050919050565b600060208201905081810360008301526151b981614e99565b9050919050565b60006020820190506151d56000830184614ebc565b92915050565b600060a0820190506151f06000830188614ebc565b6151fd6020830187614c8a565b818103604083015261520f8186614c0e565b905061521e6060830185614bff565b61522b6080830184614ebc565b9695505050505050565b600060408201905061524a6000830185614ebc565b6152576020830184614ebc565b9392505050565b60006020820190506152736000830184614ecb565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006152d9826155a4565b91506152e4836155a4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156153195761531861566d565b5b828201905092915050565b600061532f826155a4565b915061533a836155a4565b92508261534a5761534961569c565b5b828204905092915050565b6000808291508390505b600185111561539f5780860481111561537b5761537a61566d565b5b600185161561538a5780820291505b80810290506153988561573f565b945061535f565b94509492505050565b60006153b3826155a4565b91506153be836155a4565b92506153eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846153f3565b905092915050565b60008261540357600190506154bf565b8161541157600090506154bf565b8160018114615427576002811461543157615460565b60019150506154bf565b60ff8411156154435761544261566d565b5b8360020a91508482111561545a5761545961566d565b5b506154bf565b5060208310610133831016604e8410600b84101617156154955782820a9050838111156154905761548f61566d565b5b6154bf565b6154a28484846001615355565b925090508184048111156154b9576154b861566d565b5b81810290505b9392505050565b60006154d1826155a4565b91506154dc836155a4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156155155761551461566d565b5b828202905092915050565b600061552b826155a4565b9150615536836155a4565b9250828210156155495761554861566d565b5b828203905092915050565b600061555f82615584565b9050919050565b600061557182615584565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155c6826155cd565b9050919050565b60006155d882615584565b9050919050565b60006155ea826155a4565b9050919050565b60005b8381101561560f5780820151818401526020810190506155f4565b8381111561561e576000848401525b50505050565b600061562f826155a4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156156625761566161566d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416c7265616479207365742e0000000000000000000000000000000000000000600082015250565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b60008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f6e6c79206f776e65722063616e207472616e7366657220617420746869732060008201527f74696d652e000000000000000000000000000000000000000000000000000000602082015250565b7f57616c6c657420616c7265616479207365742100000000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c657453697a652e00000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f536e697065722072656a65637465642e00000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660008201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b615ae981615554565b8114615af457600080fd5b50565b615b0081615566565b8114615b0b57600080fd5b50565b615b1781615578565b8114615b2257600080fd5b50565b615b2e816155a4565b8114615b3957600080fd5b5056fea2646970667358221220b9d1026061438dd7a63eddbbf4b2e761201e8bcac81774843639bafd52bb1f3664736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82
-----Decoded View---------------
Arg [0] : _snipeBlockAmt (uint256): 0
Arg [1] : cInitializer (address): 0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82
Deployed Bytecode Sourcemap
19996:20414:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22752:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26971:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21221:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21049:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27393:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31333:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;32194:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20877:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26706:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21173:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20963:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31143:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21008:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28254:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28877:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32875:284;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21093:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31880:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22805:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26795:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20920:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32586:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21263:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22665:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25725:691;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22958:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22852;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27617:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30428:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21968:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29338:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20836:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27143:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21423:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26424:237;;;;;;;;;;;;;:::i;:::-;;37525:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27057:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25638:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26881:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32352:100;;;;;;;;;;;;;:::i;:::-;;29832:588;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28094:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28754:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31618:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30638:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;32026:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29696:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29151:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27252:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30837:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;31757:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23125:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30994:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29010:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22712:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22397:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39791:128;;;;;;;;;;;;;:::i;:::-;;32460:118;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28630:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22752:46;;;;:::o;26971:80::-;27019:13;27043:5;;;;;;;;;;;;;;;;;27036:12;;26971:80;:::o;21221:35::-;;;;;;;;;;;;;:::o;21049:37::-;;;;:::o;27393:216::-;27468:4;27520:6;27485:11;:23;27497:10;27485:23;;;;;;;;;;;;;;;:32;27509:7;27485:32;;;;;;;;;;;;;;;:41;;;;27563:7;27542:37;;27551:10;27542:37;;;27572:6;27542:37;;;;;;:::i;:::-;;;;;;;;27597:4;27590:11;;27393:216;;;;:::o;31333:277::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;31509:23:::1;31505:2;:27;;;;:::i;:::-;31488:14;:44;;;;:::i;:::-;31471:61;;31543:9;;;;;;;;;;;:31;;;31575:10;31587:14;31543:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;31333:277:::0;;;:::o;32194:150::-;32274:4;32330:6;32298:29;32318:8;32298:19;:29::i;:::-;:38;32291:45;;32194:150;;;;:::o;20877:36::-;;;;:::o;26706:83::-;26761:7;26779;;26772:14;;26706:83;:::o;21173:39::-;;;;:::o;20963:38::-;;;;:::o;31143:182::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;31258:7:::1;31240:15;:25;;;;31305:12;31276:26;:41;;;;31143:182:::0;;:::o;21008:34::-;;;;:::o;28254:368::-;28354:4;28410:17;28375:11;:19;28387:6;28375:19;;;;;;;;;;;;;;;:31;28395:10;28375:31;;;;;;;;;;;;;;;;:52;28371:188;;28478:69;28514:6;28478:69;;;;;;;;;;;;;;;;;:11;:19;28490:6;28478:19;;;;;;;;;;;;;;;:31;28498:10;28478:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;28444:11;:19;28456:6;28444:19;;;;;;;;;;;;;;;:31;28464:10;28444:31;;;;;;;;;;;;;;;:103;;;;28371:188;28578:36;28588:6;28596:9;28607:6;28578:9;:36::i;:::-;28571:43;;28254:368;;;;;:::o;28877:125::-;28942:4;28966:19;:28;28986:7;28966:28;;;;;;;;;;;;;;;;;;;;;;;;;28959:35;;28877:125;;;:::o;32875:284::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;32986:4:::1;32975:7;:15;;32967:24;;;::::0;::::1;;33049:33;33074:7;33049:20;33061:7;33049;;:11;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;33032:14;:50;;;;33111:40;33143:7;33111:27;33130:7;20528:13;33111:18;;:27;;;;:::i;:::-;:31;;:40;;;;:::i;:::-;33093:15;:58;;;;32875:284:::0;;:::o;21093:73::-;;;;:::o;31880:138::-;31933:7;31995:15;32005:4;;;;;;;;;;;31995:9;:15::i;:::-;31970:22;31980:11;;;;;;;;;;;31970:9;:22::i;:::-;31960:7;;:32;;;;:::i;:::-;:50;;;;:::i;:::-;31953:57;;31880:138;:::o;22805:40::-;;;;:::o;26795:80::-;26847:5;26863:9;;;;;;;;;;;26856:16;;26795:80;:::o;20920:36::-;;;;:::o;32586:281::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;32696:5:::1;32685:7;:16;;32677:25;;;::::0;::::1;;32759:33;32784:7;32759:20;32771:7;32759;;:11;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;32744:12;:48;;;;32819:40;32851:7;32819:27;32838:7;20528:13;32819:18;;:27;;;;:::i;:::-;:31;;:40;;;;:::i;:::-;32803:13;:56;;;;32586:281:::0;;:::o;21263:21::-;;;;;;;;;;;;;:::o;22665:40::-;;;;;;;;;;;;;:::o;25725:691::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;25826:1:::1;25806:22;;:8;:22;;;;25798:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;25947:7;:15;25955:6:::0;::::1;;;;;;;;;;25947:15;;;;;;;;;;;;;;;;25915:11;:19;25927:6:::0;::::1;;;;;;;;;;25915:19;;;;;;;;;;;;;;;:29;25935:8;25915:29;;;;;;;;;;;;;;;:47;;;;25973:44;25983:6;::::0;::::1;;;;;;;;25991:8;26001:7;:15;26009:6:::0;::::1;;;;;;;;;;26001:15;;;;;;;;;;;;;;;;25973:9;:44::i;:::-;;26055:5;26030:14;:22;26045:6:::0;::::1;;;;;;;;;;26030:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;26101:5;26071:19;:27;26091:6:::0;::::1;;;;;;;;;;26071:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;26144:4;26117:14;:24;26132:8;26117:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;26191:4;26159:19;:29;26179:8;26159:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;26248:6;::::0;::::1;;;;;;;;26220:35;;:16;;;;;;;;;;;:35;;;26216:90;;;26297:8;26270:16;;:36;;;;;;;;;;;;;;;;;;26216:90;26336:8;26327:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;26389:8;26360:38;;26381:6;::::0;::::1;;;;;;;;26360:38;;;;;;;;;;;;25725:691:::0;:::o;22958:36::-;;;;;;;;;;;;;:::o;22852:::-;;;;;;;;;;;;;:::o;27617:120::-;27670:4;27694:35;27702:7;27711:17;27694:7;:35::i;:::-;27687:42;;27617:120;;;:::o;30428:202::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;30541:9:::1;30521:29;;:16;;;;;;;;;;;:29;;;;30513:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;30612:9;30585:16;;:37;;;;;;;;;;;;;;;;;;30428:202:::0;:::o;21968:77::-;;;;:::o;29338:350::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;29451:4:::1;29433:23;;:6;:23;;;;:43;;;;;29470:6;;;;;;;;;;;29460:16;;:6;:16;;;;29433:43;29425:52;;;::::0;::::1;;29518:7;29488:19;:27;29508:6;29488:27;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;29540:7;29536:145;;;29564:9;;;;;;;;;;;:18;;;29583:6;29591:1;29564:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;29536:145;;;29626:9;;;;;;;;;;;:18;;;29645:6;29653:7;:15;29661:6;29653:15;;;;;;;;;;;;;;;;29626:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;29536:145;29338:350:::0;;:::o;20836:34::-;;;;:::o;27143:103::-;27209:7;27227;:16;27235:7;27227:16;;;;;;;;;;;;;;;;27220:23;;27143:103;;;:::o;21423:71::-;;;;;;;;;;;;;:::o;26424:237::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;26516:5:::1;26491:14;:22;26506:6:::0;::::1;;;;;;;;;;26491:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;26562:5;26532:19;:27;26552:6:::0;::::1;;;;;;;;;;26532:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;26595:1;26578:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;26650:1;26613:40;;26634:6;::::0;::::1;;;;;;;;26613:40;;;;;;;;;;;;26424:237::o:0;37525:88::-;37569:7;37596:9;;37589:16;;37525:88;:::o;27057:80::-;27109:7;27127;:5;:7::i;:::-;27120:14;;27057:80;:::o;25638:79::-;25676:7;25703:6;;;;;;;;;;;25696:13;;25638:79;:::o;26881:84::-;26931:13;26955:7;;;;;;;;;;;;;;;;;26948:14;;26881:84;:::o;32352:100::-;32403:9;;;;;;;;;;;:29;;;32433:10;32403:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32352:100::o;29832:588::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;29988:15:::1;;29972:12;:31;;:85;;;;;30041:16;;30024:13;:33;;29972:85;:137;;;;;30094:15;;30078:12;:31;;29972:137;29964:146;;;::::0;::::1;;30187:1;30177:7;:11;;;;:::i;:::-;30160:12;30144:13;30129:12;:28;;;;:::i;:::-;:43;;;;:::i;:::-;:60;;30121:69;;;::::0;::::1;;30217:12;30201:13;:28;;;;30257:13;30240:14;:30;;;;30297:12;30281:13;:28;;;;30363:12;30347:13;30332:12;:28;;;;:::i;:::-;:43;;;;:::i;:::-;30320:9;:55;;;;30405:7;30386:16;:26;;;;29832:588:::0;;;;:::o;28094:152::-;28174:4;28198:40;28208:10;28220:9;28231:6;28198:9;:40::i;:::-;28191:47;;28094:152;;;;:::o;28754:115::-;28814:4;28838:14;:23;28853:7;28838:23;;;;;;;;;;;;;;;;;;;;;;;;;28831:30;;28754:115;;;:::o;31618:131::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;31705:6:::1;31699:3;:12;31691:21;;;::::0;::::1;;31738:3;31723:12;:18;;;;31618:131:::0;:::o;30638:191::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;30764:8:::1;30740:21;;:32;;;;;;;;;;;;;;;;;;30800:21;30783:14;;:38;;;;;;;;;;;;;;;;;;30638:191:::0;;:::o;32026:160::-;32094:7;32156:22;:20;:22::i;:::-;32152:1;32132:17;32142:6;;;;;;;;;;;32132:9;:17::i;:::-;32121:8;:28;;;;:::i;:::-;:32;;;;:::i;:::-;:57;;;;:::i;:::-;32114:64;;32026:160;;;:::o;29696:128::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;29809:7:::1;29783:14;:23;29798:7;29783:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;29696:128:::0;;:::o;29151:179::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;29252:16:::1;;;;;;;;;;;29241:27;;:7;:27;;;;29233:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;29315:7;29296:16;;:26;;;;;;;;;;;;;;;;;;29151:179:::0;:::o;27252:133::-;27336:7;27354:11;:19;27366:6;27354:19;;;;;;;;;;;;;;;:28;27374:7;27354:28;;;;;;;;;;;;;;;;27347:35;;27252:133;;;;:::o;30837:149::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;30945:33:::1;30970:7;30945:20;30957:7;30945;;:11;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;30929:13;:49;;;;30837:149:::0;;:::o;31757:111::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;31853:7:::1;31833:17;;:27;;;;;;;;;;;;;;;;;;31757:111:::0;:::o;23125:32::-;;;;:::o;30994:141::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;31094:33:::1;31119:7;31094:20;31106:7;31094;;:11;;:20;;;;:::i;:::-;:24;;:33;;;;:::i;:::-;31081:10;:46;;;;30994:141:::0;;:::o;29010:133::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;29128:7:::1;29102:14;:23;29117:7;29102:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;29010:133:::0;;:::o;22712:33::-;;;;;;;;;;;;;:::o;22397:87::-;;;;:::o;39791:128::-;23313:10;23303:20;;:6;;;;;;;;;;:20;;;23295:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;39851:9:::1;;;;;;;;;;;:17;;;39876:21;39851:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;39847:65;;;;;;39791:128::o:0;32460:118::-;32512:7;32539:9;;;;;;;;;;;:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32532:38;;32460:118;:::o;28630:116::-;28691:4;28715:14;:23;28730:7;28715:23;;;;;;;;;;;;;;;;;;;;;;;;;28708:30;;28630:116;;;:::o;5156:192::-;5242:7;5275:1;5270;:6;;5278:12;5262:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5302:9;5318:1;5314;:5;;;;:::i;:::-;5302:17;;5339:1;5332:8;;;5156:192;;;;;:::o;33505:958::-;33584:4;33625:1;33609:18;;:4;:18;;;;33601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;33702:1;33688:16;;:2;:16;;;;33680:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;33772:1;33763:6;:10;33755:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;33833:20;33844:4;33850:2;33833:10;:20::i;:::-;33830:113;;;33886:12;;33876:6;:22;;33868:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;33830:113;33957:20;33968:4;33974:2;33957:10;:20::i;:::-;:57;;;;;34000:14;;;;;;;;;;;33994:20;;:2;:20;;;;33957:57;:87;;;;;34038:6;;;;;;;;;;;34032:12;;:2;:12;;;;33957:87;33954:298;;;34071:32;34106:13;34116:2;34106:9;:13::i;:::-;34071:48;;34179:14;;34169:6;34142:24;:33;;;;:::i;:::-;:51;;34134:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;34056:196;33954:298;34264:12;34279:4;34264:19;;34307:14;:20;34322:4;34307:20;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;34331:14;:18;34346:2;34331:18;;;;;;;;;;;;;;;;;;;;;;;;;34307:42;34304:88;;;34375:5;34365:15;;34304:88;34411:44;34429:4;34435:2;34439:6;34447:7;34411:17;:44::i;:::-;34404:51;;;33505:958;;;;;:::o;5607:471::-;5665:7;5915:1;5910;:6;5906:47;;;5940:1;5933:8;;;;5906:47;5965:9;5981:1;5977;:5;;;;:::i;:::-;5965:17;;6010:1;6005;6001;:5;;;;:::i;:::-;:10;5993:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6069:1;6062:8;;;5607:471;;;;;:::o;6554:132::-;6612:7;6639:39;6643:1;6646;6639:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6632:46;;6554:132;;;;:::o;33167:330::-;33235:4;33267:7;:5;:7::i;:::-;33259:15;;:4;:15;;;;:45;;;;;33297:7;:5;:7::i;:::-;33291:13;;:2;:13;;;;33259:45;:84;;;;;33322:17;:21;33340:2;33322:21;;;;;;;;;;;;;;;;;;;;;;;;;33321:22;33259:84;:125;;;;;33361:17;:23;33379:4;33361:23;;;;;;;;;;;;;;;;;;;;;;;;;33360:24;33259:125;:159;;;;;33407:11;;;;;;;;;;;33401:17;;:2;:17;;;;33259:159;:192;;;;;33449:1;33435:16;;:2;:16;;;;33259:192;:230;;;;;33484:4;33468:21;;:4;:21;;;;33259:230;33252:237;;33167:330;;;;:::o;34471:2055::-;34572:4;34651:16;;;;;;;;;;;34647:984;;;34755:19;34769:4;34755:13;:19::i;:::-;:40;;;;34778:17;34792:2;34778:13;:17::i;:::-;34755:40;34751:107;;;34816:26;;;;;;;;;;:::i;:::-;;;;;;;;34751:107;34948:16;;;;;;;;;;;34943:677;;34985:28;35004:4;35010:2;34985:18;:28::i;:::-;35041:16;;;;;;;;;;;35040:17;:41;;;;;35061:20;35072:4;35078:2;35061:10;:20::i;:::-;35040:41;35036:145;;;35110:47;;;;;;;;;;:::i;:::-;;;;;;;;35036:145;34943:677;;;35240:1;35225:12;;:16;:56;;;;;35275:6;;;;;;;;;;;35267:14;;:4;:14;;;35225:56;:102;;;;;35307:20;35318:4;35324:2;35307:10;:20::i;:::-;35225:102;35221:384;;;35404:13;35389:12;;35374;:27;;;;:::i;:::-;:43;35370:216;;;35467:4;35446:14;:18;35461:2;35446:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;35498:13;;:16;;;;;;;;;:::i;:::-;;;;;;35546;35559:2;35546:16;;;;;;:::i;:::-;;;;;;;;35370:216;35221:384;34943:677;34647:984;35659:49;35677:6;35659:49;;;;;;;;;;;;;;;;;:7;:13;35667:4;35659:13;;;;;;;;;;;;;;;;:17;;:49;;;;;:::i;:::-;35643:7;:13;35651:4;35643:13;;;;;;;;;;;;;;;:65;;;;35725:6;;;;;;;;;;;35721:78;;;35755:32;35770:4;35776:2;35780:6;35755:14;:32::i;:::-;35748:39;;;;35721:78;35811:28;35842:7;:22;35858:4;35842:22;;;;;;;;;;;;;;;;35811:53;;35902:10;;35878:20;:34;35875:85;;35950:10;;35927:33;;35875:85;35978:6;;;;;;;;;;;35977:7;:38;;;;;36009:6;;;;;;;;;;;36001:14;;:4;:14;;;;35977:38;:76;;;;;36032:21;;;;;;;;;;;35977:76;:130;;;;;36094:13;;36070:20;:37;;35977:130;35973:203;;;36134:30;36143:20;36134:8;:30::i;:::-;35973:203;36188:22;36213:6;36188:31;;36236:7;36232:80;;;36277:23;36287:4;36293:6;36277:9;:23::i;:::-;36260:40;;36232:80;36338:31;36354:14;36338:7;:11;36346:2;36338:11;;;;;;;;;;;;;;;;:15;;:31;;;;:::i;:::-;36324:7;:11;36332:2;36324:11;;;;;;;;;;;;;;;:45;;;;36386:14;;;;;;;;;;;36382:62;;;36415:29;36435:4;36441:2;36415:19;:29::i;:::-;36382:62;36477:2;36462:34;;36471:4;36462:34;;;36481:14;36462:34;;;;;;:::i;:::-;;;;;;;;36514:4;36507:11;;;;34471:2055;;;;;;;:::o;7183:278::-;7269:7;7301:1;7297;:5;7304:12;7289:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7328:9;7344:1;7340;:5;;;;:::i;:::-;7328:17;;7452:1;7445:8;;;7183:278;;;;;:::o;39927:480::-;40009:16;;;;;;;;;;;40008:17;40000:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;40081:20;40092:4;40098:2;40081:10;:20::i;:::-;40080:21;:37;;;;;40111:6;;;;;;;;;;;40105:12;;:2;:12;;;40080:37;40076:324;;;40160:4;40134:17;:23;40152:4;40134:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;40198:4;40179:16;;:23;;;;;;;;;;;;;;;;;;40232:12;40217;:27;;;;40274:15;40259:12;:30;;;;40330:4;40306:21;;:28;;;;;;;;;;;;;;;;;;40354:34;40383:4;40354:34;;;;;;:::i;:::-;;;;;;;;40076:324;39927:480;;:::o;37173:219::-;37266:4;37305:6;37283:7;:18;37291:9;37283:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;37344:9;37327:35;;37336:6;37327:35;;;37355:6;37327:35;;;;;;:::i;:::-;;;;;;;;37380:4;37373:11;;37173:219;;;;;:::o;37931:1852::-;23206:4;23197:6;;:13;;;;;;;;;;;;;;;;;;38003:27:::1;38033:60;38049:15;;38066:26;;38033:15;:60::i;:::-;:80;;38100:13;;38033:80;;;38096:1;38033:80;38003:110;;38124:23;38202:1;38190:9;;38168:19;38150:15;:37;;;;:::i;:::-;:49;;;;:::i;:::-;:53;;;;:::i;:::-;38124:79;;38214:20;38255:15;38237;:33;;;;:::i;:::-;38214:56;;38283:21;38321:1;38307:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38283:40;;38352:4;38334;38339:1;38334:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;38378:4;;;;;;;;;;;38368;38373:1;38368:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;38395:21;38419;38395:45;;38453:9;;;;;;;;;;;:60;;;38528:12;38555:1;38571:4;38598;38618:15;38453:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;38657:17;38677:21;38657:41;;38713:17;;;;;;;;;;;38709:86;;;38782:13;38758:21;:37;;;;:::i;:::-;38746:49;;38709:86;38806:19;38862:1;38840:19;:23;;;;:::i;:::-;38828:9;;:35;;;;:::i;:::-;38806:57;;38874:26;38951:1;38937:11;38915:19;38903:9;:31;;;;:::i;:::-;:45;;;;:::i;:::-;:49;;;;:::i;:::-;38874:78;;38963:27;39022:11;39005:14;;38993:9;:26;;;;:::i;:::-;:40;;;;:::i;:::-;38963:70;;39044:26;39073:58;39111:19;39073:33;39087:18;39073:9;:13;;:33;;;;:::i;:::-;:37;;:58;;;;:::i;:::-;39044:87;;39142:16;;;;;;;;;;;:25;;:45;39168:18;39142:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;39222:1;39204:15;:19;39200:501;;;39240:9;;;;;;;;;;;:25;;;39273:18;39319:4;39343:15;39377:1;39397::::0;39417:11:::1;;;;;;;;;;;39447:15;39240:237;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;39497:48;39509:18;39529:15;39497:48;;;;;;;:::i;:::-;;;;;;;;39200:501;;;39671:18;39648:41;;;;;:::i;:::-;;;39200:501;39717:9;;;;;;;;;;;:17;;;39742:19;39717:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;39713:63;;;;;;37992:1791;;;;;;;;;;23242:5:::0;23233:6;;:14;;;;;;;;;;;;;;;;;;37931:1852;:::o;37621:302::-;37690:7;37710:17;37755:16;;37739:13;:11;:13::i;:::-;37730:6;:22;;;;:::i;:::-;:41;;;;:::i;:::-;37710:61;;37810:9;37784:7;:22;37800:4;37784:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;37860:4;37835:42;;37844:6;37835:42;;;37867:9;37835:42;;;;;;:::i;:::-;;;;;;;;37906:9;37897:6;:18;;;;:::i;:::-;37890:25;;;37621:302;;;;:::o;4253:181::-;4311:7;4331:9;4347:1;4343;:5;;;;:::i;:::-;4331:17;;4372:1;4367;:6;;4359:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4425:1;4418:8;;;4253:181;;;;:::o;36761:404::-;36876:19;:25;36896:4;36876:25;;;;;;;;;;;;;;;;;;;;;;;;;36871:113;;36922:9;;;;;;;;;;;:18;;;36941:4;36947:7;:13;36955:4;36947:13;;;;;;;;;;;;;;;;36922:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36918:55;;;;;;36871:113;36999:19;:23;37019:2;36999:23;;;;;;;;;;;;;;;;;;;;;;;;;36994:107;;37043:9;;;;;;;;;;;:18;;;37062:2;37066:7;:11;37074:2;37066:11;;;;;;;;;;;;;;;;37043:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37039:51;;;;;;36994:107;37115:9;;;;;;;;;;;:17;;;37133:12;;37115:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37111:47;;;;;;36761:404;;:::o;4717:136::-;4775:7;4802:43;4806:1;4809;4802:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4795:50;;4717:136;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;362:84;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;504:87;;;;:::o;597:143::-;654:5;685:6;679:13;670:22;;701:33;728:5;701:33;:::i;:::-;660:80;;;;:::o;746:329::-;805:6;854:2;842:9;833:7;829:23;825:32;822:2;;;860:79;;:::i;:::-;822:2;980:1;1005:53;1050:7;1041:6;1030:9;1026:22;1005:53;:::i;:::-;995:63;;951:117;812:263;;;;:::o;1081:345::-;1148:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:2;;;1203:79;;:::i;:::-;1165:2;1323:1;1348:61;1401:7;1392:6;1381:9;1377:22;1348:61;:::i;:::-;1338:71;;1294:125;1155:271;;;;:::o;1432:474::-;1500:6;1508;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1563:79;;:::i;:::-;1525:2;1683:1;1708:53;1753:7;1744:6;1733:9;1729:22;1708:53;:::i;:::-;1698:63;;1654:117;1810:2;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1781:118;1515:391;;;;;:::o;1912:619::-;1989:6;1997;2005;2054:2;2042:9;2033:7;2029:23;2025:32;2022:2;;;2060:79;;:::i;:::-;2022:2;2180:1;2205:53;2250:7;2241:6;2230:9;2226:22;2205:53;:::i;:::-;2195:63;;2151:117;2307:2;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2278:118;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;2012:519;;;;;:::o;2537:468::-;2602:6;2610;2659:2;2647:9;2638:7;2634:23;2630:32;2627:2;;;2665:79;;:::i;:::-;2627:2;2785:1;2810:53;2855:7;2846:6;2835:9;2831:22;2810:53;:::i;:::-;2800:63;;2756:117;2912:2;2938:50;2980:7;2971:6;2960:9;2956:22;2938:50;:::i;:::-;2928:60;;2883:115;2617:388;;;;;:::o;3011:474::-;3079:6;3087;3136:2;3124:9;3115:7;3111:23;3107:32;3104:2;;;3142:79;;:::i;:::-;3104:2;3262:1;3287:53;3332:7;3323:6;3312:9;3308:22;3287:53;:::i;:::-;3277:63;;3233:117;3389:2;3415:53;3460:7;3451:6;3440:9;3436:22;3415:53;:::i;:::-;3405:63;;3360:118;3094:391;;;;;:::o;3491:323::-;3547:6;3596:2;3584:9;3575:7;3571:23;3567:32;3564:2;;;3602:79;;:::i;:::-;3564:2;3722:1;3747:50;3789:7;3780:6;3769:9;3765:22;3747:50;:::i;:::-;3737:60;;3693:114;3554:260;;;;:::o;3820:462::-;3882:6;3890;3939:2;3927:9;3918:7;3914:23;3910:32;3907:2;;;3945:79;;:::i;:::-;3907:2;4065:1;4090:50;4132:7;4123:6;4112:9;4108:22;4090:50;:::i;:::-;4080:60;;4036:114;4189:2;4215:50;4257:7;4248:6;4237:9;4233:22;4215:50;:::i;:::-;4205:60;;4160:115;3897:385;;;;;:::o;4288:329::-;4347:6;4396:2;4384:9;4375:7;4371:23;4367:32;4364:2;;;4402:79;;:::i;:::-;4364:2;4522:1;4547:53;4592:7;4583:6;4572:9;4568:22;4547:53;:::i;:::-;4537:63;;4493:117;4354:263;;;;:::o;4623:351::-;4693:6;4742:2;4730:9;4721:7;4717:23;4713:32;4710:2;;;4748:79;;:::i;:::-;4710:2;4868:1;4893:64;4949:7;4940:6;4929:9;4925:22;4893:64;:::i;:::-;4883:74;;4839:128;4700:274;;;;:::o;4980:474::-;5048:6;5056;5105:2;5093:9;5084:7;5080:23;5076:32;5073:2;;;5111:79;;:::i;:::-;5073:2;5231:1;5256:53;5301:7;5292:6;5281:9;5277:22;5256:53;:::i;:::-;5246:63;;5202:117;5358:2;5384:53;5429:7;5420:6;5409:9;5405:22;5384:53;:::i;:::-;5374:63;;5329:118;5063:391;;;;;:::o;5460:619::-;5537:6;5545;5553;5602:2;5590:9;5581:7;5577:23;5573:32;5570:2;;;5608:79;;:::i;:::-;5570:2;5728:1;5753:53;5798:7;5789:6;5778:9;5774:22;5753:53;:::i;:::-;5743:63;;5699:117;5855:2;5881:53;5926:7;5917:6;5906:9;5902:22;5881:53;:::i;:::-;5871:63;;5826:118;5983:2;6009:53;6054:7;6045:6;6034:9;6030:22;6009:53;:::i;:::-;5999:63;;5954:118;5560:519;;;;;:::o;6085:663::-;6173:6;6181;6189;6238:2;6226:9;6217:7;6213:23;6209:32;6206:2;;;6244:79;;:::i;:::-;6206:2;6364:1;6389:64;6445:7;6436:6;6425:9;6421:22;6389:64;:::i;:::-;6379:74;;6335:128;6502:2;6528:64;6584:7;6575:6;6564:9;6560:22;6528:64;:::i;:::-;6518:74;;6473:129;6641:2;6667:64;6723:7;6714:6;6703:9;6699:22;6667:64;:::i;:::-;6657:74;;6612:129;6196:552;;;;;:::o;6754:765::-;6840:6;6848;6856;6864;6913:3;6901:9;6892:7;6888:23;6884:33;6881:2;;;6920:79;;:::i;:::-;6881:2;7040:1;7065:53;7110:7;7101:6;7090:9;7086:22;7065:53;:::i;:::-;7055:63;;7011:117;7167:2;7193:53;7238:7;7229:6;7218:9;7214:22;7193:53;:::i;:::-;7183:63;;7138:118;7295:2;7321:53;7366:7;7357:6;7346:9;7342:22;7321:53;:::i;:::-;7311:63;;7266:118;7423:2;7449:53;7494:7;7485:6;7474:9;7470:22;7449:53;:::i;:::-;7439:63;;7394:118;6871:648;;;;;;;:::o;7525:179::-;7594:10;7615:46;7657:3;7649:6;7615:46;:::i;:::-;7693:4;7688:3;7684:14;7670:28;;7605:99;;;;:::o;7710:108::-;7787:24;7805:5;7787:24;:::i;:::-;7782:3;7775:37;7765:53;;:::o;7824:118::-;7911:24;7929:5;7911:24;:::i;:::-;7906:3;7899:37;7889:53;;:::o;7978:732::-;8097:3;8126:54;8174:5;8126:54;:::i;:::-;8196:86;8275:6;8270:3;8196:86;:::i;:::-;8189:93;;8306:56;8356:5;8306:56;:::i;:::-;8385:7;8416:1;8401:284;8426:6;8423:1;8420:13;8401:284;;;8502:6;8496:13;8529:63;8588:3;8573:13;8529:63;:::i;:::-;8522:70;;8615:60;8668:6;8615:60;:::i;:::-;8605:70;;8461:224;8448:1;8445;8441:9;8436:14;;8401:284;;;8405:14;8701:3;8694:10;;8102:608;;;;;;;:::o;8716:109::-;8797:21;8812:5;8797:21;:::i;:::-;8792:3;8785:34;8775:50;;:::o;8831:185::-;8945:64;9003:5;8945:64;:::i;:::-;8940:3;8933:77;8923:93;;:::o;9022:147::-;9117:45;9156:5;9117:45;:::i;:::-;9112:3;9105:58;9095:74;;:::o;9175:364::-;9263:3;9291:39;9324:5;9291:39;:::i;:::-;9346:71;9410:6;9405:3;9346:71;:::i;:::-;9339:78;;9426:52;9471:6;9466:3;9459:4;9452:5;9448:16;9426:52;:::i;:::-;9503:29;9525:6;9503:29;:::i;:::-;9498:3;9494:39;9487:46;;9267:272;;;;;:::o;9545:366::-;9687:3;9708:67;9772:2;9767:3;9708:67;:::i;:::-;9701:74;;9784:93;9873:3;9784:93;:::i;:::-;9902:2;9897:3;9893:12;9886:19;;9691:220;;;:::o;9917:366::-;10059:3;10080:67;10144:2;10139:3;10080:67;:::i;:::-;10073:74;;10156:93;10245:3;10156:93;:::i;:::-;10274:2;10269:3;10265:12;10258:19;;10063:220;;;:::o;10289:366::-;10431:3;10452:67;10516:2;10511:3;10452:67;:::i;:::-;10445:74;;10528:93;10617:3;10528:93;:::i;:::-;10646:2;10641:3;10637:12;10630:19;;10435:220;;;:::o;10661:366::-;10803:3;10824:67;10888:2;10883:3;10824:67;:::i;:::-;10817:74;;10900:93;10989:3;10900:93;:::i;:::-;11018:2;11013:3;11009:12;11002:19;;10807:220;;;:::o;11033:366::-;11175:3;11196:67;11260:2;11255:3;11196:67;:::i;:::-;11189:74;;11272:93;11361:3;11272:93;:::i;:::-;11390:2;11385:3;11381:12;11374:19;;11179:220;;;:::o;11405:366::-;11547:3;11568:67;11632:2;11627:3;11568:67;:::i;:::-;11561:74;;11644:93;11733:3;11644:93;:::i;:::-;11762:2;11757:3;11753:12;11746:19;;11551:220;;;:::o;11777:366::-;11919:3;11940:67;12004:2;11999:3;11940:67;:::i;:::-;11933:74;;12016:93;12105:3;12016:93;:::i;:::-;12134:2;12129:3;12125:12;12118:19;;11923:220;;;:::o;12149:366::-;12291:3;12312:67;12376:2;12371:3;12312:67;:::i;:::-;12305:74;;12388:93;12477:3;12388:93;:::i;:::-;12506:2;12501:3;12497:12;12490:19;;12295:220;;;:::o;12521:366::-;12663:3;12684:67;12748:2;12743:3;12684:67;:::i;:::-;12677:74;;12760:93;12849:3;12760:93;:::i;:::-;12878:2;12873:3;12869:12;12862:19;;12667:220;;;:::o;12893:366::-;13035:3;13056:67;13120:2;13115:3;13056:67;:::i;:::-;13049:74;;13132:93;13221:3;13132:93;:::i;:::-;13250:2;13245:3;13241:12;13234:19;;13039:220;;;:::o;13265:366::-;13407:3;13428:67;13492:2;13487:3;13428:67;:::i;:::-;13421:74;;13504:93;13593:3;13504:93;:::i;:::-;13622:2;13617:3;13613:12;13606:19;;13411:220;;;:::o;13637:366::-;13779:3;13800:67;13864:2;13859:3;13800:67;:::i;:::-;13793:74;;13876:93;13965:3;13876:93;:::i;:::-;13994:2;13989:3;13985:12;13978:19;;13783:220;;;:::o;14009:366::-;14151:3;14172:67;14236:2;14231:3;14172:67;:::i;:::-;14165:74;;14248:93;14337:3;14248:93;:::i;:::-;14366:2;14361:3;14357:12;14350:19;;14155:220;;;:::o;14381:366::-;14523:3;14544:67;14608:2;14603:3;14544:67;:::i;:::-;14537:74;;14620:93;14709:3;14620:93;:::i;:::-;14738:2;14733:3;14729:12;14722:19;;14527:220;;;:::o;14753:118::-;14840:24;14858:5;14840:24;:::i;:::-;14835:3;14828:37;14818:53;;:::o;14877:112::-;14960:22;14976:5;14960:22;:::i;:::-;14955:3;14948:35;14938:51;;:::o;14995:222::-;15088:4;15126:2;15115:9;15111:18;15103:26;;15139:71;15207:1;15196:9;15192:17;15183:6;15139:71;:::i;:::-;15093:124;;;;:::o;15223:348::-;15352:4;15390:2;15379:9;15375:18;15367:26;;15403:71;15471:1;15460:9;15456:17;15447:6;15403:71;:::i;:::-;15484:80;15560:2;15549:9;15545:18;15536:6;15484:80;:::i;:::-;15357:214;;;;;:::o;15577:332::-;15698:4;15736:2;15725:9;15721:18;15713:26;;15749:71;15817:1;15806:9;15802:17;15793:6;15749:71;:::i;:::-;15830:72;15898:2;15887:9;15883:18;15874:6;15830:72;:::i;:::-;15703:206;;;;;:::o;15915:807::-;16164:4;16202:3;16191:9;16187:19;16179:27;;16216:71;16284:1;16273:9;16269:17;16260:6;16216:71;:::i;:::-;16297:72;16365:2;16354:9;16350:18;16341:6;16297:72;:::i;:::-;16379:80;16455:2;16444:9;16440:18;16431:6;16379:80;:::i;:::-;16469;16545:2;16534:9;16530:18;16521:6;16469:80;:::i;:::-;16559:73;16627:3;16616:9;16612:19;16603:6;16559:73;:::i;:::-;16642;16710:3;16699:9;16695:19;16686:6;16642:73;:::i;:::-;16169:553;;;;;;;;;:::o;16728:210::-;16815:4;16853:2;16842:9;16838:18;16830:26;;16866:65;16928:1;16917:9;16913:17;16904:6;16866:65;:::i;:::-;16820:118;;;;:::o;16944:276::-;17064:4;17102:2;17091:9;17087:18;17079:26;;17115:98;17210:1;17199:9;17195:17;17186:6;17115:98;:::i;:::-;17069:151;;;;:::o;17226:313::-;17339:4;17377:2;17366:9;17362:18;17354:26;;17426:9;17420:4;17416:20;17412:1;17401:9;17397:17;17390:47;17454:78;17527:4;17518:6;17454:78;:::i;:::-;17446:86;;17344:195;;;;:::o;17545:419::-;17711:4;17749:2;17738:9;17734:18;17726:26;;17798:9;17792:4;17788:20;17784:1;17773:9;17769:17;17762:47;17826:131;17952:4;17826:131;:::i;:::-;17818:139;;17716:248;;;:::o;17970:419::-;18136:4;18174:2;18163:9;18159:18;18151:26;;18223:9;18217:4;18213:20;18209:1;18198:9;18194:17;18187:47;18251:131;18377:4;18251:131;:::i;:::-;18243:139;;18141:248;;;:::o;18395:419::-;18561:4;18599:2;18588:9;18584:18;18576:26;;18648:9;18642:4;18638:20;18634:1;18623:9;18619:17;18612:47;18676:131;18802:4;18676:131;:::i;:::-;18668:139;;18566:248;;;:::o;18820:419::-;18986:4;19024:2;19013:9;19009:18;19001:26;;19073:9;19067:4;19063:20;19059:1;19048:9;19044:17;19037:47;19101:131;19227:4;19101:131;:::i;:::-;19093:139;;18991:248;;;:::o;19245:419::-;19411:4;19449:2;19438:9;19434:18;19426:26;;19498:9;19492:4;19488:20;19484:1;19473:9;19469:17;19462:47;19526:131;19652:4;19526:131;:::i;:::-;19518:139;;19416:248;;;:::o;19670:419::-;19836:4;19874:2;19863:9;19859:18;19851:26;;19923:9;19917:4;19913:20;19909:1;19898:9;19894:17;19887:47;19951:131;20077:4;19951:131;:::i;:::-;19943:139;;19841:248;;;:::o;20095:419::-;20261:4;20299:2;20288:9;20284:18;20276:26;;20348:9;20342:4;20338:20;20334:1;20323:9;20319:17;20312:47;20376:131;20502:4;20376:131;:::i;:::-;20368:139;;20266:248;;;:::o;20520:419::-;20686:4;20724:2;20713:9;20709:18;20701:26;;20773:9;20767:4;20763:20;20759:1;20748:9;20744:17;20737:47;20801:131;20927:4;20801:131;:::i;:::-;20793:139;;20691:248;;;:::o;20945:419::-;21111:4;21149:2;21138:9;21134:18;21126:26;;21198:9;21192:4;21188:20;21184:1;21173:9;21169:17;21162:47;21226:131;21352:4;21226:131;:::i;:::-;21218:139;;21116:248;;;:::o;21370:419::-;21536:4;21574:2;21563:9;21559:18;21551:26;;21623:9;21617:4;21613:20;21609:1;21598:9;21594:17;21587:47;21651:131;21777:4;21651:131;:::i;:::-;21643:139;;21541:248;;;:::o;21795:419::-;21961:4;21999:2;21988:9;21984:18;21976:26;;22048:9;22042:4;22038:20;22034:1;22023:9;22019:17;22012:47;22076:131;22202:4;22076:131;:::i;:::-;22068:139;;21966:248;;;:::o;22220:419::-;22386:4;22424:2;22413:9;22409:18;22401:26;;22473:9;22467:4;22463:20;22459:1;22448:9;22444:17;22437:47;22501:131;22627:4;22501:131;:::i;:::-;22493:139;;22391:248;;;:::o;22645:419::-;22811:4;22849:2;22838:9;22834:18;22826:26;;22898:9;22892:4;22888:20;22884:1;22873:9;22869:17;22862:47;22926:131;23052:4;22926:131;:::i;:::-;22918:139;;22816:248;;;:::o;23070:419::-;23236:4;23274:2;23263:9;23259:18;23251:26;;23323:9;23317:4;23313:20;23309:1;23298:9;23294:17;23287:47;23351:131;23477:4;23351:131;:::i;:::-;23343:139;;23241:248;;;:::o;23495:222::-;23588:4;23626:2;23615:9;23611:18;23603:26;;23639:71;23707:1;23696:9;23692:17;23683:6;23639:71;:::i;:::-;23593:124;;;;:::o;23723:831::-;23986:4;24024:3;24013:9;24009:19;24001:27;;24038:71;24106:1;24095:9;24091:17;24082:6;24038:71;:::i;:::-;24119:80;24195:2;24184:9;24180:18;24171:6;24119:80;:::i;:::-;24246:9;24240:4;24236:20;24231:2;24220:9;24216:18;24209:48;24274:108;24377:4;24368:6;24274:108;:::i;:::-;24266:116;;24392:72;24460:2;24449:9;24445:18;24436:6;24392:72;:::i;:::-;24474:73;24542:3;24531:9;24527:19;24518:6;24474:73;:::i;:::-;23991:563;;;;;;;;:::o;24560:332::-;24681:4;24719:2;24708:9;24704:18;24696:26;;24732:71;24800:1;24789:9;24785:17;24776:6;24732:71;:::i;:::-;24813:72;24881:2;24870:9;24866:18;24857:6;24813:72;:::i;:::-;24686:206;;;;;:::o;24898:214::-;24987:4;25025:2;25014:9;25010:18;25002:26;;25038:67;25102:1;25091:9;25087:17;25078:6;25038:67;:::i;:::-;24992:120;;;;:::o;25199:132::-;25266:4;25289:3;25281:11;;25319:4;25314:3;25310:14;25302:22;;25271:60;;;:::o;25337:114::-;25404:6;25438:5;25432:12;25422:22;;25411:40;;;:::o;25457:99::-;25509:6;25543:5;25537:12;25527:22;;25516:40;;;:::o;25562:113::-;25632:4;25664;25659:3;25655:14;25647:22;;25637:38;;;:::o;25681:184::-;25780:11;25814:6;25809:3;25802:19;25854:4;25849:3;25845:14;25830:29;;25792:73;;;;:::o;25871:169::-;25955:11;25989:6;25984:3;25977:19;26029:4;26024:3;26020:14;26005:29;;25967:73;;;;:::o;26046:305::-;26086:3;26105:20;26123:1;26105:20;:::i;:::-;26100:25;;26139:20;26157:1;26139:20;:::i;:::-;26134:25;;26293:1;26225:66;26221:74;26218:1;26215:81;26212:2;;;26299:18;;:::i;:::-;26212:2;26343:1;26340;26336:9;26329:16;;26090:261;;;;:::o;26357:185::-;26397:1;26414:20;26432:1;26414:20;:::i;:::-;26409:25;;26448:20;26466:1;26448:20;:::i;:::-;26443:25;;26487:1;26477:2;;26492:18;;:::i;:::-;26477:2;26534:1;26531;26527:9;26522:14;;26399:143;;;;:::o;26548:848::-;26609:5;26616:4;26640:6;26631:15;;26664:5;26655:14;;26678:712;26699:1;26689:8;26686:15;26678:712;;;26794:4;26789:3;26785:14;26779:4;26776:24;26773:2;;;26803:18;;:::i;:::-;26773:2;26853:1;26843:8;26839:16;26836:2;;;27268:4;27261:5;27257:16;27248:25;;26836:2;27318:4;27312;27308:15;27300:23;;27348:32;27371:8;27348:32;:::i;:::-;27336:44;;26678:712;;;26621:775;;;;;;;:::o;27402:285::-;27462:5;27486:23;27504:4;27486:23;:::i;:::-;27478:31;;27530:27;27548:8;27530:27;:::i;:::-;27518:39;;27576:104;27613:66;27603:8;27597:4;27576:104;:::i;:::-;27567:113;;27468:219;;;;:::o;27693:1073::-;27747:5;27938:8;27928:2;;27959:1;27950:10;;27961:5;;27928:2;27987:4;27977:2;;28004:1;27995:10;;28006:5;;27977:2;28073:4;28121:1;28116:27;;;;28157:1;28152:191;;;;28066:277;;28116:27;28134:1;28125:10;;28136:5;;;28152:191;28197:3;28187:8;28184:17;28181:2;;;28204:18;;:::i;:::-;28181:2;28253:8;28250:1;28246:16;28237:25;;28288:3;28281:5;28278:14;28275:2;;;28295:18;;:::i;:::-;28275:2;28328:5;;;28066:277;;28452:2;28442:8;28439:16;28433:3;28427:4;28424:13;28420:36;28402:2;28392:8;28389:16;28384:2;28378:4;28375:12;28371:35;28355:111;28352:2;;;28508:8;28502:4;28498:19;28489:28;;28543:3;28536:5;28533:14;28530:2;;;28550:18;;:::i;:::-;28530:2;28583:5;;28352:2;28623:42;28661:3;28651:8;28645:4;28642:1;28623:42;:::i;:::-;28608:57;;;;28697:4;28692:3;28688:14;28681:5;28678:25;28675:2;;;28706:18;;:::i;:::-;28675:2;28755:4;28748:5;28744:16;28735:25;;27753:1013;;;;;;:::o;28772:348::-;28812:7;28835:20;28853:1;28835:20;:::i;:::-;28830:25;;28869:20;28887:1;28869:20;:::i;:::-;28864:25;;29057:1;28989:66;28985:74;28982:1;28979:81;28974:1;28967:9;28960:17;28956:105;28953:2;;;29064:18;;:::i;:::-;28953:2;29112:1;29109;29105:9;29094:20;;28820:300;;;;:::o;29126:191::-;29166:4;29186:20;29204:1;29186:20;:::i;:::-;29181:25;;29220:20;29238:1;29220:20;:::i;:::-;29215:25;;29259:1;29256;29253:8;29250:2;;;29264:18;;:::i;:::-;29250:2;29309:1;29306;29302:9;29294:17;;29171:146;;;;:::o;29323:96::-;29360:7;29389:24;29407:5;29389:24;:::i;:::-;29378:35;;29368:51;;;:::o;29425:104::-;29470:7;29499:24;29517:5;29499:24;:::i;:::-;29488:35;;29478:51;;;:::o;29535:90::-;29569:7;29612:5;29605:13;29598:21;29587:32;;29577:48;;;:::o;29631:126::-;29668:7;29708:42;29701:5;29697:54;29686:65;;29676:81;;;:::o;29763:77::-;29800:7;29829:5;29818:16;;29808:32;;;:::o;29846:86::-;29881:7;29921:4;29914:5;29910:16;29899:27;;29889:43;;;:::o;29938:180::-;30015:9;30048:64;30106:5;30048:64;:::i;:::-;30035:77;;30025:93;;;:::o;30124:140::-;30201:9;30234:24;30252:5;30234:24;:::i;:::-;30221:37;;30211:53;;;:::o;30270:121::-;30328:9;30361:24;30379:5;30361:24;:::i;:::-;30348:37;;30338:53;;;:::o;30397:307::-;30465:1;30475:113;30489:6;30486:1;30483:13;30475:113;;;30574:1;30569:3;30565:11;30559:18;30555:1;30550:3;30546:11;30539:39;30511:2;30508:1;30504:10;30499:15;;30475:113;;;30606:6;30603:1;30600:13;30597:2;;;30686:1;30677:6;30672:3;30668:16;30661:27;30597:2;30446:258;;;;:::o;30710:233::-;30749:3;30772:24;30790:5;30772:24;:::i;:::-;30763:33;;30818:66;30811:5;30808:77;30805:2;;;30888:18;;:::i;:::-;30805:2;30935:1;30928:5;30924:13;30917:20;;30753:190;;;:::o;30949:180::-;30997:77;30994:1;30987:88;31094:4;31091:1;31084:15;31118:4;31115:1;31108:15;31135:180;31183:77;31180:1;31173:88;31280:4;31277:1;31270:15;31304:4;31301:1;31294:15;31321:180;31369:77;31366:1;31359:88;31466:4;31463:1;31456:15;31490:4;31487:1;31480:15;31507:180;31555:77;31552:1;31545:88;31652:4;31649:1;31642:15;31676:4;31673:1;31666:15;31816:117;31925:1;31922;31915:12;31939:102;31980:6;32031:2;32027:7;32022:2;32015:5;32011:14;32007:28;31997:38;;31987:54;;;:::o;32047:102::-;32089:8;32136:5;32133:1;32129:13;32108:34;;32098:51;;;:::o;32155:222::-;32295:34;32291:1;32283:6;32279:14;32272:58;32364:5;32359:2;32351:6;32347:15;32340:30;32261:116;:::o;32383:162::-;32523:14;32519:1;32511:6;32507:14;32500:38;32489:56;:::o;32551:222::-;32691:34;32687:1;32679:6;32675:14;32668:58;32760:5;32755:2;32747:6;32743:15;32736:30;32657:116;:::o;32779:177::-;32919:29;32915:1;32907:6;32903:14;32896:53;32885:71;:::o;32962:224::-;33102:34;33098:1;33090:6;33086:14;33079:58;33171:7;33166:2;33158:6;33154:15;33147:32;33068:118;:::o;33192:169::-;33332:21;33328:1;33320:6;33316:14;33309:45;33298:63;:::o;33367:227::-;33507:34;33503:1;33495:6;33491:14;33484:58;33576:10;33571:2;33563:6;33559:15;33552:35;33473:121;:::o;33600:229::-;33740:34;33736:1;33728:6;33724:14;33717:58;33809:12;33804:2;33796:6;33792:15;33785:37;33706:123;:::o;33835:220::-;33975:34;33971:1;33963:6;33959:14;33952:58;34044:3;34039:2;34031:6;34027:15;34020:28;33941:114;:::o;34061:182::-;34201:34;34197:1;34189:6;34185:14;34178:58;34167:76;:::o;34249:228::-;34389:34;34385:1;34377:6;34373:14;34366:58;34458:11;34453:2;34445:6;34441:15;34434:36;34355:122;:::o;34483:166::-;34623:18;34619:1;34611:6;34607:14;34600:42;34589:60;:::o;34655:224::-;34795:34;34791:1;34783:6;34779:14;34772:58;34864:7;34859:2;34851:6;34847:15;34840:32;34761:118;:::o;34885:248::-;35025:34;35021:1;35013:6;35009:14;35002:58;35094:31;35089:2;35081:6;35077:15;35070:56;34991:142;:::o;35139:122::-;35212:24;35230:5;35212:24;:::i;:::-;35205:5;35202:35;35192:2;;35251:1;35248;35241:12;35192:2;35182:79;:::o;35267:138::-;35348:32;35374:5;35348:32;:::i;:::-;35341:5;35338:43;35328:2;;35395:1;35392;35385:12;35328:2;35318:87;:::o;35411:116::-;35481:21;35496:5;35481:21;:::i;:::-;35474:5;35471:32;35461:2;;35517:1;35514;35507:12;35461:2;35451:76;:::o;35533:122::-;35606:24;35624:5;35606:24;:::i;:::-;35599:5;35596:35;35586:2;;35645:1;35642;35635:12;35586:2;35576:79;:::o
Swarm Source
ipfs://b9d1026061438dd7a63eddbbf4b2e761201e8bcac81774843639bafd52bb1f36
Loading...
Loading
Loading...
Loading
Net Worth in USD
$38.23
Net Worth in BNB
Token Allocations
BNB
100.00%
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| BSC | 100.00% | $625.71 | 0.0611 | $38.23 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.