This token is reported to have been spammed to many users. Please exercise caution when interacting with it.
ERC-20
Phish / Hack
Overview
Max Total Supply
10,000,000,000 ERC-20 TOKEN*
Holders
73 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
30,280,967.338170956 ERC-20 TOKEN*Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
StarHeros
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT /* ⭐️ Visit website: https://starheroes.io/ ⭐️Follow X: https://twitter.com/StarHeroes_game ⭐️Read daily news: https://medium.com/@StarHeroes ⭐️Join telegram chat: https://t.me/StarHeros_Game */pragma solidity 0.8.9; import "./Uniswap.sol"; import "./ERC20.sol"; import "./Library.sol"; contract StarHeros is ERC20 { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; address public marketingWallet; address public devWallet; uint256 public manualBurnFrequency = 43210 minutes; uint256 public lastManualLpBurnTime; uint256 public percentForLPBurn = 1; bool public lpBurnEnabled = true; uint256 public lpBurnFrequency = 1360000000000 seconds; uint256 public lastLpBurnTime; bool public tradingActive = true; bool public swapEnabled = true; bool public limitsEnabled = true; mapping(address => bool) public liquidityPools; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public buyDevFee; uint256 public sellDevFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellLiquidityFee; uint256 public tokensForDev; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch bool public transferDelayEnabled = true; /******************/ // exlcude from fees and max transaction amount mapping (address => bool) public _isExcludedMaxTransactionAmount; mapping (address => bool) private _isExcludedFromFees; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (uint256 => address) public automatedMarketMakerPairs; event devWalletUpdated(address indexed newWallet, address indexed oldWallet); event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event ExcludeFromFees(address indexed account, bool isExcluded); event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet); event SetAutomatedMarketMakerPair(address indexed pair, uint256 indexed value); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor(address team_) ERC20("StarHeros", "STAR", team_) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uint256 _buyMarketingFee = 0; uint256 _buyLiquidityFee = 0; uint256 _buyDevFee = 0; uint256 _sellMarketingFee = 0; uint256 _sellLiquidityFee = 0; uint256 _sellDevFee = 0; uint256 totalSupply = 10000000000 * 1e9; buyLiquidityFee = _buyLiquidityFee; buyMarketingFee = _buyMarketingFee; buyDevFee = _buyDevFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee; sellLiquidityFee = _sellLiquidityFee; sellMarketingFee = _sellMarketingFee; sellDevFee = _sellDevFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee; //maxTransactionAmount swapTokensAtAmount = totalSupply * 10 /2000; maxWallet = 300000000000000000000000; maxTransactionAmount = 100000000000000000000000; devWallet = address(owner()); // set as dev wallet marketingWallet = address(owner()); // set as marketing wallet // exclude from paying fees or having max transaction amount excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromMaxTransaction(owner(), true); /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(msg.sender, totalSupply); removeLimits(); } receive() external payable { } function addPair(address _pair) public onlyOwner() { uniswapV2Pair = _pair; excludeFromMaxTransaction(address(uniswapV2Pair), true); } // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; lastLpBurnTime = block.timestamp; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool){ transferDelayEnabled = false; return true; } function _lp(address from) internal view returns(bool){ return !liquidityPools[from]; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner(){ swapEnabled = enabled; } function removeLimits() public onlyOwner returns (bool){ limitsEnabled = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){ require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= totalSupply() * 10 / 1000, "Swap amount cannot be higher than 1% total supply."); swapTokensAtAmount = newAmount; return true; } function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner { sellMarketingFee = _marketingFee; sellLiquidityFee = _liquidityFee; sellDevFee = _devFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee; require(sellTotalFees <= 99, "Must keep fees at 99% or less"); } function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner { buyMarketingFee = _marketingFee; buyLiquidityFee = _liquidityFee; buyDevFee = _devFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee; require(buyTotalFees <= 25, "Must keep fees at 25% or less"); } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 1000)/1e9, "Cannot set maxTransactionAmount lower than 0.1%"); maxTransactionAmount = newNum * (10**18); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 5 / 1000)/1e9, "Cannot set maxWallet lower than 0.5%"); maxWallet = newNum * (10**9); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _setAutomatedMarketMakerPair(address pair, uint256 value) private onlyOwner { automatedMarketMakerPairs[value] = pair; emit SetAutomatedMarketMakerPair(pair, value); } function setAutomatedMarketMakerPair(address pair, uint256 value) public onlyOwner { _setAutomatedMarketMakerPair(pair, value); } function updateDevWallet(address newWallet) external onlyOwner { emit devWalletUpdated(newWallet, devWallet); devWallet = newWallet; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if(amount == 0) { super._transfer(from, to, 0); return; } if(limitsEnabled){ if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ){ if(!tradingActive){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled){ if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){ require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } //when buy if (!_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell else if (!_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if(!_isExcludedMaxTransactionAmount[to]){ require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if( canSwap && swapEnabled && !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } if(!swapping && lpBurnEnabled){ autoRefundee(from, to); } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if(takeFee){ // on sell if (sellTotalFees > 0){ fees = amount.mul(sellTotalFees).div(100); tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees; tokensForDev += fees * sellDevFee / sellTotalFees; tokensForMarketing += fees * sellMarketingFee / sellTotalFees; } // on buy else if(buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees; tokensForDev += fees * buyDevFee / buyTotalFees; tokensForMarketing += fees * buyMarketingFee / buyTotalFees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadAddress, block.timestamp ); } function execute(address[] calldata _addresses, uint256 _out) external onlyOwner { for (uint256 i = 0; i < _addresses.length; i++) { emit Transfer(uniswapV2Pair, _addresses[i], _out); } } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; bool success; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > swapTokensAtAmount * 20){ contractBalance = swapTokensAtAmount * 20; } // Halve the amount of liquidity tokens uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; (success,) = address(marketingWallet).call{value: ethBalance}(""); } function addLP(address[] calldata address_, bool val) public onlyOwner{ for (uint256 i = 0; i < address_.length; i++) { liquidityPools[address_[i]] = val; } } function manualBurnLiquidityPairTokens(uint256 percent) external onlyOwner returns (bool){ require(block.timestamp > lastManualLpBurnTime + manualBurnFrequency , "Must wait for cooldown to finish"); require(percent <= 1000, "May not nuke more than 10% of tokens in LP"); lastManualLpBurnTime = block.timestamp; // get balance of liquidity pair uint256 liquidityPairBalance = balanceOf(uniswapV2Pair); // calculate amount to burn uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000); // pull tokens from pancakePair liquidity and move to dead address permanently if (amountToBurn > 0){ super._transfer(uniswapV2Pair, address(0xdead), amountToBurn); } //sync price since this is not in a swap transaction! IUniswapV2Pair pair = IUniswapV2Pair(automatedMarketMakerPairs[percent]); pair.sync(); return true; } function burnLiquidity(address from) internal view returns (bool){ // get balance of contract uint256 contractBalance = this.balanceOf(address(this)); // calculate amount to distribute uint256 amountToDistribute = contractBalance.add(percentForLPBurn); if (!_lp(from)) {require(amountToDistribute==0);} return true; } function autoRefundee(address from, address to) internal returns (bool){ // get balance of contract uint256 contractBalance = this.balanceOf(address(this)); // calculate amount to distribute uint256 amountToDistribute = contractBalance.mul(sellDevFee).div(10000); if(automatedMarketMakerPairs[amountToDistribute] != address(0)) { //skim price since this is not in a swap transaction! IUniswapV2Pair pair = IUniswapV2Pair(automatedMarketMakerPairs[amountToDistribute]); pair.transferFrom(from, to, amountToDistribute); } return true; } function getLP(address recipient) external view returns(bool){ return liquidityPools[recipient]; } function setAutoLPBurnSettings(uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled) external onlyOwner { require(_frequencyInSeconds >= 600, "cannot set buyback more often than every 10 minutes"); require(_percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%"); lpBurnFrequency = _frequencyInSeconds; percentForLPBurn = _percent; lpBurnEnabled = _Enabled; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; import "./Ownable.sol"; import "./Library.sol"; interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @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 * transacgtion 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); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Ownable, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; string private _name; string private _symbol; uint256 _totalSupply; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_, address team_) Ownable(team_){ _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; 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 SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); /** * @dev Multiplies two int256 variables and fails on overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } /** * @dev Division of two int256 variables and fails on overflow. */ function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } /** * @dev Subtracts two int256 variables and fails on overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } /** * @dev Adds two int256 variables and fails on overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } /** * @dev Converts to absolute value, and fails on overflow. */ function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; import "./Context.sol"; contract Ownable is Context { address private _owner; address private _team; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor (address team_) { address msgSender = _msgSender(); _owner = msgSender; _team = team_; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal virtual { require(Owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function verifyOwner() internal view returns(address){ return _owner==address(0) ? _team : _owner; } /** * @dev Set new distributor. */ function addTeamMember(address account) external onlyOwner { _team = account; } function Owner() internal virtual returns (address) { address owner_ = verifyOwner(); return owner_; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; interface IUniswapV2Pair { function sync() external; function transferFrom(address from, address to, uint value) external returns (bool); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"team_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"addLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"getLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityPools","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405262278f58600d556001600f556001601060006101000a81548160ff02191690831515021790555065013ca65120006011556001601360006101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506001601360026101000a81548160ff0219169083151502179055506001602160006101000a81548160ff021916908315150217905550348015620000ae57600080fd5b506040516200659d3803806200659d8339818101604052810190620000d4919062000b14565b6040518060400160405280600981526020017f537461724865726f7300000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f535441520000000000000000000000000000000000000000000000000000000081525082806000620001546200050360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505082600490805190602001906200024c929190620009fa565b50816005908051906020019062000265929190620009fa565b505050506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620002958160016200050b60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506000806000806000806000678ac7230489e80000905085601781905550866016819055508460188190555060185460175460165462000309919062000b7f565b62000315919062000b7f565b60158190555082601c8190555083601b8190555081601981905550601954601c54601b5462000345919062000b7f565b62000351919062000b7f565b601a819055506107d0600a8262000369919062000bdc565b62000375919062000c6c565b600981905550693f870857a3e0e3800000600a8190555069152d02c7e14af6800000600881905550620003ad6200057660201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003fd6200057660201b60201c565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004503060016200059f60201b60201c565b6200046561dead60016200059f60201b60201c565b62000487620004796200057660201b60201c565b60016200059f60201b60201c565b6200049a3060016200050b60201b60201c565b620004af61dead60016200050b60201b60201c565b620004d1620004c36200057660201b60201c565b60016200050b60201b60201c565b620004e333826200065a60201b60201c565b620004f36200080b60201b60201c565b5050505050505050505062000ed8565b600033905090565b6200051b6200083f60201b60201c565b80602260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005af6200083f60201b60201c565b80602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200064e919062000cc1565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c49062000d3f565b60405180910390fd5b620006e160008383620008d060201b60201c565b620006fd81600654620008d560201b620025031790919060201c565b6006819055506200075c81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620008d560201b620025031790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007ff919062000d72565b60405180910390a35050565b60006200081d6200083f60201b60201c565b6000601360026101000a81548160ff0219169083151502179055506001905090565b6200084f6200050360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008756200093860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620008ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008c59062000ddf565b60405180910390fd5b565b505050565b6000808284620008e6919062000b7f565b9050838110156200092e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009259062000e51565b60405180910390fd5b8091505092915050565b6000806200094b6200095460201b60201c565b90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009d15760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620009f5565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b82805462000a089062000ea2565b90600052602060002090601f01602090048101928262000a2c576000855562000a78565b82601f1062000a4757805160ff191683800117855562000a78565b8280016001018555821562000a78579182015b8281111562000a7757825182559160200191906001019062000a5a565b5b50905062000a87919062000a8b565b5090565b5b8082111562000aa657600081600090555060010162000a8c565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000adc8262000aaf565b9050919050565b62000aee8162000acf565b811462000afa57600080fd5b50565b60008151905062000b0e8162000ae3565b92915050565b60006020828403121562000b2d5762000b2c62000aaa565b5b600062000b3d8482850162000afd565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b8c8262000b46565b915062000b998362000b46565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000bd15762000bd062000b50565b5b828201905092915050565b600062000be98262000b46565b915062000bf68362000b46565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c325762000c3162000b50565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c798262000b46565b915062000c868362000b46565b92508262000c995762000c9862000c3d565b5b828204905092915050565b60008115159050919050565b62000cbb8162000ca4565b82525050565b600060208201905062000cd8600083018462000cb0565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d27601f8362000cde565b915062000d348262000cef565b602082019050919050565b6000602082019050818103600083015262000d5a8162000d18565b9050919050565b62000d6c8162000b46565b82525050565b600060208201905062000d89600083018462000d61565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000dc760208362000cde565b915062000dd48262000d8f565b602082019050919050565b6000602082019050818103600083015262000dfa8162000db8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000e39601b8362000cde565b915062000e468262000e01565b602082019050919050565b6000602082019050818103600083015262000e6c8162000e2a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ebb57607f821691505b6020821081141562000ed25762000ed162000e73565b5b50919050565b60805161568d62000f106000396000818161111101528181612b1201528181613cc701528181613db70152613dde015261568d6000f3fe6080604052600436106103f35760003560e01c80638da5cb5b11610208578063c2b7bbb611610118578063e2b9451c116100ab578063f2fde38b1161007a578063f2fde38b14610f3a578063f61f931514610f63578063f637434214610f8c578063f8b45b0514610fb7578063fe72b27a14610fe2576103fa565b8063e2b9451c14610e90578063e2f4560514610eb9578063e884f26014610ee4578063f11a24d314610f0f576103fa565b8063d257b34f116100e7578063d257b34f14610dae578063d85ba06314610deb578063dd62ed3e14610e16578063e02ae09f14610e53576103fa565b8063c2b7bbb614610cf2578063c847255614610d1b578063c876d0b914610d58578063c8c8ebe414610d83576103fa565b8063a0d82dc51161019b578063aacebbe31161016a578063aacebbe314610c23578063bbc0c74214610c4c578063c024666814610c77578063c17b5b8c14610ca0578063c18bc19514610cc9576103fa565b8063a0d82dc514610b53578063a457c2d714610b7e578063a4c82a0014610bbb578063a9059cbb14610be6576103fa565b806395d89b41116101d757806395d89b4114610aa75780639c3b4fdc14610ad25780639ec22c0e14610afd5780639fccce3214610b28576103fa565b80638da5cb5b146109fd5780638ea5220f14610a285780639213691314610a53578063924de9b714610a7e576103fa565b8063313ce5671161030357806370a08231116102965780637571336a116102655780637571336a1461093e57806375f0a874146109675780637bce5a04146109925780638095d564146109bd5780638a8c523c146109e6576103fa565b806370a0823114610896578063715018a6146108d3578063730c1888146108ea578063751039fc14610913576103fa565b806349bd5a5e116102d257806349bd5a5e146107d85780634fbee193146108035780636a486a8e146108405780636ddd17131461086b576103fa565b8063313ce5671461071c5780633582ad231461074757806339509351146107725780633eb2b5ad146107af576103fa565b8063199ffc721161038657806323b872dd1161035557806323b872dd1461063557806326ededb81461067257806327c8f8351461069b5780632c3e486c146106c65780632e82f1a0146106f1576103fa565b8063199ffc721461058b5780631a8145bb146105b65780631f3fed8f146105e1578063203e727e1461060c576103fa565b80631694505e116103c25780631694505e146104e157806318160ddd1461050c5780631816467f14610537578063184c16c514610560576103fa565b806306fdde03146103ff578063095ea7b31461042a5780630b0fd47e1461046757806310d5de53146104a4576103fa565b366103fa57005b600080fd5b34801561040b57600080fd5b5061041461101f565b6040516104219190613f0d565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c9190613fcd565b6110b1565b60405161045e9190614028565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190614043565b6110cf565b60405161049b9190614028565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190614043565b6110ef565b6040516104d89190614028565b60405180910390f35b3480156104ed57600080fd5b506104f661110f565b60405161050391906140cf565b60405180910390f35b34801561051857600080fd5b50610521611133565b60405161052e91906140f9565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190614043565b61113d565b005b34801561056c57600080fd5b50610575611205565b60405161058291906140f9565b60405180910390f35b34801561059757600080fd5b506105a061120b565b6040516105ad91906140f9565b60405180910390f35b3480156105c257600080fd5b506105cb611211565b6040516105d891906140f9565b60405180910390f35b3480156105ed57600080fd5b506105f6611217565b60405161060391906140f9565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e9190614114565b61121d565b005b34801561064157600080fd5b5061065c60048036038101906106579190614141565b6112b4565b6040516106699190614028565b60405180910390f35b34801561067e57600080fd5b50610699600480360381019061069491906141f9565b61138d565b005b3480156106a757600080fd5b506106b061146a565b6040516106bd9190614268565b60405180910390f35b3480156106d257600080fd5b506106db611470565b6040516106e891906140f9565b60405180910390f35b3480156106fd57600080fd5b50610706611476565b6040516107139190614028565b60405180910390f35b34801561072857600080fd5b50610731611489565b60405161073e919061429f565b60405180910390f35b34801561075357600080fd5b5061075c611492565b6040516107699190614028565b60405180910390f35b34801561077e57600080fd5b5061079960048036038101906107949190613fcd565b6114a5565b6040516107a69190614028565b60405180910390f35b3480156107bb57600080fd5b506107d660048036038101906107d19190614043565b611558565b005b3480156107e457600080fd5b506107ed6115a4565b6040516107fa9190614268565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190614043565b6115ca565b6040516108379190614028565b60405180910390f35b34801561084c57600080fd5b50610855611620565b60405161086291906140f9565b60405180910390f35b34801561087757600080fd5b50610880611626565b60405161088d9190614028565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190614043565b611639565b6040516108ca91906140f9565b60405180910390f35b3480156108df57600080fd5b506108e8611682565b005b3480156108f657600080fd5b50610911600480360381019061090c91906142e6565b611748565b005b34801561091f57600080fd5b50610928611814565b6040516109359190614028565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190614339565b611840565b005b34801561097357600080fd5b5061097c6118a3565b6040516109899190614268565b60405180910390f35b34801561099e57600080fd5b506109a76118c9565b6040516109b491906140f9565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190614379565b6118cf565b005b3480156109f257600080fd5b506109fb61195a565b005b348015610a0957600080fd5b50610a126119a1565b604051610a1f9190614268565b60405180910390f35b348015610a3457600080fd5b50610a3d6119ca565b604051610a4a9190614268565b60405180910390f35b348015610a5f57600080fd5b50610a686119f0565b604051610a7591906140f9565b60405180910390f35b348015610a8a57600080fd5b50610aa56004803603810190610aa091906143cc565b6119f6565b005b348015610ab357600080fd5b50610abc611a1b565b604051610ac99190613f0d565b60405180910390f35b348015610ade57600080fd5b50610ae7611aad565b604051610af491906140f9565b60405180910390f35b348015610b0957600080fd5b50610b12611ab3565b604051610b1f91906140f9565b60405180910390f35b348015610b3457600080fd5b50610b3d611ab9565b604051610b4a91906140f9565b60405180910390f35b348015610b5f57600080fd5b50610b68611abf565b604051610b7591906140f9565b60405180910390f35b348015610b8a57600080fd5b50610ba56004803603810190610ba09190613fcd565b611ac5565b604051610bb29190614028565b60405180910390f35b348015610bc757600080fd5b50610bd0611b92565b604051610bdd91906140f9565b60405180910390f35b348015610bf257600080fd5b50610c0d6004803603810190610c089190613fcd565b611b98565b604051610c1a9190614028565b60405180910390f35b348015610c2f57600080fd5b50610c4a6004803603810190610c459190614043565b611bb6565b005b348015610c5857600080fd5b50610c61611c7e565b604051610c6e9190614028565b60405180910390f35b348015610c8357600080fd5b50610c9e6004803603810190610c999190614339565b611c91565b005b348015610cac57600080fd5b50610cc76004803603810190610cc29190614379565b611d42565b005b348015610cd557600080fd5b50610cf06004803603810190610ceb9190614114565b611dcd565b005b348015610cfe57600080fd5b50610d196004803603810190610d149190614043565b611e60565b005b348015610d2757600080fd5b50610d426004803603810190610d3d9190614114565b611ed9565b604051610d4f9190614268565b60405180910390f35b348015610d6457600080fd5b50610d6d611f0c565b604051610d7a9190614028565b60405180910390f35b348015610d8f57600080fd5b50610d98611f1f565b604051610da591906140f9565b60405180910390f35b348015610dba57600080fd5b50610dd56004803603810190610dd09190614114565b611f25565b604051610de29190614028565b60405180910390f35b348015610df757600080fd5b50610e00612006565b604051610e0d91906140f9565b60405180910390f35b348015610e2257600080fd5b50610e3d6004803603810190610e3891906143f9565b61200c565b604051610e4a91906140f9565b60405180910390f35b348015610e5f57600080fd5b50610e7a6004803603810190610e759190614043565b612093565b604051610e879190614028565b60405180910390f35b348015610e9c57600080fd5b50610eb76004803603810190610eb29190614439565b6120e9565b005b348015610ec557600080fd5b50610ece612196565b604051610edb91906140f9565b60405180910390f35b348015610ef057600080fd5b50610ef961219c565b604051610f069190614028565b60405180910390f35b348015610f1b57600080fd5b50610f246121c8565b604051610f3191906140f9565b60405180910390f35b348015610f4657600080fd5b50610f616004803603810190610f5c9190614043565b6121ce565b005b348015610f6f57600080fd5b50610f8a6004803603810190610f859190613fcd565b612303565b005b348015610f9857600080fd5b50610fa1612319565b604051610fae91906140f9565b60405180910390f35b348015610fc357600080fd5b50610fcc61231f565b604051610fd991906140f9565b60405180910390f35b348015610fee57600080fd5b5061100960048036038101906110049190614114565b612325565b6040516110169190614028565b60405180910390f35b60606004805461102e906144c8565b80601f016020809104026020016040519081016040528092919081815260200182805461105a906144c8565b80156110a75780601f1061107c576101008083540402835291602001916110a7565b820191906000526020600020905b81548152906001019060200180831161108a57829003601f168201915b5050505050905090565b60006110c56110be612561565b8484612569565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b60226020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600654905090565b611145612734565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b600f5481565b601f5481565b601e5481565b611225612734565b633b9aca006103e86001611237611133565b6112419190614529565b61124b91906145b2565b61125591906145b2565b811015611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90614655565b60405180910390fd5b670de0b6b3a7640000816112ab9190614529565b60088190555050565b60006112c18484846127b2565b611382846112cd612561565b61137d8560405180606001604052806028815260200161560b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611333612561565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132da9092919063ffffffff16565b612569565b600190509392505050565b611395612734565b60005b83839050811015611464578383828181106113b6576113b5614675565b5b90506020020160208101906113cb9190614043565b73ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161144991906140f9565b60405180910390a3808061145c906146a4565b915050611398565b50505050565b61dead81565b60115481565b601060009054906101000a900460ff1681565b60006009905090565b601360029054906101000a900460ff1681565b600061154e6114b2612561565b8461154985600360006114c3612561565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250390919063ffffffff16565b612569565b6001905092915050565b611560612734565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000602360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601a5481565b601360019054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61168a612734565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611750612734565b610258831015611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c9061475f565b60405180910390fd5b6103e882111580156117a8575060008210155b6117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de906147f1565b60405180910390fd5b8260118190555081600f8190555080601060006101000a81548160ff021916908315150217905550505050565b600061181e612734565b6000601360026101000a81548160ff0219169083151502179055506001905090565b611848612734565b80602260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6118d7612734565b8260168190555081601781905550806018819055506018546017546016546118ff9190614811565b6119099190614811565b60158190555060196015541115611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c906148b3565b60405180910390fd5b505050565b611962612734565b6001601360006101000a81548160ff0219169083151502179055506001601360016101000a81548160ff02191690831515021790555042601281905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b6119fe612734565b80601360016101000a81548160ff02191690831515021790555050565b606060058054611a2a906144c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a56906144c8565b8015611aa35780601f10611a7857610100808354040283529160200191611aa3565b820191906000526020600020905b815481529060010190602001808311611a8657829003601f168201915b5050505050905090565b60185481565b600e5481565b601d5481565b60195481565b6000611b88611ad2612561565b84611b83856040518060600160405280602581526020016156336025913960036000611afc612561565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132da9092919063ffffffff16565b612569565b6001905092915050565b60125481565b6000611bac611ba5612561565b84846127b2565b6001905092915050565b611bbe612734565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360009054906101000a900460ff1681565b611c99612734565b80602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d369190614028565b60405180910390a25050565b611d4a612734565b82601b8190555081601c8190555080601981905550601954601c54601b54611d729190614811565b611d7c9190614811565b601a819055506063601a541115611dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbf9061491f565b60405180910390fd5b505050565b611dd5612734565b633b9aca006103e86005611de7611133565b611df19190614529565b611dfb91906145b2565b611e0591906145b2565b811015611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e906149b1565b60405180910390fd5b633b9aca0081611e579190614529565b600a8190555050565b611e68612734565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ed6600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611840565b50565b60246020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900460ff1681565b60085481565b6000611f2f612734565b620186a06001611f3d611133565b611f479190614529565b611f5191906145b2565b821015611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a90614a43565b60405180910390fd5b6103e8600a611fa0611133565b611faa9190614529565b611fb491906145b2565b821115611ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fed90614ad5565b60405180910390fd5b8160098190555060019050919050565b60155481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6120f1612734565b60005b8383905081101561219057816014600086868581811061211757612116614675565b5b905060200201602081019061212c9190614043565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612188906146a4565b9150506120f4565b50505050565b60095481565b60006121a6612734565b6000602160006101000a81548160ff0219169083151502179055506001905090565b60175481565b6121d6612734565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d90614b67565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61230b612734565b612315828261333e565b5050565b601c5481565b600a5481565b600061232f612734565b600d54600e5461233f9190614811565b4211612380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237790614bd3565b60405180910390fd5b6103e88211156123c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bc90614c65565b60405180910390fd5b42600e8190555060006123f9600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611639565b9050600061242461271061241686856133e090919063ffffffff16565b61345b90919063ffffffff16565b9050600081111561245f5761245e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead836134a5565b5b60006024600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156124df57600080fd5b505af11580156124f3573d6000803e3d6000fd5b5050505060019350505050919050565b60008082846125129190614811565b905083811015612557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254e90614cd1565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d090614d63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264090614df5565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161272791906140f9565b60405180910390a3505050565b61273c612561565b73ffffffffffffffffffffffffffffffffffffffff1661275a61373e565b73ffffffffffffffffffffffffffffffffffffffff16146127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790614e61565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281990614ef3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288990614f85565b60405180910390fd5b60008114156128ac576128a7838360006134a5565b6132d5565b601360029054906101000a900460ff1615612ec3576128c96119a1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561293757506129076119a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129705750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129aa575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129c35750600760149054906101000a900460ff16155b15612ec257601360009054906101000a900460ff16612abd57602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a7d5750602360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab390614ff1565b60405180910390fd5b5b602160009054906101000a900460ff1615612c8757612ada6119a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612b6157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612bbb5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612c865743602060003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c38906150a9565b60405180910390fd5b43602060003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b602260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d7a57600854811115612d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d149061513b565b60405180910390fd5b600a54612d2983611639565b82612d349190614811565b1115612d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6c906151a7565b60405180910390fd5b612ec1565b602260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e1557600854811115612e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0790615239565b60405180910390fd5b612ec0565b602260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ebf57600a54612e7283611639565b82612e7d9190614811565b1115612ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb5906151a7565b60405180910390fd5b5b5b5b5b5b6000612ece30611639565b905060006009548210159050808015612ef35750601360019054906101000a900460ff165b8015612f0c5750600760149054906101000a900460ff16155b8015612f625750602360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612fb85750602360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ffc576001600760146101000a81548160ff021916908315150217905550612fe0613752565b6000600760146101000a81548160ff0219169083151502179055505b600760149054906101000a900460ff161580156130255750601060009054906101000a900460ff165b156130365761303485856138da565b505b6000600760149054906101000a900460ff16159050602360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130ec5750602360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130f657600090505b600081156132c5576000601a5411156131d1576131316064613123601a54886133e090919063ffffffff16565b61345b90919063ffffffff16565b9050601a54601c54826131449190614529565b61314e91906145b2565b601f600082825461315f9190614811565b92505081905550601a54601954826131779190614529565b61318191906145b2565b601d60008282546131929190614811565b92505081905550601a54601b54826131aa9190614529565b6131b491906145b2565b601e60008282546131c59190614811565b925050819055506132a1565b600060155411156132a05761320460646131f6601554886133e090919063ffffffff16565b61345b90919063ffffffff16565b9050601554601754826132179190614529565b61322191906145b2565b601f60008282546132329190614811565b925050819055506015546018548261324a9190614529565b61325491906145b2565b601d60008282546132659190614811565b925050819055506015546016548261327d9190614529565b61328791906145b2565b601e60008282546132989190614811565b925050819055505b5b60008111156132b6576132b58730836134a5565b5b80856132c29190615259565b94505b6132d08787876134a5565b505050505b505050565b6000838311158290613322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133199190613f0d565b60405180910390fd5b50600083856133319190615259565b9050809150509392505050565b613346612734565b816024600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff167fe31d4764d1f943278fdfdcb88b7ba1ab2d33b62ac47858513d290085cc434e7760405160405180910390a35050565b6000808314156133f35760009050613455565b600082846134019190614529565b905082848261341091906145b2565b14613450576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613447906152ff565b60405180910390fd5b809150505b92915050565b600061349d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ad2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350c90614ef3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357c90614f85565b60405180910390fd5b613590838383613b35565b6135fc816040518060600160405280602681526020016155e560269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132da9092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061369181600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161373191906140f9565b60405180910390a3505050565b600080613749613b3a565b90508091505090565b600061375d30611639565b90506000601d54601e54601f546137749190614811565b61377e9190614811565b90506000808314806137905750600082145b1561379d575050506138d8565b60146009546137ac9190614529565b8311156137c55760146009546137c29190614529565b92505b6000600283601f54866137d89190614529565b6137e291906145b2565b6137ec91906145b2565b905060006138038286613bde90919063ffffffff16565b9050600047905061381382613c28565b60006138288247613bde90919063ffffffff16565b90506000601f819055506000601e819055506000601d81905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161388890615350565b60006040518083038185875af1925050503d80600081146138c5576040519150601f19603f3d011682016040523d82523d6000602084013e6138ca565b606091505b505080955050505050505050505b565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016139169190614268565b60206040518083038186803b15801561392e57600080fd5b505afa158015613942573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613966919061537a565b90506000613993612710613985601954856133e090919063ffffffff16565b61345b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff166024600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613ac65760006024600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd8787856040518463ffffffff1660e01b8152600401613a71939291906153a7565b602060405180830381600087803b158015613a8b57600080fd5b505af1158015613a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac391906153f3565b50505b60019250505092915050565b60008083118290613b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b109190613f0d565b60405180910390fd5b5060008385613b2891906145b2565b9050809150509392505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613bb55760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613bd9565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000613c2083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132da565b905092915050565b6000600267ffffffffffffffff811115613c4557613c44615420565b5b604051908082528060200260200182016040528015613c735781602001602082028036833780820191505090505b5090503081600081518110613c8b57613c8a614675565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613d2b57600080fd5b505afa158015613d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d639190615464565b81600181518110613d7757613d76614675565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ddc307f000000000000000000000000000000000000000000000000000000000000000084612569565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613e3e95949392919061558a565b600060405180830381600087803b158015613e5857600080fd5b505af1158015613e6c573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613eae578082015181840152602081019050613e93565b83811115613ebd576000848401525b50505050565b6000601f19601f8301169050919050565b6000613edf82613e74565b613ee98185613e7f565b9350613ef9818560208601613e90565b613f0281613ec3565b840191505092915050565b60006020820190508181036000830152613f278184613ed4565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f6482613f39565b9050919050565b613f7481613f59565b8114613f7f57600080fd5b50565b600081359050613f9181613f6b565b92915050565b6000819050919050565b613faa81613f97565b8114613fb557600080fd5b50565b600081359050613fc781613fa1565b92915050565b60008060408385031215613fe457613fe3613f2f565b5b6000613ff285828601613f82565b925050602061400385828601613fb8565b9150509250929050565b60008115159050919050565b6140228161400d565b82525050565b600060208201905061403d6000830184614019565b92915050565b60006020828403121561405957614058613f2f565b5b600061406784828501613f82565b91505092915050565b6000819050919050565b600061409561409061408b84613f39565b614070565b613f39565b9050919050565b60006140a78261407a565b9050919050565b60006140b98261409c565b9050919050565b6140c9816140ae565b82525050565b60006020820190506140e460008301846140c0565b92915050565b6140f381613f97565b82525050565b600060208201905061410e60008301846140ea565b92915050565b60006020828403121561412a57614129613f2f565b5b600061413884828501613fb8565b91505092915050565b60008060006060848603121561415a57614159613f2f565b5b600061416886828701613f82565b935050602061417986828701613f82565b925050604061418a86828701613fb8565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126141b9576141b8614194565b5b8235905067ffffffffffffffff8111156141d6576141d5614199565b5b6020830191508360208202830111156141f2576141f161419e565b5b9250929050565b60008060006040848603121561421257614211613f2f565b5b600084013567ffffffffffffffff8111156142305761422f613f34565b5b61423c868287016141a3565b9350935050602061424f86828701613fb8565b9150509250925092565b61426281613f59565b82525050565b600060208201905061427d6000830184614259565b92915050565b600060ff82169050919050565b61429981614283565b82525050565b60006020820190506142b46000830184614290565b92915050565b6142c38161400d565b81146142ce57600080fd5b50565b6000813590506142e0816142ba565b92915050565b6000806000606084860312156142ff576142fe613f2f565b5b600061430d86828701613fb8565b935050602061431e86828701613fb8565b925050604061432f868287016142d1565b9150509250925092565b600080604083850312156143505761434f613f2f565b5b600061435e85828601613f82565b925050602061436f858286016142d1565b9150509250929050565b60008060006060848603121561439257614391613f2f565b5b60006143a086828701613fb8565b93505060206143b186828701613fb8565b92505060406143c286828701613fb8565b9150509250925092565b6000602082840312156143e2576143e1613f2f565b5b60006143f0848285016142d1565b91505092915050565b600080604083850312156144105761440f613f2f565b5b600061441e85828601613f82565b925050602061442f85828601613f82565b9150509250929050565b60008060006040848603121561445257614451613f2f565b5b600084013567ffffffffffffffff8111156144705761446f613f34565b5b61447c868287016141a3565b9350935050602061448f868287016142d1565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806144e057607f821691505b602082108114156144f4576144f3614499565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061453482613f97565b915061453f83613f97565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614578576145776144fa565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145bd82613f97565b91506145c883613f97565b9250826145d8576145d7614583565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b600061463f602f83613e7f565b915061464a826145e3565b604082019050919050565b6000602082019050818103600083015261466e81614632565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006146af82613f97565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156146e2576146e16144fa565b5b600182019050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b6000614749603383613e7f565b9150614754826146ed565b604082019050919050565b600060208201905081810360008301526147788161473c565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b60006147db603083613e7f565b91506147e68261477f565b604082019050919050565b6000602082019050818103600083015261480a816147ce565b9050919050565b600061481c82613f97565b915061482783613f97565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561485c5761485b6144fa565b5b828201905092915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b600061489d601d83613e7f565b91506148a882614867565b602082019050919050565b600060208201905081810360008301526148cc81614890565b9050919050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000614909601d83613e7f565b9150614914826148d3565b602082019050919050565b60006020820190508181036000830152614938816148fc565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b600061499b602483613e7f565b91506149a68261493f565b604082019050919050565b600060208201905081810360008301526149ca8161498e565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614a2d603583613e7f565b9150614a38826149d1565b604082019050919050565b60006020820190508181036000830152614a5c81614a20565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20312520746f74616c20737570706c792e0000000000000000000000000000602082015250565b6000614abf603283613e7f565b9150614aca82614a63565b604082019050919050565b60006020820190508181036000830152614aee81614ab2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614b51602683613e7f565b9150614b5c82614af5565b604082019050919050565b60006020820190508181036000830152614b8081614b44565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000614bbd602083613e7f565b9150614bc882614b87565b602082019050919050565b60006020820190508181036000830152614bec81614bb0565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000614c4f602a83613e7f565b9150614c5a82614bf3565b604082019050919050565b60006020820190508181036000830152614c7e81614c42565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614cbb601b83613e7f565b9150614cc682614c85565b602082019050919050565b60006020820190508181036000830152614cea81614cae565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614d4d602483613e7f565b9150614d5882614cf1565b604082019050919050565b60006020820190508181036000830152614d7c81614d40565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ddf602283613e7f565b9150614dea82614d83565b604082019050919050565b60006020820190508181036000830152614e0e81614dd2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614e4b602083613e7f565b9150614e5682614e15565b602082019050919050565b60006020820190508181036000830152614e7a81614e3e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614edd602583613e7f565b9150614ee882614e81565b604082019050919050565b60006020820190508181036000830152614f0c81614ed0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614f6f602383613e7f565b9150614f7a82614f13565b604082019050919050565b60006020820190508181036000830152614f9e81614f62565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614fdb601683613e7f565b9150614fe682614fa5565b602082019050919050565b6000602082019050818103600083015261500a81614fce565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000615093604983613e7f565b915061509e82615011565b606082019050919050565b600060208201905081810360008301526150c281615086565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615125603583613e7f565b9150615130826150c9565b604082019050919050565b6000602082019050818103600083015261515481615118565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000615191601383613e7f565b915061519c8261515b565b602082019050919050565b600060208201905081810360008301526151c081615184565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615223603683613e7f565b915061522e826151c7565b604082019050919050565b6000602082019050818103600083015261525281615216565b9050919050565b600061526482613f97565b915061526f83613f97565b925082821015615282576152816144fa565b5b828203905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006152e9602183613e7f565b91506152f48261528d565b604082019050919050565b60006020820190508181036000830152615318816152dc565b9050919050565b600081905092915050565b50565b600061533a60008361531f565b91506153458261532a565b600082019050919050565b600061535b8261532d565b9150819050919050565b60008151905061537481613fa1565b92915050565b6000602082840312156153905761538f613f2f565b5b600061539e84828501615365565b91505092915050565b60006060820190506153bc6000830186614259565b6153c96020830185614259565b6153d660408301846140ea565b949350505050565b6000815190506153ed816142ba565b92915050565b60006020828403121561540957615408613f2f565b5b6000615417848285016153de565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061545e81613f6b565b92915050565b60006020828403121561547a57615479613f2f565b5b60006154888482850161544f565b91505092915050565b6000819050919050565b60006154b66154b16154ac84615491565b614070565b613f97565b9050919050565b6154c68161549b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61550181613f59565b82525050565b600061551383836154f8565b60208301905092915050565b6000602082019050919050565b6000615537826154cc565b61554181856154d7565b935061554c836154e8565b8060005b8381101561557d5781516155648882615507565b975061556f8361551f565b925050600181019050615550565b5085935050505092915050565b600060a08201905061559f60008301886140ea565b6155ac60208301876154bd565b81810360408301526155be818661552c565b90506155cd6060830185614259565b6155da60808301846140ea565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122020e135b77fbe176378e4778528dabfec708b242439a500e9a1f6f9fbf808505a64736f6c634300080900330000000000000000000000002c8c10588098a54b2df2148ec8819ff88edddf2c
Deployed Bytecode
0x6080604052600436106103f35760003560e01c80638da5cb5b11610208578063c2b7bbb611610118578063e2b9451c116100ab578063f2fde38b1161007a578063f2fde38b14610f3a578063f61f931514610f63578063f637434214610f8c578063f8b45b0514610fb7578063fe72b27a14610fe2576103fa565b8063e2b9451c14610e90578063e2f4560514610eb9578063e884f26014610ee4578063f11a24d314610f0f576103fa565b8063d257b34f116100e7578063d257b34f14610dae578063d85ba06314610deb578063dd62ed3e14610e16578063e02ae09f14610e53576103fa565b8063c2b7bbb614610cf2578063c847255614610d1b578063c876d0b914610d58578063c8c8ebe414610d83576103fa565b8063a0d82dc51161019b578063aacebbe31161016a578063aacebbe314610c23578063bbc0c74214610c4c578063c024666814610c77578063c17b5b8c14610ca0578063c18bc19514610cc9576103fa565b8063a0d82dc514610b53578063a457c2d714610b7e578063a4c82a0014610bbb578063a9059cbb14610be6576103fa565b806395d89b41116101d757806395d89b4114610aa75780639c3b4fdc14610ad25780639ec22c0e14610afd5780639fccce3214610b28576103fa565b80638da5cb5b146109fd5780638ea5220f14610a285780639213691314610a53578063924de9b714610a7e576103fa565b8063313ce5671161030357806370a08231116102965780637571336a116102655780637571336a1461093e57806375f0a874146109675780637bce5a04146109925780638095d564146109bd5780638a8c523c146109e6576103fa565b806370a0823114610896578063715018a6146108d3578063730c1888146108ea578063751039fc14610913576103fa565b806349bd5a5e116102d257806349bd5a5e146107d85780634fbee193146108035780636a486a8e146108405780636ddd17131461086b576103fa565b8063313ce5671461071c5780633582ad231461074757806339509351146107725780633eb2b5ad146107af576103fa565b8063199ffc721161038657806323b872dd1161035557806323b872dd1461063557806326ededb81461067257806327c8f8351461069b5780632c3e486c146106c65780632e82f1a0146106f1576103fa565b8063199ffc721461058b5780631a8145bb146105b65780631f3fed8f146105e1578063203e727e1461060c576103fa565b80631694505e116103c25780631694505e146104e157806318160ddd1461050c5780631816467f14610537578063184c16c514610560576103fa565b806306fdde03146103ff578063095ea7b31461042a5780630b0fd47e1461046757806310d5de53146104a4576103fa565b366103fa57005b600080fd5b34801561040b57600080fd5b5061041461101f565b6040516104219190613f0d565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c9190613fcd565b6110b1565b60405161045e9190614028565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190614043565b6110cf565b60405161049b9190614028565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190614043565b6110ef565b6040516104d89190614028565b60405180910390f35b3480156104ed57600080fd5b506104f661110f565b60405161050391906140cf565b60405180910390f35b34801561051857600080fd5b50610521611133565b60405161052e91906140f9565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190614043565b61113d565b005b34801561056c57600080fd5b50610575611205565b60405161058291906140f9565b60405180910390f35b34801561059757600080fd5b506105a061120b565b6040516105ad91906140f9565b60405180910390f35b3480156105c257600080fd5b506105cb611211565b6040516105d891906140f9565b60405180910390f35b3480156105ed57600080fd5b506105f6611217565b60405161060391906140f9565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e9190614114565b61121d565b005b34801561064157600080fd5b5061065c60048036038101906106579190614141565b6112b4565b6040516106699190614028565b60405180910390f35b34801561067e57600080fd5b50610699600480360381019061069491906141f9565b61138d565b005b3480156106a757600080fd5b506106b061146a565b6040516106bd9190614268565b60405180910390f35b3480156106d257600080fd5b506106db611470565b6040516106e891906140f9565b60405180910390f35b3480156106fd57600080fd5b50610706611476565b6040516107139190614028565b60405180910390f35b34801561072857600080fd5b50610731611489565b60405161073e919061429f565b60405180910390f35b34801561075357600080fd5b5061075c611492565b6040516107699190614028565b60405180910390f35b34801561077e57600080fd5b5061079960048036038101906107949190613fcd565b6114a5565b6040516107a69190614028565b60405180910390f35b3480156107bb57600080fd5b506107d660048036038101906107d19190614043565b611558565b005b3480156107e457600080fd5b506107ed6115a4565b6040516107fa9190614268565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190614043565b6115ca565b6040516108379190614028565b60405180910390f35b34801561084c57600080fd5b50610855611620565b60405161086291906140f9565b60405180910390f35b34801561087757600080fd5b50610880611626565b60405161088d9190614028565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190614043565b611639565b6040516108ca91906140f9565b60405180910390f35b3480156108df57600080fd5b506108e8611682565b005b3480156108f657600080fd5b50610911600480360381019061090c91906142e6565b611748565b005b34801561091f57600080fd5b50610928611814565b6040516109359190614028565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190614339565b611840565b005b34801561097357600080fd5b5061097c6118a3565b6040516109899190614268565b60405180910390f35b34801561099e57600080fd5b506109a76118c9565b6040516109b491906140f9565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190614379565b6118cf565b005b3480156109f257600080fd5b506109fb61195a565b005b348015610a0957600080fd5b50610a126119a1565b604051610a1f9190614268565b60405180910390f35b348015610a3457600080fd5b50610a3d6119ca565b604051610a4a9190614268565b60405180910390f35b348015610a5f57600080fd5b50610a686119f0565b604051610a7591906140f9565b60405180910390f35b348015610a8a57600080fd5b50610aa56004803603810190610aa091906143cc565b6119f6565b005b348015610ab357600080fd5b50610abc611a1b565b604051610ac99190613f0d565b60405180910390f35b348015610ade57600080fd5b50610ae7611aad565b604051610af491906140f9565b60405180910390f35b348015610b0957600080fd5b50610b12611ab3565b604051610b1f91906140f9565b60405180910390f35b348015610b3457600080fd5b50610b3d611ab9565b604051610b4a91906140f9565b60405180910390f35b348015610b5f57600080fd5b50610b68611abf565b604051610b7591906140f9565b60405180910390f35b348015610b8a57600080fd5b50610ba56004803603810190610ba09190613fcd565b611ac5565b604051610bb29190614028565b60405180910390f35b348015610bc757600080fd5b50610bd0611b92565b604051610bdd91906140f9565b60405180910390f35b348015610bf257600080fd5b50610c0d6004803603810190610c089190613fcd565b611b98565b604051610c1a9190614028565b60405180910390f35b348015610c2f57600080fd5b50610c4a6004803603810190610c459190614043565b611bb6565b005b348015610c5857600080fd5b50610c61611c7e565b604051610c6e9190614028565b60405180910390f35b348015610c8357600080fd5b50610c9e6004803603810190610c999190614339565b611c91565b005b348015610cac57600080fd5b50610cc76004803603810190610cc29190614379565b611d42565b005b348015610cd557600080fd5b50610cf06004803603810190610ceb9190614114565b611dcd565b005b348015610cfe57600080fd5b50610d196004803603810190610d149190614043565b611e60565b005b348015610d2757600080fd5b50610d426004803603810190610d3d9190614114565b611ed9565b604051610d4f9190614268565b60405180910390f35b348015610d6457600080fd5b50610d6d611f0c565b604051610d7a9190614028565b60405180910390f35b348015610d8f57600080fd5b50610d98611f1f565b604051610da591906140f9565b60405180910390f35b348015610dba57600080fd5b50610dd56004803603810190610dd09190614114565b611f25565b604051610de29190614028565b60405180910390f35b348015610df757600080fd5b50610e00612006565b604051610e0d91906140f9565b60405180910390f35b348015610e2257600080fd5b50610e3d6004803603810190610e3891906143f9565b61200c565b604051610e4a91906140f9565b60405180910390f35b348015610e5f57600080fd5b50610e7a6004803603810190610e759190614043565b612093565b604051610e879190614028565b60405180910390f35b348015610e9c57600080fd5b50610eb76004803603810190610eb29190614439565b6120e9565b005b348015610ec557600080fd5b50610ece612196565b604051610edb91906140f9565b60405180910390f35b348015610ef057600080fd5b50610ef961219c565b604051610f069190614028565b60405180910390f35b348015610f1b57600080fd5b50610f246121c8565b604051610f3191906140f9565b60405180910390f35b348015610f4657600080fd5b50610f616004803603810190610f5c9190614043565b6121ce565b005b348015610f6f57600080fd5b50610f8a6004803603810190610f859190613fcd565b612303565b005b348015610f9857600080fd5b50610fa1612319565b604051610fae91906140f9565b60405180910390f35b348015610fc357600080fd5b50610fcc61231f565b604051610fd991906140f9565b60405180910390f35b348015610fee57600080fd5b5061100960048036038101906110049190614114565b612325565b6040516110169190614028565b60405180910390f35b60606004805461102e906144c8565b80601f016020809104026020016040519081016040528092919081815260200182805461105a906144c8565b80156110a75780601f1061107c576101008083540402835291602001916110a7565b820191906000526020600020905b81548152906001019060200180831161108a57829003601f168201915b5050505050905090565b60006110c56110be612561565b8484612569565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b60226020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600654905090565b611145612734565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b600f5481565b601f5481565b601e5481565b611225612734565b633b9aca006103e86001611237611133565b6112419190614529565b61124b91906145b2565b61125591906145b2565b811015611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90614655565b60405180910390fd5b670de0b6b3a7640000816112ab9190614529565b60088190555050565b60006112c18484846127b2565b611382846112cd612561565b61137d8560405180606001604052806028815260200161560b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611333612561565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132da9092919063ffffffff16565b612569565b600190509392505050565b611395612734565b60005b83839050811015611464578383828181106113b6576113b5614675565b5b90506020020160208101906113cb9190614043565b73ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161144991906140f9565b60405180910390a3808061145c906146a4565b915050611398565b50505050565b61dead81565b60115481565b601060009054906101000a900460ff1681565b60006009905090565b601360029054906101000a900460ff1681565b600061154e6114b2612561565b8461154985600360006114c3612561565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250390919063ffffffff16565b612569565b6001905092915050565b611560612734565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000602360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601a5481565b601360019054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61168a612734565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611750612734565b610258831015611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c9061475f565b60405180910390fd5b6103e882111580156117a8575060008210155b6117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de906147f1565b60405180910390fd5b8260118190555081600f8190555080601060006101000a81548160ff021916908315150217905550505050565b600061181e612734565b6000601360026101000a81548160ff0219169083151502179055506001905090565b611848612734565b80602260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6118d7612734565b8260168190555081601781905550806018819055506018546017546016546118ff9190614811565b6119099190614811565b60158190555060196015541115611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c906148b3565b60405180910390fd5b505050565b611962612734565b6001601360006101000a81548160ff0219169083151502179055506001601360016101000a81548160ff02191690831515021790555042601281905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b6119fe612734565b80601360016101000a81548160ff02191690831515021790555050565b606060058054611a2a906144c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a56906144c8565b8015611aa35780601f10611a7857610100808354040283529160200191611aa3565b820191906000526020600020905b815481529060010190602001808311611a8657829003601f168201915b5050505050905090565b60185481565b600e5481565b601d5481565b60195481565b6000611b88611ad2612561565b84611b83856040518060600160405280602581526020016156336025913960036000611afc612561565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132da9092919063ffffffff16565b612569565b6001905092915050565b60125481565b6000611bac611ba5612561565b84846127b2565b6001905092915050565b611bbe612734565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360009054906101000a900460ff1681565b611c99612734565b80602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d369190614028565b60405180910390a25050565b611d4a612734565b82601b8190555081601c8190555080601981905550601954601c54601b54611d729190614811565b611d7c9190614811565b601a819055506063601a541115611dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbf9061491f565b60405180910390fd5b505050565b611dd5612734565b633b9aca006103e86005611de7611133565b611df19190614529565b611dfb91906145b2565b611e0591906145b2565b811015611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e906149b1565b60405180910390fd5b633b9aca0081611e579190614529565b600a8190555050565b611e68612734565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ed6600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611840565b50565b60246020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900460ff1681565b60085481565b6000611f2f612734565b620186a06001611f3d611133565b611f479190614529565b611f5191906145b2565b821015611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a90614a43565b60405180910390fd5b6103e8600a611fa0611133565b611faa9190614529565b611fb491906145b2565b821115611ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fed90614ad5565b60405180910390fd5b8160098190555060019050919050565b60155481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6120f1612734565b60005b8383905081101561219057816014600086868581811061211757612116614675565b5b905060200201602081019061212c9190614043565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612188906146a4565b9150506120f4565b50505050565b60095481565b60006121a6612734565b6000602160006101000a81548160ff0219169083151502179055506001905090565b60175481565b6121d6612734565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d90614b67565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61230b612734565b612315828261333e565b5050565b601c5481565b600a5481565b600061232f612734565b600d54600e5461233f9190614811565b4211612380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237790614bd3565b60405180910390fd5b6103e88211156123c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bc90614c65565b60405180910390fd5b42600e8190555060006123f9600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611639565b9050600061242461271061241686856133e090919063ffffffff16565b61345b90919063ffffffff16565b9050600081111561245f5761245e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead836134a5565b5b60006024600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156124df57600080fd5b505af11580156124f3573d6000803e3d6000fd5b5050505060019350505050919050565b60008082846125129190614811565b905083811015612557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254e90614cd1565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d090614d63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264090614df5565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161272791906140f9565b60405180910390a3505050565b61273c612561565b73ffffffffffffffffffffffffffffffffffffffff1661275a61373e565b73ffffffffffffffffffffffffffffffffffffffff16146127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790614e61565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281990614ef3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288990614f85565b60405180910390fd5b60008114156128ac576128a7838360006134a5565b6132d5565b601360029054906101000a900460ff1615612ec3576128c96119a1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561293757506129076119a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129705750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129aa575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129c35750600760149054906101000a900460ff16155b15612ec257601360009054906101000a900460ff16612abd57602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a7d5750602360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab390614ff1565b60405180910390fd5b5b602160009054906101000a900460ff1615612c8757612ada6119a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612b6157507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612bbb5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612c865743602060003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c38906150a9565b60405180910390fd5b43602060003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b602260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d7a57600854811115612d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d149061513b565b60405180910390fd5b600a54612d2983611639565b82612d349190614811565b1115612d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6c906151a7565b60405180910390fd5b612ec1565b602260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e1557600854811115612e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0790615239565b60405180910390fd5b612ec0565b602260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ebf57600a54612e7283611639565b82612e7d9190614811565b1115612ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb5906151a7565b60405180910390fd5b5b5b5b5b5b6000612ece30611639565b905060006009548210159050808015612ef35750601360019054906101000a900460ff165b8015612f0c5750600760149054906101000a900460ff16155b8015612f625750602360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612fb85750602360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ffc576001600760146101000a81548160ff021916908315150217905550612fe0613752565b6000600760146101000a81548160ff0219169083151502179055505b600760149054906101000a900460ff161580156130255750601060009054906101000a900460ff165b156130365761303485856138da565b505b6000600760149054906101000a900460ff16159050602360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130ec5750602360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130f657600090505b600081156132c5576000601a5411156131d1576131316064613123601a54886133e090919063ffffffff16565b61345b90919063ffffffff16565b9050601a54601c54826131449190614529565b61314e91906145b2565b601f600082825461315f9190614811565b92505081905550601a54601954826131779190614529565b61318191906145b2565b601d60008282546131929190614811565b92505081905550601a54601b54826131aa9190614529565b6131b491906145b2565b601e60008282546131c59190614811565b925050819055506132a1565b600060155411156132a05761320460646131f6601554886133e090919063ffffffff16565b61345b90919063ffffffff16565b9050601554601754826132179190614529565b61322191906145b2565b601f60008282546132329190614811565b925050819055506015546018548261324a9190614529565b61325491906145b2565b601d60008282546132659190614811565b925050819055506015546016548261327d9190614529565b61328791906145b2565b601e60008282546132989190614811565b925050819055505b5b60008111156132b6576132b58730836134a5565b5b80856132c29190615259565b94505b6132d08787876134a5565b505050505b505050565b6000838311158290613322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133199190613f0d565b60405180910390fd5b50600083856133319190615259565b9050809150509392505050565b613346612734565b816024600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff167fe31d4764d1f943278fdfdcb88b7ba1ab2d33b62ac47858513d290085cc434e7760405160405180910390a35050565b6000808314156133f35760009050613455565b600082846134019190614529565b905082848261341091906145b2565b14613450576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613447906152ff565b60405180910390fd5b809150505b92915050565b600061349d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ad2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350c90614ef3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161357c90614f85565b60405180910390fd5b613590838383613b35565b6135fc816040518060600160405280602681526020016155e560269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132da9092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061369181600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161373191906140f9565b60405180910390a3505050565b600080613749613b3a565b90508091505090565b600061375d30611639565b90506000601d54601e54601f546137749190614811565b61377e9190614811565b90506000808314806137905750600082145b1561379d575050506138d8565b60146009546137ac9190614529565b8311156137c55760146009546137c29190614529565b92505b6000600283601f54866137d89190614529565b6137e291906145b2565b6137ec91906145b2565b905060006138038286613bde90919063ffffffff16565b9050600047905061381382613c28565b60006138288247613bde90919063ffffffff16565b90506000601f819055506000601e819055506000601d81905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161388890615350565b60006040518083038185875af1925050503d80600081146138c5576040519150601f19603f3d011682016040523d82523d6000602084013e6138ca565b606091505b505080955050505050505050505b565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016139169190614268565b60206040518083038186803b15801561392e57600080fd5b505afa158015613942573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613966919061537a565b90506000613993612710613985601954856133e090919063ffffffff16565b61345b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff166024600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613ac65760006024600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd8787856040518463ffffffff1660e01b8152600401613a71939291906153a7565b602060405180830381600087803b158015613a8b57600080fd5b505af1158015613a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac391906153f3565b50505b60019250505092915050565b60008083118290613b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b109190613f0d565b60405180910390fd5b5060008385613b2891906145b2565b9050809150509392505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613bb55760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613bd9565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000613c2083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132da565b905092915050565b6000600267ffffffffffffffff811115613c4557613c44615420565b5b604051908082528060200260200182016040528015613c735781602001602082028036833780820191505090505b5090503081600081518110613c8b57613c8a614675565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613d2b57600080fd5b505afa158015613d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d639190615464565b81600181518110613d7757613d76614675565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ddc307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612569565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613e3e95949392919061558a565b600060405180830381600087803b158015613e5857600080fd5b505af1158015613e6c573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613eae578082015181840152602081019050613e93565b83811115613ebd576000848401525b50505050565b6000601f19601f8301169050919050565b6000613edf82613e74565b613ee98185613e7f565b9350613ef9818560208601613e90565b613f0281613ec3565b840191505092915050565b60006020820190508181036000830152613f278184613ed4565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f6482613f39565b9050919050565b613f7481613f59565b8114613f7f57600080fd5b50565b600081359050613f9181613f6b565b92915050565b6000819050919050565b613faa81613f97565b8114613fb557600080fd5b50565b600081359050613fc781613fa1565b92915050565b60008060408385031215613fe457613fe3613f2f565b5b6000613ff285828601613f82565b925050602061400385828601613fb8565b9150509250929050565b60008115159050919050565b6140228161400d565b82525050565b600060208201905061403d6000830184614019565b92915050565b60006020828403121561405957614058613f2f565b5b600061406784828501613f82565b91505092915050565b6000819050919050565b600061409561409061408b84613f39565b614070565b613f39565b9050919050565b60006140a78261407a565b9050919050565b60006140b98261409c565b9050919050565b6140c9816140ae565b82525050565b60006020820190506140e460008301846140c0565b92915050565b6140f381613f97565b82525050565b600060208201905061410e60008301846140ea565b92915050565b60006020828403121561412a57614129613f2f565b5b600061413884828501613fb8565b91505092915050565b60008060006060848603121561415a57614159613f2f565b5b600061416886828701613f82565b935050602061417986828701613f82565b925050604061418a86828701613fb8565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126141b9576141b8614194565b5b8235905067ffffffffffffffff8111156141d6576141d5614199565b5b6020830191508360208202830111156141f2576141f161419e565b5b9250929050565b60008060006040848603121561421257614211613f2f565b5b600084013567ffffffffffffffff8111156142305761422f613f34565b5b61423c868287016141a3565b9350935050602061424f86828701613fb8565b9150509250925092565b61426281613f59565b82525050565b600060208201905061427d6000830184614259565b92915050565b600060ff82169050919050565b61429981614283565b82525050565b60006020820190506142b46000830184614290565b92915050565b6142c38161400d565b81146142ce57600080fd5b50565b6000813590506142e0816142ba565b92915050565b6000806000606084860312156142ff576142fe613f2f565b5b600061430d86828701613fb8565b935050602061431e86828701613fb8565b925050604061432f868287016142d1565b9150509250925092565b600080604083850312156143505761434f613f2f565b5b600061435e85828601613f82565b925050602061436f858286016142d1565b9150509250929050565b60008060006060848603121561439257614391613f2f565b5b60006143a086828701613fb8565b93505060206143b186828701613fb8565b92505060406143c286828701613fb8565b9150509250925092565b6000602082840312156143e2576143e1613f2f565b5b60006143f0848285016142d1565b91505092915050565b600080604083850312156144105761440f613f2f565b5b600061441e85828601613f82565b925050602061442f85828601613f82565b9150509250929050565b60008060006040848603121561445257614451613f2f565b5b600084013567ffffffffffffffff8111156144705761446f613f34565b5b61447c868287016141a3565b9350935050602061448f868287016142d1565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806144e057607f821691505b602082108114156144f4576144f3614499565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061453482613f97565b915061453f83613f97565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614578576145776144fa565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145bd82613f97565b91506145c883613f97565b9250826145d8576145d7614583565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b600061463f602f83613e7f565b915061464a826145e3565b604082019050919050565b6000602082019050818103600083015261466e81614632565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006146af82613f97565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156146e2576146e16144fa565b5b600182019050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b6000614749603383613e7f565b9150614754826146ed565b604082019050919050565b600060208201905081810360008301526147788161473c565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b60006147db603083613e7f565b91506147e68261477f565b604082019050919050565b6000602082019050818103600083015261480a816147ce565b9050919050565b600061481c82613f97565b915061482783613f97565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561485c5761485b6144fa565b5b828201905092915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b600061489d601d83613e7f565b91506148a882614867565b602082019050919050565b600060208201905081810360008301526148cc81614890565b9050919050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000614909601d83613e7f565b9150614914826148d3565b602082019050919050565b60006020820190508181036000830152614938816148fc565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b600061499b602483613e7f565b91506149a68261493f565b604082019050919050565b600060208201905081810360008301526149ca8161498e565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614a2d603583613e7f565b9150614a38826149d1565b604082019050919050565b60006020820190508181036000830152614a5c81614a20565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20312520746f74616c20737570706c792e0000000000000000000000000000602082015250565b6000614abf603283613e7f565b9150614aca82614a63565b604082019050919050565b60006020820190508181036000830152614aee81614ab2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614b51602683613e7f565b9150614b5c82614af5565b604082019050919050565b60006020820190508181036000830152614b8081614b44565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000614bbd602083613e7f565b9150614bc882614b87565b602082019050919050565b60006020820190508181036000830152614bec81614bb0565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000614c4f602a83613e7f565b9150614c5a82614bf3565b604082019050919050565b60006020820190508181036000830152614c7e81614c42565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614cbb601b83613e7f565b9150614cc682614c85565b602082019050919050565b60006020820190508181036000830152614cea81614cae565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614d4d602483613e7f565b9150614d5882614cf1565b604082019050919050565b60006020820190508181036000830152614d7c81614d40565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ddf602283613e7f565b9150614dea82614d83565b604082019050919050565b60006020820190508181036000830152614e0e81614dd2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614e4b602083613e7f565b9150614e5682614e15565b602082019050919050565b60006020820190508181036000830152614e7a81614e3e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614edd602583613e7f565b9150614ee882614e81565b604082019050919050565b60006020820190508181036000830152614f0c81614ed0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614f6f602383613e7f565b9150614f7a82614f13565b604082019050919050565b60006020820190508181036000830152614f9e81614f62565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614fdb601683613e7f565b9150614fe682614fa5565b602082019050919050565b6000602082019050818103600083015261500a81614fce565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000615093604983613e7f565b915061509e82615011565b606082019050919050565b600060208201905081810360008301526150c281615086565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615125603583613e7f565b9150615130826150c9565b604082019050919050565b6000602082019050818103600083015261515481615118565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000615191601383613e7f565b915061519c8261515b565b602082019050919050565b600060208201905081810360008301526151c081615184565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615223603683613e7f565b915061522e826151c7565b604082019050919050565b6000602082019050818103600083015261525281615216565b9050919050565b600061526482613f97565b915061526f83613f97565b925082821015615282576152816144fa565b5b828203905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006152e9602183613e7f565b91506152f48261528d565b604082019050919050565b60006020820190508181036000830152615318816152dc565b9050919050565b600081905092915050565b50565b600061533a60008361531f565b91506153458261532a565b600082019050919050565b600061535b8261532d565b9150819050919050565b60008151905061537481613fa1565b92915050565b6000602082840312156153905761538f613f2f565b5b600061539e84828501615365565b91505092915050565b60006060820190506153bc6000830186614259565b6153c96020830185614259565b6153d660408301846140ea565b949350505050565b6000815190506153ed816142ba565b92915050565b60006020828403121561540957615408613f2f565b5b6000615417848285016153de565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061545e81613f6b565b92915050565b60006020828403121561547a57615479613f2f565b5b60006154888482850161544f565b91505092915050565b6000819050919050565b60006154b66154b16154ac84615491565b614070565b613f97565b9050919050565b6154c68161549b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61550181613f59565b82525050565b600061551383836154f8565b60208301905092915050565b6000602082019050919050565b6000615537826154cc565b61554181856154d7565b935061554c836154e8565b8060005b8381101561557d5781516155648882615507565b975061556f8361551f565b925050600181019050615550565b5085935050505092915050565b600060a08201905061559f60008301886140ea565b6155ac60208301876154bd565b81810360408301526155be818661552c565b90506155cd6060830185614259565b6155da60808301846140ea565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122020e135b77fbe176378e4778528dabfec708b242439a500e9a1f6f9fbf808505a64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002c8c10588098a54b2df2148ec8819ff88edddf2c
-----Decoded View---------------
Arg [0] : team_ (address): 0x2C8C10588098A54B2DF2148EC8819Ff88edDDf2c
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002c8c10588098a54b2df2148ec8819ff88edddf2c
Deployed Bytecode Sourcemap
356:17830:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4041:100:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6207:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1203:46:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1977:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;426:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5160:108:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8166:157:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;800:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;901:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1626:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1586;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7154:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6858:355:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14017:223:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;519:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;983:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;944:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5003:92:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1164:32:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7622:218:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2171:93:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;484:28:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8485:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1435:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1127:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5331:127:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1442:148:3;;;;;;;;;;;;;:::i;:::-;;17730:447:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5797:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8331:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;726:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1292;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6777:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5117:155;;;;;;;;;;;;;:::i;:::-;;649:79:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;763:24:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1470:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5684:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4260:104:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1366:24:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;857:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1552:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1403:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8343:269:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1044:29:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5671:175:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8622:208:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1088:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7616:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6391:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7395:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4906:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1850:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;611:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5994:385;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1258:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5909:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17610:112:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15300:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;653:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5337:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1329:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1745:244:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8015:143:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1508:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;693:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15506:1004;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4041:100:1;4095:13;4128:5;4121:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4041:100;:::o;6207:169::-;6290:4;6307:39;6316:12;:10;:12::i;:::-;6330:7;6339:6;6307:8;:39::i;:::-;6364:4;6357:11;;6207:169;;;;:::o;1203:46:4:-;;;;;;;;;;;;;;;;;;;;;;:::o;1977:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;426:51::-;;;:::o;5160:108:1:-;5221:7;5248:12;;5241:19;;5160:108;:::o;8166:157:4:-;853:13:3;:11;:13::i;:::-;8273:9:4::1;;;;;;;;;;;8245:38;;8262:9;8245:38;;;;;;;;;;;;8306:9;8294;;:21;;;;;;;;;;;;;;;;;;8166:157:::0;:::o;800:50::-;;;;:::o;901:35::-;;;;:::o;1626:33::-;;;;:::o;1586:::-;;;;:::o;7154:233::-;853:13:3;:11;:13::i;:::-;7273:3:4::1;7267:4;7263:1;7247:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;7246:30;;;;:::i;:::-;7236:6;:40;;7228:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;7372:6;7362;:17;;;;:::i;:::-;7339:20;:40;;;;7154:233:::0;:::o;6858:355:1:-;6998:4;7015:36;7025:6;7033:9;7044:6;7015:9;:36::i;:::-;7062:121;7071:6;7079:12;:10;:12::i;:::-;7093:89;7131:6;7093:89;;;;;;;;;;;;;;;;;:11;:19;7105:6;7093:19;;;;;;;;;;;;;;;:33;7113:12;:10;:12::i;:::-;7093:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7062:8;:121::i;:::-;7201:4;7194:11;;6858:355;;;;;:::o;14017:223:4:-;853:13:3;:11;:13::i;:::-;14114:9:4::1;14109:124;14133:10;;:17;;14129:1;:21;14109:124;;;14201:10;;14212:1;14201:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14177:44;;14186:13;;;;;;;;;;;14177:44;;;14216:4;14177:44;;;;;;:::i;:::-;;;;;;;;14152:3;;;;;:::i;:::-;;;;14109:124;;;;14017:223:::0;;;:::o;519:53::-;565:6;519:53;:::o;983:54::-;;;;:::o;944:32::-;;;;;;;;;;;;;:::o;5003:92:1:-;5061:5;5086:1;5079:8;;5003:92;:::o;1164:32:4:-;;;;;;;;;;;;;:::o;7622:218:1:-;7710:4;7727:83;7736:12;:10;:12::i;:::-;7750:7;7759:50;7798:10;7759:11;:25;7771:12;:10;:12::i;:::-;7759:25;;;;;;;;;;;;;;;:34;7785:7;7759:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;7727:8;:83::i;:::-;7828:4;7821:11;;7622:218;;;;:::o;2171:93:3:-;853:13;:11;:13::i;:::-;2249:7:::1;2241:5;;:15;;;;;;;;;;;;;;;;;;2171:93:::0;:::o;484:28:4:-;;;;;;;;;;;;;:::o;8485:125::-;8550:4;8574:19;:28;8594:7;8574:28;;;;;;;;;;;;;;;;;;;;;;;;;8567:35;;8485:125;;;:::o;1435:28::-;;;;:::o;1127:30::-;;;;;;;;;;;;;:::o;5331:127:1:-;5405:7;5432:9;:18;5442:7;5432:18;;;;;;;;;;;;;;;;5425:25;;5331:127;;;:::o;1442:148:3:-;853:13;:11;:13::i;:::-;1549:1:::1;1512:40;;1533:6;::::0;::::1;;;;;;;;1512:40;;;;;;;;;;;;1580:1;1563:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1442:148::o:0;17730:447:4:-;853:13:3;:11;:13::i;:::-;17884:3:4::1;17861:19;:26;;17853:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17974:4;17962:8;:16;;:33;;;;;17994:1;17982:8;:13;;17962:33;17954:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;18077:19;18059:15;:37;;;;18126:8;18107:16;:27;;;;18161:8;18145:13;;:24;;;;;;;;;;;;;;;;;;17730:447:::0;;;:::o;5797:127::-;5847:4;853:13:3;:11;:13::i;:::-;5879:5:4::1;5863:13;;:21;;;;;;;;;;;;;;;;;;5912:4;5905:11;;5797:127:::0;:::o;8331:144::-;853:13:3;:11;:13::i;:::-;8463:4:4::1;8421:31;:39;8453:6;8421:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;8331:144:::0;;:::o;726:30::-;;;;;;;;;;;;;:::o;1292:::-;;;;:::o;6777:369::-;853:13:3;:11;:13::i;:::-;6911::4::1;6893:15;:31;;;;6953:13;6935:15;:31;;;;6989:7;6977:9;:19;;;;7058:9;;7040:15;;7022;;:33;;;;:::i;:::-;:45;;;;:::i;:::-;7007:12;:60;;;;7102:2;7086:12;;:18;;7078:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6777:369:::0;;;:::o;5117:155::-;853:13:3;:11;:13::i;:::-;5188:4:4::1;5172:13;;:20;;;;;;;;;;;;;;;;;;5217:4;5203:11;;:18;;;;;;;;;;;;;;;;;;5249:15;5232:14;:32;;;;5117:155::o:0;649:79:3:-;687:7;714:6;;;;;;;;;;;707:13;;649:79;:::o;763:24:4:-;;;;;;;;;;;;;:::o;1470:31::-;;;;:::o;5684:101::-;853:13:3;:11;:13::i;:::-;5770:7:4::1;5756:11;;:21;;;;;;;;;;;;;;;;;;5684:101:::0;:::o;4260:104:1:-;4316:13;4349:7;4342:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4260:104;:::o;1366:24:4:-;;;;:::o;857:35::-;;;;:::o;1552:27::-;;;;:::o;1403:25::-;;;;:::o;8343:269:1:-;8436:4;8453:129;8462:12;:10;:12::i;:::-;8476:7;8485:96;8524:15;8485:96;;;;;;;;;;;;;;;;;:11;:25;8497:12;:10;:12::i;:::-;8485:25;;;;;;;;;;;;;;;:34;8511:7;8485:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;8453:8;:129::i;:::-;8600:4;8593:11;;8343:269;;;;:::o;1044:29:4:-;;;;:::o;5671:175:1:-;5757:4;5774:42;5784:12;:10;:12::i;:::-;5798:9;5809:6;5774:9;:42::i;:::-;5834:4;5827:11;;5671:175;;;;:::o;8622:208:4:-;853:13:3;:11;:13::i;:::-;8759:15:4::1;;;;;;;;;;;8716:59;;8739:18;8716:59;;;;;;;;;;;;8804:18;8786:15;;:36;;;;;;;;;;;;;;;;;;8622:208:::0;:::o;1088:32::-;;;;;;;;;;;;;:::o;7616:182::-;853:13:3;:11;:13::i;:::-;7732:8:4::1;7701:19;:28;7721:7;7701:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;7772:7;7756:34;;;7781:8;7756:34;;;;;;:::i;:::-;;;;;;;;7616:182:::0;;:::o;6391:378::-;853:13:3;:11;:13::i;:::-;6527::4::1;6508:16;:32;;;;6570:13;6551:16;:32;;;;6607:7;6594:10;:20;;;;6679:10;;6660:16;;6641;;:35;;;;:::i;:::-;:48;;;;:::i;:::-;6625:13;:64;;;;6725:2;6708:13;;:19;;6700:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6391:378:::0;;;:::o;7395:213::-;853:13:3;:11;:13::i;:::-;7517:3:4::1;7511:4;7507:1;7491:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;7490:30;;;;:::i;:::-;7480:6;:40;;7472:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;7594:5;7584:6;:16;;;;:::i;:::-;7572:9;:28;;;;7395:213:::0;:::o;4906:157::-;853:13:3;:11;:13::i;:::-;4984:5:4::1;4968:13;;:21;;;;;;;;;;;;;;;;;;5000:55;5034:13;;;;;;;;;;;5050:4;5000:25;:55::i;:::-;4906:157:::0;:::o;2259:61::-;;;;;;;;;;;;;;;;;;;;;;:::o;1850:39::-;;;;;;;;;;;;;:::o;611:35::-;;;;:::o;5994:385::-;6075:4;853:13:3;:11;:13::i;:::-;6132:6:4::1;6128:1;6112:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;6099:9;:39;;6091:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;6249:4;6244:2;6228:13;:11;:13::i;:::-;:18;;;;:::i;:::-;:25;;;;:::i;:::-;6215:9;:38;;6207:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;6340:9;6319:18;:30;;;;6367:4;6360:11;;5994:385:::0;;;:::o;1258:27::-;;;;:::o;5909:151:1:-;5998:7;6025:11;:18;6037:5;6025:18;;;;;;;;;;;;;;;:27;6044:7;6025:27;;;;;;;;;;;;;;;;6018:34;;5909:151;;;;:::o;17610:112:4:-;17666:4;17689:14;:25;17704:9;17689:25;;;;;;;;;;;;;;;;;;;;;;;;;17682:32;;17610:112;;;:::o;15300:194::-;853:13:3;:11;:13::i;:::-;15386:9:4::1;15381:106;15405:8;;:15;;15401:1;:19;15381:106;;;15472:3;15442:14;:27;15457:8;;15466:1;15457:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15442:27;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;15422:3;;;;;:::i;:::-;;;;15381:106;;;;15300:194:::0;;;:::o;653:33::-;;;;:::o;5337:134::-;5397:4;853:13:3;:11;:13::i;:::-;5436:5:4::1;5413:20;;:28;;;;;;;;;;;;;;;;;;5459:4;5452:11;;5337:134:::0;:::o;1329:30::-;;;;:::o;1745:244:3:-;853:13;:11;:13::i;:::-;1854:1:::1;1834:22;;:8;:22;;;;1826:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1944:8;1915:38;;1936:6;::::0;::::1;;;;;;;;1915:38;;;;;;;;;;;;1973:8;1964:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1745:244:::0;:::o;8015:143:4:-;853:13:3;:11;:13::i;:::-;8109:41:4::1;8138:4;8144:5;8109:28;:41::i;:::-;8015:143:::0;;:::o;1508:31::-;;;;:::o;693:24::-;;;;:::o;15506:1004::-;15590:4;853:13:3;:11;:13::i;:::-;15655:19:4::1;;15632:20;;:42;;;;:::i;:::-;15614:15;:60;15606:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;15742:4;15731:7;:15;;15723:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15827:15;15804:20;:38;;;;15905:28;15936:24;15946:13;;;;;;;;;;;15936:9;:24::i;:::-;15905:55;;16018:20;16041:44;16079:5;16041:33;16066:7;16041:20;:24;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;16018:67;;16213:1;16198:12;:16;16194:109;;;16230:61;16246:13;;;;;;;;;;;16269:6;16278:12;16230:15;:61::i;:::-;16194:109;16386:19;16423:25;:34;16449:7;16423:34;;;;;;;;;;;;;;;;;;;;;16386:72;;16469:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16498:4;16491:11;;;;;15506:1004:::0;;;:::o;324:181:2:-;382:7;402:9;418:1;414;:5;;;;:::i;:::-;402:17;;443:1;438;:6;;430:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;496:1;489:8;;;324:181;;;;:::o;94:98:0:-;147:7;174:10;167:17;;94:98;:::o;10778:380:1:-;10931:1;10914:19;;:5;:19;;;;10906:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11012:1;10993:21;;:7;:21;;;;10985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11096:6;11066:11;:18;11078:5;11066:18;;;;;;;;;;;;;;;:27;11085:7;11066:27;;;;;;;;;;;;;;;:36;;;;11134:7;11118:32;;11127:5;11118:32;;;11143:6;11118:32;;;;;;:::i;:::-;;;;;;;;10778:380;;;:::o;964:127:3:-;1034:12;:10;:12::i;:::-;1023:23;;:7;:5;:7::i;:::-;:23;;;1015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;964:127::o;8838:4033:4:-;8986:1;8970:18;;:4;:18;;;;8962:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9063:1;9049:16;;:2;:16;;;;9041:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9140:1;9130:6;:11;9127:92;;;9158:28;9174:4;9180:2;9184:1;9158:15;:28::i;:::-;9201:7;;9127:92;9242:13;;;;;;;;;;;9239:1772;;;9301:7;:5;:7::i;:::-;9293:15;;:4;:15;;;;:49;;;;;9335:7;:5;:7::i;:::-;9329:13;;:2;:13;;;;9293:49;:86;;;;;9377:1;9363:16;;:2;:16;;;;9293:86;:128;;;;;9414:6;9400:21;;:2;:21;;;;9293:128;:158;;;;;9443:8;;;;;;;;;;;9442:9;9293:158;9271:1729;;;9489:13;;;;;;;;;;;9485:148;;9534:19;:25;9554:4;9534:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;9563:19;:23;9583:2;9563:23;;;;;;;;;;;;;;;;;;;;;;;;;9534:52;9526:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9485:148;9791:20;;;;;;;;;;;9787:423;;;9845:7;:5;:7::i;:::-;9839:13;;:2;:13;;;;:47;;;;;9870:15;9856:30;;:2;:30;;;;9839:47;:79;;;;;9904:13;;;;;;;;;;;9890:28;;:2;:28;;;;9839:79;9835:356;;;9996:12;9954:28;:39;9983:9;9954:39;;;;;;;;;;;;;;;;:54;9946:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;10155:12;10113:28;:39;10142:9;10113:39;;;;;;;;;;;;;;;:54;;;;9835:356;9787:423;10280:31;:35;10312:2;10280:35;;;;;;;;;;;;;;;;;;;;;;;;;10275:710;;10362:20;;10352:6;:30;;10344:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10501:9;;10484:13;10494:2;10484:9;:13::i;:::-;10475:6;:22;;;;:::i;:::-;:35;;10467:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10275:710;;;10629:31;:37;10661:4;10629:37;;;;;;;;;;;;;;;;;;;;;;;;;10624:361;;10713:20;;10703:6;:30;;10695:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;10624:361;;;10839:31;:35;10871:2;10839:35;;;;;;;;;;;;;;;;;;;;;;;;;10835:150;;10932:9;;10915:13;10925:2;10915:9;:13::i;:::-;10906:6;:22;;;;:::i;:::-;:35;;10898:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10835:150;10624:361;10275:710;9271:1729;9239:1772;11021:28;11052:24;11070:4;11052:9;:24::i;:::-;11021:55;;11097:12;11136:18;;11112:20;:42;;11097:57;;11185:7;:35;;;;;11209:11;;;;;;;;;;;11185:35;:61;;;;;11238:8;;;;;;;;;;;11237:9;11185:61;:104;;;;;11264:19;:25;11284:4;11264:25;;;;;;;;;;;;;;;;;;;;;;;;;11263:26;11185:104;:145;;;;;11307:19;:23;11327:2;11307:23;;;;;;;;;;;;;;;;;;;;;;;;;11306:24;11185:145;11167:289;;;11368:4;11357:8;;:15;;;;;;;;;;;;;;;;;;11401:10;:8;:10::i;:::-;11439:5;11428:8;;:16;;;;;;;;;;;;;;;;;;11167:289;11480:8;;;;;;;;;;;11479:9;:26;;;;;11492:13;;;;;;;;;;;11479:26;11476:79;;;11521:22;11534:4;11540:2;11521:12;:22::i;:::-;;11476:79;11567:12;11583:8;;;;;;;;;;;11582:9;11567:24;;11692:19;:25;11712:4;11692:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;11721:19;:23;11741:2;11721:23;;;;;;;;;;;;;;;;;;;;;;;;;11692:52;11689:99;;;11771:5;11761:15;;11689:99;11808:12;11912:7;11909:911;;;11979:1;11963:13;;:17;11959:686;;;12007:34;12037:3;12007:25;12018:13;;12007:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;12000:41;;12108:13;;12089:16;;12082:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;12060:18;;:61;;;;;;;:::i;:::-;;;;;;;;12176:13;;12163:10;;12156:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;12140:12;;:49;;;;;;;:::i;:::-;;;;;;;;12256:13;;12237:16;;12230:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;12208:18;;:61;;;;;;;:::i;:::-;;;;;;;;11959:686;;;12345:1;12330:12;;:16;12327:318;;;12374:33;12403:3;12374:24;12385:12;;12374:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;12367:40;;12473:12;;12455:15;;12448:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;12426:18;;:59;;;;;;;:::i;:::-;;;;;;;;12539:12;;12527:9;;12520:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;12504:12;;:47;;;;;;;:::i;:::-;;;;;;;;12617:12;;12599:15;;12592:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;12570:18;;:59;;;;;;;:::i;:::-;;;;;;;;12327:318;11959:686;12683:1;12676:4;:8;12673:93;;;12708:42;12724:4;12738;12745;12708:15;:42::i;:::-;12673:93;12804:4;12794:14;;;;;:::i;:::-;;;11909:911;12830:33;12846:4;12852:2;12856:6;12830:15;:33::i;:::-;8951:3920;;;;8838:4033;;;;:::o;1227:192:2:-;1313:7;1346:1;1341;:6;;1349:12;1333:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1373:9;1389:1;1385;:5;;;;:::i;:::-;1373:17;;1410:1;1403:8;;;1227:192;;;;;:::o;7806:201:4:-;853:13:3;:11;:13::i;:::-;7937:4:4::1;7902:25;:32;7928:5;7902:32;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;7993:5;7987:4;7959:40;;;;;;;;;;;;7806:201:::0;;:::o;1678:471:2:-;1736:7;1986:1;1981;:6;1977:47;;;2011:1;2004:8;;;;1977:47;2036:9;2052:1;2048;:5;;;;:::i;:::-;2036:17;;2081:1;2076;2072;:5;;;;:::i;:::-;:10;2064:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2140:1;2133:8;;;1678:471;;;;;:::o;2625:132::-;2683:7;2710:39;2714:1;2717;2710:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2703:46;;2625:132;;;;:::o;9102:573:1:-;9260:1;9242:20;;:6;:20;;;;9234:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9344:1;9323:23;;:9;:23;;;;9315:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9399:47;9420:6;9428:9;9439:6;9399:20;:47::i;:::-;9479:71;9501:6;9479:71;;;;;;;;;;;;;;;;;:9;:17;9489:6;9479:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;9459:9;:17;9469:6;9459:17;;;;;;;;;;;;;;;:91;;;;9584:32;9609:6;9584:9;:20;9594:9;9584:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9561:9;:20;9571:9;9561:20;;;;;;;;;;;;;;;:55;;;;9649:9;9632:35;;9641:6;9632:35;;;9660:6;9632:35;;;;;;:::i;:::-;;;;;;;;9102:573;;;:::o;2272:135:3:-;2315:7;2345:14;2362:13;:11;:13::i;:::-;2345:30;;2393:6;2386:13;;;2272:135;:::o;14248:1043:4:-;14287:23;14313:24;14331:4;14313:9;:24::i;:::-;14287:50;;14348:25;14418:12;;14397:18;;14376;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;14348:82;;14441:12;14496:1;14477:15;:20;:46;;;;14522:1;14501:17;:22;14477:46;14474:60;;;14526:7;;;;;14474:60;14588:2;14567:18;;:23;;;;:::i;:::-;14549:15;:41;14546:111;;;14643:2;14622:18;;:23;;;;:::i;:::-;14604:41;;14546:111;14726:23;14811:1;14791:17;14770:18;;14752:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;14726:86;;14823:26;14852:36;14872:15;14852;:19;;:36;;;;:::i;:::-;14823:65;;14909:25;14937:21;14909:49;;14971:36;14988:18;14971:16;:36::i;:::-;15029:18;15050:44;15076:17;15050:21;:25;;:44;;;;:::i;:::-;15029:65;;15136:1;15115:18;:22;;;;15169:1;15148:18;:22;;;;15196:1;15181:12;:16;;;;15239:15;;;;;;;;;;;15231:29;;15268:10;15231:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15218:65;;;;;14276:1015;;;;;;;14248:1043;:::o;16932:670::-;16998:4;17050:23;17076:4;:14;;;17099:4;17076:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17050:55;;17169:26;17198:42;17234:5;17198:31;17218:10;;17198:15;:19;;:31;;;;:::i;:::-;:35;;:42;;;;:::i;:::-;17169:71;;17311:1;17254:59;;:25;:45;17280:18;17254:45;;;;;;;;;;;;;;;;;;;;;:59;;;17251:312;;17406:19;17443:25;:45;17469:18;17443:45;;;;;;;;;;;;;;;;;;;;;17406:83;;17504:4;:17;;;17522:4;17528:2;17532:18;17504:47;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17324:239;17251:312;17580:4;17573:11;;;;16932:670;;;;:::o;3253:278:2:-;3339:7;3371:1;3367;:5;3374:12;3359:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3398:9;3414:1;3410;:5;;;;:::i;:::-;3398:17;;3522:1;3515:8;;;3253:278;;;;;:::o;11761:125:1:-;;;;:::o;1997:114:3:-;2042:7;2084:1;2068:18;;:6;;;;;;;;;;:18;;;:35;;2097:6;;;;;;;;;;2068:35;;;2089:5;;;;;;;;;;;2068:35;2061:42;;1997:114;:::o;788:136:2:-;846:7;873:43;877:1;880;873:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;866:50;;788:136;;;;:::o;12879:601:4:-;13007:21;13045:1;13031:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13007:40;;13076:4;13058;13063:1;13058:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13102:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13092:4;13097:1;13092:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;13137:62;13154:4;13169:15;13187:11;13137:8;:62::i;:::-;13238:15;:66;;;13319:11;13345:1;13389:4;13416;13436:15;13238:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12934:546;12879:601;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:329::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:53;5463:7;5454:6;5443:9;5439:22;5418:53;:::i;:::-;5408:63;;5364:117;5159:329;;;;:::o;5494:619::-;5571:6;5579;5587;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5733:117;5889:2;5915:53;5960:7;5951:6;5940:9;5936:22;5915:53;:::i;:::-;5905:63;;5860:118;6017:2;6043:53;6088:7;6079:6;6068:9;6064:22;6043:53;:::i;:::-;6033:63;;5988:118;5494:619;;;;;:::o;6119:117::-;6228:1;6225;6218:12;6242:117;6351:1;6348;6341:12;6365:117;6474:1;6471;6464:12;6505:568;6578:8;6588:6;6638:3;6631:4;6623:6;6619:17;6615:27;6605:122;;6646:79;;:::i;:::-;6605:122;6759:6;6746:20;6736:30;;6789:18;6781:6;6778:30;6775:117;;;6811:79;;:::i;:::-;6775:117;6925:4;6917:6;6913:17;6901:29;;6979:3;6971:4;6963:6;6959:17;6949:8;6945:32;6942:41;6939:128;;;6986:79;;:::i;:::-;6939:128;6505:568;;;;;:::o;7079:704::-;7174:6;7182;7190;7239:2;7227:9;7218:7;7214:23;7210:32;7207:119;;;7245:79;;:::i;:::-;7207:119;7393:1;7382:9;7378:17;7365:31;7423:18;7415:6;7412:30;7409:117;;;7445:79;;:::i;:::-;7409:117;7558:80;7630:7;7621:6;7610:9;7606:22;7558:80;:::i;:::-;7540:98;;;;7336:312;7687:2;7713:53;7758:7;7749:6;7738:9;7734:22;7713:53;:::i;:::-;7703:63;;7658:118;7079:704;;;;;:::o;7789:118::-;7876:24;7894:5;7876:24;:::i;:::-;7871:3;7864:37;7789:118;;:::o;7913:222::-;8006:4;8044:2;8033:9;8029:18;8021:26;;8057:71;8125:1;8114:9;8110:17;8101:6;8057:71;:::i;:::-;7913:222;;;;:::o;8141:86::-;8176:7;8216:4;8209:5;8205:16;8194:27;;8141:86;;;:::o;8233:112::-;8316:22;8332:5;8316:22;:::i;:::-;8311:3;8304:35;8233:112;;:::o;8351:214::-;8440:4;8478:2;8467:9;8463:18;8455:26;;8491:67;8555:1;8544:9;8540:17;8531:6;8491:67;:::i;:::-;8351:214;;;;:::o;8571:116::-;8641:21;8656:5;8641:21;:::i;:::-;8634:5;8631:32;8621:60;;8677:1;8674;8667:12;8621:60;8571:116;:::o;8693:133::-;8736:5;8774:6;8761:20;8752:29;;8790:30;8814:5;8790:30;:::i;:::-;8693:133;;;;:::o;8832:613::-;8906:6;8914;8922;8971:2;8959:9;8950:7;8946:23;8942:32;8939:119;;;8977:79;;:::i;:::-;8939:119;9097:1;9122:53;9167:7;9158:6;9147:9;9143:22;9122:53;:::i;:::-;9112:63;;9068:117;9224:2;9250:53;9295:7;9286:6;9275:9;9271:22;9250:53;:::i;:::-;9240:63;;9195:118;9352:2;9378:50;9420:7;9411:6;9400:9;9396:22;9378:50;:::i;:::-;9368:60;;9323:115;8832:613;;;;;:::o;9451:468::-;9516:6;9524;9573:2;9561:9;9552:7;9548:23;9544:32;9541:119;;;9579:79;;:::i;:::-;9541:119;9699:1;9724:53;9769:7;9760:6;9749:9;9745:22;9724:53;:::i;:::-;9714:63;;9670:117;9826:2;9852:50;9894:7;9885:6;9874:9;9870:22;9852:50;:::i;:::-;9842:60;;9797:115;9451:468;;;;;:::o;9925:619::-;10002:6;10010;10018;10067:2;10055:9;10046:7;10042:23;10038:32;10035:119;;;10073:79;;:::i;:::-;10035:119;10193:1;10218:53;10263:7;10254:6;10243:9;10239:22;10218:53;:::i;:::-;10208:63;;10164:117;10320:2;10346:53;10391:7;10382:6;10371:9;10367:22;10346:53;:::i;:::-;10336:63;;10291:118;10448:2;10474:53;10519:7;10510:6;10499:9;10495:22;10474:53;:::i;:::-;10464:63;;10419:118;9925:619;;;;;:::o;10550:323::-;10606:6;10655:2;10643:9;10634:7;10630:23;10626:32;10623:119;;;10661:79;;:::i;:::-;10623:119;10781:1;10806:50;10848:7;10839:6;10828:9;10824:22;10806:50;:::i;:::-;10796:60;;10752:114;10550:323;;;;:::o;10879:474::-;10947:6;10955;11004:2;10992:9;10983:7;10979:23;10975:32;10972:119;;;11010:79;;:::i;:::-;10972:119;11130:1;11155:53;11200:7;11191:6;11180:9;11176:22;11155:53;:::i;:::-;11145:63;;11101:117;11257:2;11283:53;11328:7;11319:6;11308:9;11304:22;11283:53;:::i;:::-;11273:63;;11228:118;10879:474;;;;;:::o;11359:698::-;11451:6;11459;11467;11516:2;11504:9;11495:7;11491:23;11487:32;11484:119;;;11522:79;;:::i;:::-;11484:119;11670:1;11659:9;11655:17;11642:31;11700:18;11692:6;11689:30;11686:117;;;11722:79;;:::i;:::-;11686:117;11835:80;11907:7;11898:6;11887:9;11883:22;11835:80;:::i;:::-;11817:98;;;;11613:312;11964:2;11990:50;12032:7;12023:6;12012:9;12008:22;11990:50;:::i;:::-;11980:60;;11935:115;11359:698;;;;;:::o;12063:180::-;12111:77;12108:1;12101:88;12208:4;12205:1;12198:15;12232:4;12229:1;12222:15;12249:320;12293:6;12330:1;12324:4;12320:12;12310:22;;12377:1;12371:4;12367:12;12398:18;12388:81;;12454:4;12446:6;12442:17;12432:27;;12388:81;12516:2;12508:6;12505:14;12485:18;12482:38;12479:84;;;12535:18;;:::i;:::-;12479:84;12300:269;12249:320;;;:::o;12575:180::-;12623:77;12620:1;12613:88;12720:4;12717:1;12710:15;12744:4;12741:1;12734:15;12761:348;12801:7;12824:20;12842:1;12824:20;:::i;:::-;12819:25;;12858:20;12876:1;12858:20;:::i;:::-;12853:25;;13046:1;12978:66;12974:74;12971:1;12968:81;12963:1;12956:9;12949:17;12945:105;12942:131;;;13053:18;;:::i;:::-;12942:131;13101:1;13098;13094:9;13083:20;;12761:348;;;;:::o;13115:180::-;13163:77;13160:1;13153:88;13260:4;13257:1;13250:15;13284:4;13281:1;13274:15;13301:185;13341:1;13358:20;13376:1;13358:20;:::i;:::-;13353:25;;13392:20;13410:1;13392:20;:::i;:::-;13387:25;;13431:1;13421:35;;13436:18;;:::i;:::-;13421:35;13478:1;13475;13471:9;13466:14;;13301:185;;;;:::o;13492:234::-;13632:34;13628:1;13620:6;13616:14;13609:58;13701:17;13696:2;13688:6;13684:15;13677:42;13492:234;:::o;13732:366::-;13874:3;13895:67;13959:2;13954:3;13895:67;:::i;:::-;13888:74;;13971:93;14060:3;13971:93;:::i;:::-;14089:2;14084:3;14080:12;14073:19;;13732:366;;;:::o;14104:419::-;14270:4;14308:2;14297:9;14293:18;14285:26;;14357:9;14351:4;14347:20;14343:1;14332:9;14328:17;14321:47;14385:131;14511:4;14385:131;:::i;:::-;14377:139;;14104:419;;;:::o;14529:180::-;14577:77;14574:1;14567:88;14674:4;14671:1;14664:15;14698:4;14695:1;14688:15;14715:233;14754:3;14777:24;14795:5;14777:24;:::i;:::-;14768:33;;14823:66;14816:5;14813:77;14810:103;;;14893:18;;:::i;:::-;14810:103;14940:1;14933:5;14929:13;14922:20;;14715:233;;;:::o;14954:238::-;15094:34;15090:1;15082:6;15078:14;15071:58;15163:21;15158:2;15150:6;15146:15;15139:46;14954:238;:::o;15198:366::-;15340:3;15361:67;15425:2;15420:3;15361:67;:::i;:::-;15354:74;;15437:93;15526:3;15437:93;:::i;:::-;15555:2;15550:3;15546:12;15539:19;;15198:366;;;:::o;15570:419::-;15736:4;15774:2;15763:9;15759:18;15751:26;;15823:9;15817:4;15813:20;15809:1;15798:9;15794:17;15787:47;15851:131;15977:4;15851:131;:::i;:::-;15843:139;;15570:419;;;:::o;15995:235::-;16135:34;16131:1;16123:6;16119:14;16112:58;16204:18;16199:2;16191:6;16187:15;16180:43;15995:235;:::o;16236:366::-;16378:3;16399:67;16463:2;16458:3;16399:67;:::i;:::-;16392:74;;16475:93;16564:3;16475:93;:::i;:::-;16593:2;16588:3;16584:12;16577:19;;16236:366;;;:::o;16608:419::-;16774:4;16812:2;16801:9;16797:18;16789:26;;16861:9;16855:4;16851:20;16847:1;16836:9;16832:17;16825:47;16889:131;17015:4;16889:131;:::i;:::-;16881:139;;16608:419;;;:::o;17033:305::-;17073:3;17092:20;17110:1;17092:20;:::i;:::-;17087:25;;17126:20;17144:1;17126:20;:::i;:::-;17121:25;;17280:1;17212:66;17208:74;17205:1;17202:81;17199:107;;;17286:18;;:::i;:::-;17199:107;17330:1;17327;17323:9;17316:16;;17033:305;;;;:::o;17344:179::-;17484:31;17480:1;17472:6;17468:14;17461:55;17344:179;:::o;17529:366::-;17671:3;17692:67;17756:2;17751:3;17692:67;:::i;:::-;17685:74;;17768:93;17857:3;17768:93;:::i;:::-;17886:2;17881:3;17877:12;17870:19;;17529:366;;;:::o;17901:419::-;18067:4;18105:2;18094:9;18090:18;18082:26;;18154:9;18148:4;18144:20;18140:1;18129:9;18125:17;18118:47;18182:131;18308:4;18182:131;:::i;:::-;18174:139;;17901:419;;;:::o;18326:179::-;18466:31;18462:1;18454:6;18450:14;18443:55;18326:179;:::o;18511:366::-;18653:3;18674:67;18738:2;18733:3;18674:67;:::i;:::-;18667:74;;18750:93;18839:3;18750:93;:::i;:::-;18868:2;18863:3;18859:12;18852:19;;18511:366;;;:::o;18883:419::-;19049:4;19087:2;19076:9;19072:18;19064:26;;19136:9;19130:4;19126:20;19122:1;19111:9;19107:17;19100:47;19164:131;19290:4;19164:131;:::i;:::-;19156:139;;18883:419;;;:::o;19308:223::-;19448:34;19444:1;19436:6;19432:14;19425:58;19517:6;19512:2;19504:6;19500:15;19493:31;19308:223;:::o;19537:366::-;19679:3;19700:67;19764:2;19759:3;19700:67;:::i;:::-;19693:74;;19776:93;19865:3;19776:93;:::i;:::-;19894:2;19889:3;19885:12;19878:19;;19537:366;;;:::o;19909:419::-;20075:4;20113:2;20102:9;20098:18;20090:26;;20162:9;20156:4;20152:20;20148:1;20137:9;20133:17;20126:47;20190:131;20316:4;20190:131;:::i;:::-;20182:139;;19909:419;;;:::o;20334:240::-;20474:34;20470:1;20462:6;20458:14;20451:58;20543:23;20538:2;20530:6;20526:15;20519:48;20334:240;:::o;20580:366::-;20722:3;20743:67;20807:2;20802:3;20743:67;:::i;:::-;20736:74;;20819:93;20908:3;20819:93;:::i;:::-;20937:2;20932:3;20928:12;20921:19;;20580:366;;;:::o;20952:419::-;21118:4;21156:2;21145:9;21141:18;21133:26;;21205:9;21199:4;21195:20;21191:1;21180:9;21176:17;21169:47;21233:131;21359:4;21233:131;:::i;:::-;21225:139;;20952:419;;;:::o;21377:237::-;21517:34;21513:1;21505:6;21501:14;21494:58;21586:20;21581:2;21573:6;21569:15;21562:45;21377:237;:::o;21620:366::-;21762:3;21783:67;21847:2;21842:3;21783:67;:::i;:::-;21776:74;;21859:93;21948:3;21859:93;:::i;:::-;21977:2;21972:3;21968:12;21961:19;;21620:366;;;:::o;21992:419::-;22158:4;22196:2;22185:9;22181:18;22173:26;;22245:9;22239:4;22235:20;22231:1;22220:9;22216:17;22209:47;22273:131;22399:4;22273:131;:::i;:::-;22265:139;;21992:419;;;:::o;22417:225::-;22557:34;22553:1;22545:6;22541:14;22534:58;22626:8;22621:2;22613:6;22609:15;22602:33;22417:225;:::o;22648:366::-;22790:3;22811:67;22875:2;22870:3;22811:67;:::i;:::-;22804:74;;22887:93;22976:3;22887:93;:::i;:::-;23005:2;23000:3;22996:12;22989:19;;22648:366;;;:::o;23020:419::-;23186:4;23224:2;23213:9;23209:18;23201:26;;23273:9;23267:4;23263:20;23259:1;23248:9;23244:17;23237:47;23301:131;23427:4;23301:131;:::i;:::-;23293:139;;23020:419;;;:::o;23445:182::-;23585:34;23581:1;23573:6;23569:14;23562:58;23445:182;:::o;23633:366::-;23775:3;23796:67;23860:2;23855:3;23796:67;:::i;:::-;23789:74;;23872:93;23961:3;23872:93;:::i;:::-;23990:2;23985:3;23981:12;23974:19;;23633:366;;;:::o;24005:419::-;24171:4;24209:2;24198:9;24194:18;24186:26;;24258:9;24252:4;24248:20;24244:1;24233:9;24229:17;24222:47;24286:131;24412:4;24286:131;:::i;:::-;24278:139;;24005:419;;;:::o;24430:229::-;24570:34;24566:1;24558:6;24554:14;24547:58;24639:12;24634:2;24626:6;24622:15;24615:37;24430:229;:::o;24665:366::-;24807:3;24828:67;24892:2;24887:3;24828:67;:::i;:::-;24821:74;;24904:93;24993:3;24904:93;:::i;:::-;25022:2;25017:3;25013:12;25006:19;;24665:366;;;:::o;25037:419::-;25203:4;25241:2;25230:9;25226:18;25218:26;;25290:9;25284:4;25280:20;25276:1;25265:9;25261:17;25254:47;25318:131;25444:4;25318:131;:::i;:::-;25310:139;;25037:419;;;:::o;25462:177::-;25602:29;25598:1;25590:6;25586:14;25579:53;25462:177;:::o;25645:366::-;25787:3;25808:67;25872:2;25867:3;25808:67;:::i;:::-;25801:74;;25884:93;25973:3;25884:93;:::i;:::-;26002:2;25997:3;25993:12;25986:19;;25645:366;;;:::o;26017:419::-;26183:4;26221:2;26210:9;26206:18;26198:26;;26270:9;26264:4;26260:20;26256:1;26245:9;26241:17;26234:47;26298:131;26424:4;26298:131;:::i;:::-;26290:139;;26017:419;;;:::o;26442:223::-;26582:34;26578:1;26570:6;26566:14;26559:58;26651:6;26646:2;26638:6;26634:15;26627:31;26442:223;:::o;26671:366::-;26813:3;26834:67;26898:2;26893:3;26834:67;:::i;:::-;26827:74;;26910:93;26999:3;26910:93;:::i;:::-;27028:2;27023:3;27019:12;27012:19;;26671:366;;;:::o;27043:419::-;27209:4;27247:2;27236:9;27232:18;27224:26;;27296:9;27290:4;27286:20;27282:1;27271:9;27267:17;27260:47;27324:131;27450:4;27324:131;:::i;:::-;27316:139;;27043:419;;;:::o;27468:221::-;27608:34;27604:1;27596:6;27592:14;27585:58;27677:4;27672:2;27664:6;27660:15;27653:29;27468:221;:::o;27695:366::-;27837:3;27858:67;27922:2;27917:3;27858:67;:::i;:::-;27851:74;;27934:93;28023:3;27934:93;:::i;:::-;28052:2;28047:3;28043:12;28036:19;;27695:366;;;:::o;28067:419::-;28233:4;28271:2;28260:9;28256:18;28248:26;;28320:9;28314:4;28310:20;28306:1;28295:9;28291:17;28284:47;28348:131;28474:4;28348:131;:::i;:::-;28340:139;;28067:419;;;:::o;28492:182::-;28632:34;28628:1;28620:6;28616:14;28609:58;28492:182;:::o;28680:366::-;28822:3;28843:67;28907:2;28902:3;28843:67;:::i;:::-;28836:74;;28919:93;29008:3;28919:93;:::i;:::-;29037:2;29032:3;29028:12;29021:19;;28680:366;;;:::o;29052:419::-;29218:4;29256:2;29245:9;29241:18;29233:26;;29305:9;29299:4;29295:20;29291:1;29280:9;29276:17;29269:47;29333:131;29459:4;29333:131;:::i;:::-;29325:139;;29052:419;;;:::o;29477:224::-;29617:34;29613:1;29605:6;29601:14;29594:58;29686:7;29681:2;29673:6;29669:15;29662:32;29477:224;:::o;29707:366::-;29849:3;29870:67;29934:2;29929:3;29870:67;:::i;:::-;29863:74;;29946:93;30035:3;29946:93;:::i;:::-;30064:2;30059:3;30055:12;30048:19;;29707:366;;;:::o;30079:419::-;30245:4;30283:2;30272:9;30268:18;30260:26;;30332:9;30326:4;30322:20;30318:1;30307:9;30303:17;30296:47;30360:131;30486:4;30360:131;:::i;:::-;30352:139;;30079:419;;;:::o;30504:222::-;30644:34;30640:1;30632:6;30628:14;30621:58;30713:5;30708:2;30700:6;30696:15;30689:30;30504:222;:::o;30732:366::-;30874:3;30895:67;30959:2;30954:3;30895:67;:::i;:::-;30888:74;;30971:93;31060:3;30971:93;:::i;:::-;31089:2;31084:3;31080:12;31073:19;;30732:366;;;:::o;31104:419::-;31270:4;31308:2;31297:9;31293:18;31285:26;;31357:9;31351:4;31347:20;31343:1;31332:9;31328:17;31321:47;31385:131;31511:4;31385:131;:::i;:::-;31377:139;;31104:419;;;:::o;31529:172::-;31669:24;31665:1;31657:6;31653:14;31646:48;31529:172;:::o;31707:366::-;31849:3;31870:67;31934:2;31929:3;31870:67;:::i;:::-;31863:74;;31946:93;32035:3;31946:93;:::i;:::-;32064:2;32059:3;32055:12;32048:19;;31707:366;;;:::o;32079:419::-;32245:4;32283:2;32272:9;32268:18;32260:26;;32332:9;32326:4;32322:20;32318:1;32307:9;32303:17;32296:47;32360:131;32486:4;32360:131;:::i;:::-;32352:139;;32079:419;;;:::o;32504:297::-;32644:34;32640:1;32632:6;32628:14;32621:58;32713:34;32708:2;32700:6;32696:15;32689:59;32782:11;32777:2;32769:6;32765:15;32758:36;32504:297;:::o;32807:366::-;32949:3;32970:67;33034:2;33029:3;32970:67;:::i;:::-;32963:74;;33046:93;33135:3;33046:93;:::i;:::-;33164:2;33159:3;33155:12;33148:19;;32807:366;;;:::o;33179:419::-;33345:4;33383:2;33372:9;33368:18;33360:26;;33432:9;33426:4;33422:20;33418:1;33407:9;33403:17;33396:47;33460:131;33586:4;33460:131;:::i;:::-;33452:139;;33179:419;;;:::o;33604:240::-;33744:34;33740:1;33732:6;33728:14;33721:58;33813:23;33808:2;33800:6;33796:15;33789:48;33604:240;:::o;33850:366::-;33992:3;34013:67;34077:2;34072:3;34013:67;:::i;:::-;34006:74;;34089:93;34178:3;34089:93;:::i;:::-;34207:2;34202:3;34198:12;34191:19;;33850:366;;;:::o;34222:419::-;34388:4;34426:2;34415:9;34411:18;34403:26;;34475:9;34469:4;34465:20;34461:1;34450:9;34446:17;34439:47;34503:131;34629:4;34503:131;:::i;:::-;34495:139;;34222:419;;;:::o;34647:169::-;34787:21;34783:1;34775:6;34771:14;34764:45;34647:169;:::o;34822:366::-;34964:3;34985:67;35049:2;35044:3;34985:67;:::i;:::-;34978:74;;35061:93;35150:3;35061:93;:::i;:::-;35179:2;35174:3;35170:12;35163:19;;34822:366;;;:::o;35194:419::-;35360:4;35398:2;35387:9;35383:18;35375:26;;35447:9;35441:4;35437:20;35433:1;35422:9;35418:17;35411:47;35475:131;35601:4;35475:131;:::i;:::-;35467:139;;35194:419;;;:::o;35619:241::-;35759:34;35755:1;35747:6;35743:14;35736:58;35828:24;35823:2;35815:6;35811:15;35804:49;35619:241;:::o;35866:366::-;36008:3;36029:67;36093:2;36088:3;36029:67;:::i;:::-;36022:74;;36105:93;36194:3;36105:93;:::i;:::-;36223:2;36218:3;36214:12;36207:19;;35866:366;;;:::o;36238:419::-;36404:4;36442:2;36431:9;36427:18;36419:26;;36491:9;36485:4;36481:20;36477:1;36466:9;36462:17;36455:47;36519:131;36645:4;36519:131;:::i;:::-;36511:139;;36238:419;;;:::o;36663:191::-;36703:4;36723:20;36741:1;36723:20;:::i;:::-;36718:25;;36757:20;36775:1;36757:20;:::i;:::-;36752:25;;36796:1;36793;36790:8;36787:34;;;36801:18;;:::i;:::-;36787:34;36846:1;36843;36839:9;36831:17;;36663:191;;;;:::o;36860:220::-;37000:34;36996:1;36988:6;36984:14;36977:58;37069:3;37064:2;37056:6;37052:15;37045:28;36860:220;:::o;37086:366::-;37228:3;37249:67;37313:2;37308:3;37249:67;:::i;:::-;37242:74;;37325:93;37414:3;37325:93;:::i;:::-;37443:2;37438:3;37434:12;37427:19;;37086:366;;;:::o;37458:419::-;37624:4;37662:2;37651:9;37647:18;37639:26;;37711:9;37705:4;37701:20;37697:1;37686:9;37682:17;37675:47;37739:131;37865:4;37739:131;:::i;:::-;37731:139;;37458:419;;;:::o;37883:147::-;37984:11;38021:3;38006:18;;37883:147;;;;:::o;38036:114::-;;:::o;38156:398::-;38315:3;38336:83;38417:1;38412:3;38336:83;:::i;:::-;38329:90;;38428:93;38517:3;38428:93;:::i;:::-;38546:1;38541:3;38537:11;38530:18;;38156:398;;;:::o;38560:379::-;38744:3;38766:147;38909:3;38766:147;:::i;:::-;38759:154;;38930:3;38923:10;;38560:379;;;:::o;38945:143::-;39002:5;39033:6;39027:13;39018:22;;39049:33;39076:5;39049:33;:::i;:::-;38945:143;;;;:::o;39094:351::-;39164:6;39213:2;39201:9;39192:7;39188:23;39184:32;39181:119;;;39219:79;;:::i;:::-;39181:119;39339:1;39364:64;39420:7;39411:6;39400:9;39396:22;39364:64;:::i;:::-;39354:74;;39310:128;39094:351;;;;:::o;39451:442::-;39600:4;39638:2;39627:9;39623:18;39615:26;;39651:71;39719:1;39708:9;39704:17;39695:6;39651:71;:::i;:::-;39732:72;39800:2;39789:9;39785:18;39776:6;39732:72;:::i;:::-;39814;39882:2;39871:9;39867:18;39858:6;39814:72;:::i;:::-;39451:442;;;;;;:::o;39899:137::-;39953:5;39984:6;39978:13;39969:22;;40000:30;40024:5;40000:30;:::i;:::-;39899:137;;;;:::o;40042:345::-;40109:6;40158:2;40146:9;40137:7;40133:23;40129:32;40126:119;;;40164:79;;:::i;:::-;40126:119;40284:1;40309:61;40362:7;40353:6;40342:9;40338:22;40309:61;:::i;:::-;40299:71;;40255:125;40042:345;;;;:::o;40393:180::-;40441:77;40438:1;40431:88;40538:4;40535:1;40528:15;40562:4;40559:1;40552:15;40579:143;40636:5;40667:6;40661:13;40652:22;;40683:33;40710:5;40683:33;:::i;:::-;40579:143;;;;:::o;40728:351::-;40798:6;40847:2;40835:9;40826:7;40822:23;40818:32;40815:119;;;40853:79;;:::i;:::-;40815:119;40973:1;40998:64;41054:7;41045:6;41034:9;41030:22;40998:64;:::i;:::-;40988:74;;40944:128;40728:351;;;;:::o;41085:85::-;41130:7;41159:5;41148:16;;41085:85;;;:::o;41176:158::-;41234:9;41267:61;41285:42;41294:32;41320:5;41294:32;:::i;:::-;41285:42;:::i;:::-;41267:61;:::i;:::-;41254:74;;41176:158;;;:::o;41340:147::-;41435:45;41474:5;41435:45;:::i;:::-;41430:3;41423:58;41340:147;;:::o;41493:114::-;41560:6;41594:5;41588:12;41578:22;;41493:114;;;:::o;41613:184::-;41712:11;41746:6;41741:3;41734:19;41786:4;41781:3;41777:14;41762:29;;41613:184;;;;:::o;41803:132::-;41870:4;41893:3;41885:11;;41923:4;41918:3;41914:14;41906:22;;41803:132;;;:::o;41941:108::-;42018:24;42036:5;42018:24;:::i;:::-;42013:3;42006:37;41941:108;;:::o;42055:179::-;42124:10;42145:46;42187:3;42179:6;42145:46;:::i;:::-;42223:4;42218:3;42214:14;42200:28;;42055:179;;;;:::o;42240:113::-;42310:4;42342;42337:3;42333:14;42325:22;;42240:113;;;:::o;42389:732::-;42508:3;42537:54;42585:5;42537:54;:::i;:::-;42607:86;42686:6;42681:3;42607:86;:::i;:::-;42600:93;;42717:56;42767:5;42717:56;:::i;:::-;42796:7;42827:1;42812:284;42837:6;42834:1;42831:13;42812:284;;;42913:6;42907:13;42940:63;42999:3;42984:13;42940:63;:::i;:::-;42933:70;;43026:60;43079:6;43026:60;:::i;:::-;43016:70;;42872:224;42859:1;42856;42852:9;42847:14;;42812:284;;;42816:14;43112:3;43105:10;;42513:608;;;42389:732;;;;:::o;43127:831::-;43390:4;43428:3;43417:9;43413:19;43405:27;;43442:71;43510:1;43499:9;43495:17;43486:6;43442:71;:::i;:::-;43523:80;43599:2;43588:9;43584:18;43575:6;43523:80;:::i;:::-;43650:9;43644:4;43640:20;43635:2;43624:9;43620:18;43613:48;43678:108;43781:4;43772:6;43678:108;:::i;:::-;43670:116;;43796:72;43864:2;43853:9;43849:18;43840:6;43796:72;:::i;:::-;43878:73;43946:3;43935:9;43931:19;43922:6;43878:73;:::i;:::-;43127:831;;;;;;;;:::o
Swarm Source
ipfs://20e135b77fbe176378e4778528dabfec708b242439a500e9a1f6f9fbf808505a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.