ERC-20
Overview
Max Total Supply
1,000,000,000 BEWD
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,271,594.925964324 BEWDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BlueEyesWhiteDragon
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-06 */ /** * Blue Eyes White Dragon * * Telegram: https://t.me/BlueEyesWhiteDragon_ERC * Twitter: https://twitter.com/BlueEWDragonERC */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract BlueEyesWhiteDragon is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); string private constant _name = "BlueEyesWhiteDragon"; string private constant _symbol = "BEWD"; uint8 private constant _decimals = 9; bool private swapping; address public marketingWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyTotalFees; uint256 private buyMarketingFee; uint256 private buyLiquidityFee; uint256 public sellTotalFees; uint256 private sellMarketingFee; uint256 private sellLiquidityFee; uint256 private tokensForMarketing; uint256 private tokensForLiquidity; uint256 private previousFee; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; mapping(address => bool) public bots; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated( address indexed newWallet, address indexed oldWallet ); event SwapAndLiquidity( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20(_name, _symbol, _decimals) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMarketingFee = 10; uint256 _buyLiquidityFee = 0; uint256 _sellMarketingFee = 40; uint256 _sellLiquidityFee = 0; uint256 totalSupply = 1000000000 * 10**_decimals; maxTransactionAmount = (totalSupply * 2) / 100; maxWallet = (totalSupply * 2) / 100; swapTokensAtAmount = (totalSupply * 5) / 10000; buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyTotalFees = buyMarketingFee + buyLiquidityFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellTotalFees = sellMarketingFee + sellLiquidityFee; previousFee = sellTotalFees; marketingWallet = address(0xaACDF30338e7f4b274EF1644cD86C585C2fBB4Bb); excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableTrading() external onlyOwner { tradingActive = !tradingActive; swapEnabled = tradingActive; } 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() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply." ); swapTokensAtAmount = newAmount; return true; } function updateMaxWalletAndTxnAmount(uint256 newTxnNum, uint256 newMaxWalletNum) external onlyOwner { require( newTxnNum >= ((totalSupply() * 5) / 1000) / 10**_decimals, "Cannot set maxTxn lower than 0.5%" ); require( newMaxWalletNum >= ((totalSupply() * 5) / 1000) / 10**_decimals, "Cannot set maxWallet lower than 0.5%" ); maxWallet = newMaxWalletNum * (10**_decimals); maxTransactionAmount = newTxnNum * (10**_decimals); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner { buyMarketingFee = _marketingFee; buyLiquidityFee = _liquidityFee; buyTotalFees = buyMarketingFee + buyLiquidityFee; require(buyTotalFees <= 15, "Must keep fees at 15% or less"); } function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner { sellMarketingFee = _marketingFee; sellLiquidityFee = _liquidityFee; sellTotalFees = sellMarketingFee + sellLiquidityFee; previousFee = sellTotalFees; require(sellTotalFees <= 15, "Must keep fees at 15% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function excludeMultipleFromFees(address[] calldata accounts, bool excluded) external onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { excludeFromFees(accounts[i], excluded); } } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function excludeBots(address[] calldata accounts, bool excluded) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { bots[accounts[i]] = excluded; } } function updateMarketingWallet(address newWallet) external onlyOwner { require(newWallet != address(0), "Fee Address cannot be zero address"); address oldAddress = marketingWallet; marketingWallet = newWallet; emit marketingWalletUpdated(newWallet, oldAddress); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } 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 ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } require(!bots[from] && !bots[to], "Your wallet is blacklisted!"); //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_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 && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); sellTotalFees = previousFee; } function swapTokensForEth(uint256 tokenAmount) private { 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, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, deadAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } 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); uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div( totalTokensToSwap ); uint256 ethForLiquidity = ethBalance - ethForMarketing; tokensForLiquidity = 0; tokensForMarketing = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquidity( amountToSwapForETH, ethForLiquidity, tokensForLiquidity ); } (success, ) = address(marketingWallet).call{value: address(this).balance}(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"bool","name":"value","type":"bool"}],"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":"SwapAndLiquidity","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":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeBots","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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleFromFees","outputs":[],"stateMutability":"nonpayable","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":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"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":"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":[{"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"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxnNum","type":"uint256"},{"internalType":"uint256","name":"newMaxWalletNum","type":"uint256"}],"name":"updateMaxWalletAndTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","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
60c06040526000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280601381526020017f426c7565457965735768697465447261676f6e000000000000000000000000008152506040518060400160405280600481526020017f424557440000000000000000000000000000000000000000000000000000000081525060098260039081620000c7919062000cec565b508160049081620000d9919062000cec565b5080600560006101000a81548160ff021916908360ff160217905550505050620001186200010c6200053360201b60201c565b6200053b60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001448160016200060160201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ea919062000e3d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000252573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000278919062000e3d565b6040518363ffffffff1660e01b81526004016200029792919062000e80565b6020604051808303816000875af1158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000e3d565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200032560a05160016200060160201b60201c565b6200033a60a0516001620006eb60201b60201c565b6000600a9050600080602890506000806009600a6200035a91906200103d565b633b9aca006200036b91906200108e565b905060646002826200037e91906200108e565b6200038a919062001108565b6007819055506064600282620003a191906200108e565b620003ad919062001108565b600981905550612710600582620003c591906200108e565b620003d1919062001108565b60088190555084600c8190555083600d81905550600d54600c54620003f7919062001140565b600b8190555082600f8190555081601081905550601054600f546200041d919062001140565b600e81905550600e5460138190555073aacdf30338e7f4b274ef1644cd86c585c2fbb4bb600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004a3620004956200078c60201b60201c565b6001620007b660201b60201c565b620004b6306001620007b660201b60201c565b620004cb61dead6001620007b660201b60201c565b620004ed620004df6200078c60201b60201c565b60016200060160201b60201c565b620005003060016200060160201b60201c565b6200051561dead60016200060160201b60201c565b620005273382620008f060201b60201c565b505050505050620012d8565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006116200053360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006376200078c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000690576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200068790620011dc565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007c66200053360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007ec6200078c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000845576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200083c90620011dc565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620008e491906200121b565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000962576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009599062001288565b60405180910390fd5b620009766000838362000a6860201b60201c565b80600260008282546200098a919062001140565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009e1919062001140565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a489190620012bb565b60405180910390a362000a646000838362000a6d60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000af457607f821691505b60208210810362000b0a5762000b0962000aac565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b35565b62000b80868362000b35565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000bcd62000bc762000bc18462000b98565b62000ba2565b62000b98565b9050919050565b6000819050919050565b62000be98362000bac565b62000c0162000bf88262000bd4565b84845462000b42565b825550505050565b600090565b62000c1862000c09565b62000c2581848462000bde565b505050565b5b8181101562000c4d5762000c4160008262000c0e565b60018101905062000c2b565b5050565b601f82111562000c9c5762000c668162000b10565b62000c718462000b25565b8101602085101562000c81578190505b62000c9962000c908562000b25565b83018262000c2a565b50505b505050565b600082821c905092915050565b600062000cc16000198460080262000ca1565b1980831691505092915050565b600062000cdc838362000cae565b9150826002028217905092915050565b62000cf78262000a72565b67ffffffffffffffff81111562000d135762000d1262000a7d565b5b62000d1f825462000adb565b62000d2c82828562000c51565b600060209050601f83116001811462000d64576000841562000d4f578287015190505b62000d5b858262000cce565b86555062000dcb565b601f19841662000d748662000b10565b60005b8281101562000d9e5784890151825560018201915060208501945060208101905062000d77565b8683101562000dbe578489015162000dba601f89168262000cae565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e058262000dd8565b9050919050565b62000e178162000df8565b811462000e2357600080fd5b50565b60008151905062000e378162000e0c565b92915050565b60006020828403121562000e565762000e5562000dd3565b5b600062000e668482850162000e26565b91505092915050565b62000e7a8162000df8565b82525050565b600060408201905062000e97600083018562000e6f565b62000ea6602083018462000e6f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000f3b5780860481111562000f135762000f1262000ead565b5b600185161562000f235780820291505b808102905062000f338562000edc565b945062000ef3565b94509492505050565b60008262000f56576001905062001029565b8162000f66576000905062001029565b816001811462000f7f576002811462000f8a5762000fc0565b600191505062001029565b60ff84111562000f9f5762000f9e62000ead565b5b8360020a91508482111562000fb95762000fb862000ead565b5b5062001029565b5060208310610133831016604e8410600b841016171562000ffa5782820a90508381111562000ff45762000ff362000ead565b5b62001029565b62001009848484600162000ee9565b9250905081840481111562001023576200102262000ead565b5b81810290505b9392505050565b600060ff82169050919050565b60006200104a8262000b98565b9150620010578362001030565b9250620010867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f44565b905092915050565b60006200109b8262000b98565b9150620010a88362000b98565b9250828202620010b88162000b98565b91508282048414831517620010d257620010d162000ead565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011158262000b98565b9150620011228362000b98565b925082620011355762001134620010d9565b5b828204905092915050565b60006200114d8262000b98565b91506200115a8362000b98565b925082820190508082111562001175576200117462000ead565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620011c46020836200117b565b9150620011d1826200118c565b602082019050919050565b60006020820190508181036000830152620011f781620011b5565b9050919050565b60008115159050919050565b6200121581620011fe565b82525050565b60006020820190506200123260008301846200120a565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001270601f836200117b565b91506200127d8262001238565b602082019050919050565b60006020820190508181036000830152620012a38162001261565b9050919050565b620012b58162000b98565b82525050565b6000602082019050620012d26000830184620012aa565b92915050565b60805160a051614ad16200132860003960008181610dc401526114cb015260008181610ab401528181613124015281816132050152818161322c015281816132c801526132ef0152614ad16000f3fe6080604052600436106102295760003560e01c80638a8c523c11610123578063bea1cb27116100ab578063d85ba0631161006f578063d85ba06314610828578063dd62ed3e14610853578063e2f4560514610890578063f2fde38b146108bb578063f8b45b05146108e457610230565b8063bea1cb2714610731578063bfd792841461075a578063c024666814610797578063c8c8ebe4146107c0578063d257b34f146107eb57610230565b80639a7a23d6116100f25780639a7a23d61461063a578063a457c2d714610663578063a9059cbb146106a0578063aacebbe3146106dd578063bbc0c7421461070657610230565b80638a8c523c146105a45780638da5cb5b146105bb57806395d89b41146105e6578063961883991461061157610230565b8063401fc00f116101b15780636ddd1713116101755780636ddd1713146104d157806370a08231146104fc578063715018a6146105395780637571336a1461055057806375f0a8741461057957610230565b8063401fc00f146103ec57806349bd5a5e146104155780634fbee1931461044057806366ca9b831461047d5780636a486a8e146104a657610230565b806318160ddd116101f857806318160ddd146102f157806323b872dd1461031c57806327c8f83514610359578063313ce5671461038457806339509351146103af57610230565b806302dbd8f81461023557806306fdde031461025e578063095ea7b3146102895780631694505e146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c600480360381019061025791906133de565b61090f565b005b34801561026a57600080fd5b50610273610a02565b60405161028091906134ae565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab919061352e565b610a94565b6040516102bd9190613589565b60405180910390f35b3480156102d257600080fd5b506102db610ab2565b6040516102e89190613603565b60405180910390f35b3480156102fd57600080fd5b50610306610ad6565b604051610313919061362d565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190613648565b610ae0565b6040516103509190613589565b60405180910390f35b34801561036557600080fd5b5061036e610bd8565b60405161037b91906136aa565b60405180910390f35b34801561039057600080fd5b50610399610bde565b6040516103a691906136e1565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d1919061352e565b610bf5565b6040516103e39190613589565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e919061378d565b610ca1565b005b34801561042157600080fd5b5061042a610dc2565b60405161043791906136aa565b60405180910390f35b34801561044c57600080fd5b50610467600480360381019061046291906137ed565b610de6565b6040516104749190613589565b60405180910390f35b34801561048957600080fd5b506104a4600480360381019061049f91906133de565b610e3c565b005b3480156104b257600080fd5b506104bb610f26565b6040516104c8919061362d565b60405180910390f35b3480156104dd57600080fd5b506104e6610f2c565b6040516104f39190613589565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e91906137ed565b610f3f565b604051610530919061362d565b60405180910390f35b34801561054557600080fd5b5061054e610f87565b005b34801561055c57600080fd5b506105776004803603810190610572919061381a565b61100f565b005b34801561058557600080fd5b5061058e6110e6565b60405161059b91906136aa565b60405180910390f35b3480156105b057600080fd5b506105b961110c565b005b3480156105c757600080fd5b506105d06111dd565b6040516105dd91906136aa565b60405180910390f35b3480156105f257600080fd5b506105fb611207565b60405161060891906134ae565b60405180910390f35b34801561061d57600080fd5b50610638600480360381019061063391906133de565b611299565b005b34801561064657600080fd5b50610661600480360381019061065c919061381a565b61144d565b005b34801561066f57600080fd5b5061068a6004803603810190610685919061352e565b611565565b6040516106979190613589565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c2919061352e565b611650565b6040516106d49190613589565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff91906137ed565b61166e565b005b34801561071257600080fd5b5061071b61181f565b6040516107289190613589565b60405180910390f35b34801561073d57600080fd5b506107586004803603810190610753919061378d565b611832565b005b34801561076657600080fd5b50610781600480360381019061077c91906137ed565b611906565b60405161078e9190613589565b60405180910390f35b3480156107a357600080fd5b506107be60048036038101906107b9919061381a565b611926565b005b3480156107cc57600080fd5b506107d5611a4b565b6040516107e2919061362d565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d919061385a565b611a51565b60405161081f9190613589565b60405180910390f35b34801561083457600080fd5b5061083d611ba6565b60405161084a919061362d565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613887565b611bac565b604051610887919061362d565b60405180910390f35b34801561089c57600080fd5b506108a5611c33565b6040516108b2919061362d565b60405180910390f35b3480156108c757600080fd5b506108e260048036038101906108dd91906137ed565b611c39565b005b3480156108f057600080fd5b506108f9611d30565b604051610906919061362d565b60405180910390f35b610917611d36565b73ffffffffffffffffffffffffffffffffffffffff166109356111dd565b73ffffffffffffffffffffffffffffffffffffffff161461098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290613913565b60405180910390fd5b81600f8190555080601081905550601054600f546109a99190613962565b600e81905550600e54601381905550600f600e5411156109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f5906139e2565b60405180910390fd5b5050565b606060038054610a1190613a31565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d90613a31565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b6000610aa8610aa1611d36565b8484611d3e565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b6000610aed848484611f07565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b38611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90613ad4565b60405180910390fd5b610bcc85610bc4611d36565b858403611d3e565b60019150509392505050565b61dead81565b6000600560009054906101000a900460ff16905090565b6000610c97610c02611d36565b848460016000610c10611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c929190613962565b611d3e565b6001905092915050565b610ca9611d36565b73ffffffffffffffffffffffffffffffffffffffff16610cc76111dd565b73ffffffffffffffffffffffffffffffffffffffff1614610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490613913565b60405180910390fd5b60005b83839050811015610dbc578160176000868685818110610d4357610d42613af4565b5b9050602002016020810190610d5891906137ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610db490613b23565b915050610d20565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e44611d36565b73ffffffffffffffffffffffffffffffffffffffff16610e626111dd565b73ffffffffffffffffffffffffffffffffffffffff1614610eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaf90613913565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610ed69190613962565b600b81905550600f600b541115610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f19906139e2565b60405180910390fd5b5050565b600e5481565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f8f611d36565b73ffffffffffffffffffffffffffffffffffffffff16610fad6111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa90613913565b60405180910390fd5b61100d6000612a46565b565b611017611d36565b73ffffffffffffffffffffffffffffffffffffffff166110356111dd565b73ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108290613913565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611114611d36565b73ffffffffffffffffffffffffffffffffffffffff166111326111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f90613913565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550600a60009054906101000a900460ff16600a60016101000a81548160ff021916908315150217905550565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461121690613a31565b80601f016020809104026020016040519081016040528092919081815260200182805461124290613a31565b801561128f5780601f106112645761010080835404028352916020019161128f565b820191906000526020600020905b81548152906001019060200180831161127257829003601f168201915b5050505050905090565b6112a1611d36565b73ffffffffffffffffffffffffffffffffffffffff166112bf6111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90613913565b60405180910390fd5b6009600a6113239190613c9e565b6103e86005611330610ad6565b61133a9190613ce9565b6113449190613d5a565b61134e9190613d5a565b821015611390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138790613dfd565b60405180910390fd5b6009600a61139e9190613c9e565b6103e860056113ab610ad6565b6113b59190613ce9565b6113bf9190613d5a565b6113c99190613d5a565b81101561140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290613e8f565b60405180910390fd5b6009600a6114199190613c9e565b816114249190613ce9565b6009819055506009600a6114389190613c9e565b826114439190613ce9565b6007819055505050565b611455611d36565b73ffffffffffffffffffffffffffffffffffffffff166114736111dd565b73ffffffffffffffffffffffffffffffffffffffff16146114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c090613913565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90613f21565b60405180910390fd5b6115618282612b0c565b5050565b60008060016000611574611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613fb3565b60405180910390fd5b61164561163c611d36565b85858403611d3e565b600191505092915050565b600061166461165d611d36565b8484611f07565b6001905092915050565b611676611d36565b73ffffffffffffffffffffffffffffffffffffffff166116946111dd565b73ffffffffffffffffffffffffffffffffffffffff16146116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190613913565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090614045565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a35050565b600a60009054906101000a900460ff1681565b61183a611d36565b73ffffffffffffffffffffffffffffffffffffffff166118586111dd565b73ffffffffffffffffffffffffffffffffffffffff16146118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a590613913565b60405180910390fd5b60005b83839050811015611900576118ed8484838181106118d2576118d1613af4565b5b90506020020160208101906118e791906137ed565b83611926565b80806118f890613b23565b9150506118b1565b50505050565b60176020528060005260406000206000915054906101000a900460ff1681565b61192e611d36565b73ffffffffffffffffffffffffffffffffffffffff1661194c6111dd565b73ffffffffffffffffffffffffffffffffffffffff16146119a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199990613913565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611a3f9190613589565b60405180910390a25050565b60075481565b6000611a5b611d36565b73ffffffffffffffffffffffffffffffffffffffff16611a796111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac690613913565b60405180910390fd5b620186a06001611add610ad6565b611ae79190613ce9565b611af19190613d5a565b821015611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a906140d7565b60405180910390fd5b6103e86005611b40610ad6565b611b4a9190613ce9565b611b549190613d5a565b821115611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90614169565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611c41611d36565b73ffffffffffffffffffffffffffffffffffffffff16611c5f6111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613913565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b906141fb565b60405180910390fd5b611d2d81612a46565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da49061428d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e139061431f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611efa919061362d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d906143b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90614443565b60405180910390fd5b60008103611ffe57611ff983836000612bad565b612a41565b6120066111dd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207457506120446111dd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120ad5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120e7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121005750600560159054906101000a900460ff16155b156125c657600a60009054906101000a900460ff166121fa57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121ba5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f0906144af565b60405180910390fd5b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561229e5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d49061451b565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123805750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612427576007548111156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c1906145ad565b60405180910390fd5b6009546123d683610f3f565b826123e19190613962565b1115612422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241990614619565b60405180910390fd5b6125c5565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124ca5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561251957600754811115612514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250b906146ab565b60405180910390fd5b6125c4565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125c35760095461257683610f3f565b826125819190613962565b11156125c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b990614619565b60405180910390fd5b5b5b5b5b60006125d130610f3f565b9050600060085482101590508080156125f65750600a60019054906101000a900460ff165b801561260f5750600560159054906101000a900460ff16155b80156126655750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126bb5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127115750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612755576001600560156101000a81548160ff021916908315150217905550612739612e2c565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061280b5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561281557600090505b60008115612a2857601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561287857506000600e54115b15612912576128a56064612897600e548861303990919063ffffffff16565b61304f90919063ffffffff16565b9050600e54601054826128b89190613ce9565b6128c29190613d5a565b601260008282546128d39190613962565b92505081905550600e54600f54826128eb9190613ce9565b6128f59190613d5a565b601160008282546129069190613962565b92505081905550612a04565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561296d57506000600b54115b15612a035761299a606461298c600b548861303990919063ffffffff16565b61304f90919063ffffffff16565b9050600b54600d54826129ad9190613ce9565b6129b79190613d5a565b601260008282546129c89190613962565b92505081905550600b54600c54826129e09190613ce9565b6129ea9190613d5a565b601160008282546129fb9190613962565b925050819055505b5b6000811115612a1957612a18873083612bad565b5b8085612a2591906146cb565b94505b612a33878787612bad565b601354600e81905550505050505b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c13906143b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8290614443565b60405180910390fd5b612c96838383613065565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1390614771565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612daf9190613962565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e13919061362d565b60405180910390a3612e2684848461306a565b50505050565b6000612e3730610f3f565b90506000601154601254612e4b9190613962565b9050600080831480612e5d5750600082145b15612e6a57505050613037565b6014600854612e799190613ce9565b831115612e92576014600854612e8f9190613ce9565b92505b600060028360125486612ea59190613ce9565b612eaf9190613d5a565b612eb99190613d5a565b90506000612ed0828661306f90919063ffffffff16565b90506000479050612ee082613085565b6000612ef5824761306f90919063ffffffff16565b90506000612f2087612f126011548561303990919063ffffffff16565b61304f90919063ffffffff16565b905060008183612f3091906146cb565b905060006012819055506000601181905550600086118015612f525750600081115b15612f9f57612f6186826132c2565b7f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb8582601254604051612f9693929190614791565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612fe5906147f9565b60006040518083038185875af1925050503d8060008114613022576040519150601f19603f3d011682016040523d82523d6000602084013e613027565b606091505b5050809750505050505050505050505b565b600081836130479190613ce9565b905092915050565b6000818361305d9190613d5a565b905092915050565b505050565b505050565b6000818361307d91906146cb565b905092915050565b6000600267ffffffffffffffff8111156130a2576130a161480e565b5b6040519080825280602002602001820160405280156130d05781602001602082028036833780820191505090505b50905030816000815181106130e8576130e7613af4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b19190614852565b816001815181106131c5576131c4613af4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061322a307f000000000000000000000000000000000000000000000000000000000000000084611d3e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161328c959493929190614978565b600060405180830381600087803b1580156132a657600080fd5b505af11580156132ba573d6000803e3d6000fd5b505050505050565b6132ed307f000000000000000000000000000000000000000000000000000000000000000084611d3e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401613354969594939291906149d2565b60606040518083038185885af1158015613372573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133979190614a48565b5050505050565b600080fd5b600080fd5b6000819050919050565b6133bb816133a8565b81146133c657600080fd5b50565b6000813590506133d8816133b2565b92915050565b600080604083850312156133f5576133f461339e565b5b6000613403858286016133c9565b9250506020613414858286016133c9565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561345857808201518184015260208101905061343d565b60008484015250505050565b6000601f19601f8301169050919050565b60006134808261341e565b61348a8185613429565b935061349a81856020860161343a565b6134a381613464565b840191505092915050565b600060208201905081810360008301526134c88184613475565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134fb826134d0565b9050919050565b61350b816134f0565b811461351657600080fd5b50565b60008135905061352881613502565b92915050565b600080604083850312156135455761354461339e565b5b600061355385828601613519565b9250506020613564858286016133c9565b9150509250929050565b60008115159050919050565b6135838161356e565b82525050565b600060208201905061359e600083018461357a565b92915050565b6000819050919050565b60006135c96135c46135bf846134d0565b6135a4565b6134d0565b9050919050565b60006135db826135ae565b9050919050565b60006135ed826135d0565b9050919050565b6135fd816135e2565b82525050565b600060208201905061361860008301846135f4565b92915050565b613627816133a8565b82525050565b6000602082019050613642600083018461361e565b92915050565b6000806000606084860312156136615761366061339e565b5b600061366f86828701613519565b935050602061368086828701613519565b9250506040613691868287016133c9565b9150509250925092565b6136a4816134f0565b82525050565b60006020820190506136bf600083018461369b565b92915050565b600060ff82169050919050565b6136db816136c5565b82525050565b60006020820190506136f660008301846136d2565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613721576137206136fc565b5b8235905067ffffffffffffffff81111561373e5761373d613701565b5b60208301915083602082028301111561375a57613759613706565b5b9250929050565b61376a8161356e565b811461377557600080fd5b50565b60008135905061378781613761565b92915050565b6000806000604084860312156137a6576137a561339e565b5b600084013567ffffffffffffffff8111156137c4576137c36133a3565b5b6137d08682870161370b565b935093505060206137e386828701613778565b9150509250925092565b6000602082840312156138035761380261339e565b5b600061381184828501613519565b91505092915050565b600080604083850312156138315761383061339e565b5b600061383f85828601613519565b925050602061385085828601613778565b9150509250929050565b6000602082840312156138705761386f61339e565b5b600061387e848285016133c9565b91505092915050565b6000806040838503121561389e5761389d61339e565b5b60006138ac85828601613519565b92505060206138bd85828601613519565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138fd602083613429565b9150613908826138c7565b602082019050919050565b6000602082019050818103600083015261392c816138f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061396d826133a8565b9150613978836133a8565b92508282019050808211156139905761398f613933565b5b92915050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b60006139cc601d83613429565b91506139d782613996565b602082019050919050565b600060208201905081810360008301526139fb816139bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a4957607f821691505b602082108103613a5c57613a5b613a02565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613abe602883613429565b9150613ac982613a62565b604082019050919050565b60006020820190508181036000830152613aed81613ab1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613b2e826133a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b6057613b5f613933565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613bc257808604811115613b9e57613b9d613933565b5b6001851615613bad5780820291505b8081029050613bbb85613b6b565b9450613b82565b94509492505050565b600082613bdb5760019050613c97565b81613be95760009050613c97565b8160018114613bff5760028114613c0957613c38565b6001915050613c97565b60ff841115613c1b57613c1a613933565b5b8360020a915084821115613c3257613c31613933565b5b50613c97565b5060208310610133831016604e8410600b8410161715613c6d5782820a905083811115613c6857613c67613933565b5b613c97565b613c7a8484846001613b78565b92509050818404811115613c9157613c90613933565b5b81810290505b9392505050565b6000613ca9826133a8565b9150613cb4836136c5565b9250613ce17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613bcb565b905092915050565b6000613cf4826133a8565b9150613cff836133a8565b9250828202613d0d816133a8565b91508282048414831517613d2457613d23613933565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d65826133a8565b9150613d70836133a8565b925082613d8057613d7f613d2b565b5b828204905092915050565b7f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e3560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613de7602183613429565b9150613df282613d8b565b604082019050919050565b60006020820190508181036000830152613e1681613dda565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613e79602483613429565b9150613e8482613e1d565b604082019050919050565b60006020820190508181036000830152613ea881613e6c565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613f0b603983613429565b9150613f1682613eaf565b604082019050919050565b60006020820190508181036000830152613f3a81613efe565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613f9d602583613429565b9150613fa882613f41565b604082019050919050565b60006020820190508181036000830152613fcc81613f90565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061402f602283613429565b915061403a82613fd3565b604082019050919050565b6000602082019050818103600083015261405e81614022565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006140c1603583613429565b91506140cc82614065565b604082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614153603483613429565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006141e5602683613429565b91506141f082614189565b604082019050919050565b60006020820190508181036000830152614214816141d8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614277602483613429565b91506142828261421b565b604082019050919050565b600060208201905081810360008301526142a68161426a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614309602283613429565b9150614314826142ad565b604082019050919050565b60006020820190508181036000830152614338816142fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061439b602583613429565b91506143a68261433f565b604082019050919050565b600060208201905081810360008301526143ca8161438e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061442d602383613429565b9150614438826143d1565b604082019050919050565b6000602082019050818103600083015261445c81614420565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614499601683613429565b91506144a482614463565b602082019050919050565b600060208201905081810360008301526144c88161448c565b9050919050565b7f596f75722077616c6c657420697320626c61636b6c6973746564210000000000600082015250565b6000614505601b83613429565b9150614510826144cf565b602082019050919050565b60006020820190508181036000830152614534816144f8565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614597603583613429565b91506145a28261453b565b604082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614603601383613429565b915061460e826145cd565b602082019050919050565b60006020820190508181036000830152614632816145f6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614695603683613429565b91506146a082614639565b604082019050919050565b600060208201905081810360008301526146c481614688565b9050919050565b60006146d6826133a8565b91506146e1836133a8565b92508282039050818111156146f9576146f8613933565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061475b602683613429565b9150614766826146ff565b604082019050919050565b6000602082019050818103600083015261478a8161474e565b9050919050565b60006060820190506147a6600083018661361e565b6147b3602083018561361e565b6147c0604083018461361e565b949350505050565b600081905092915050565b50565b60006147e36000836147c8565b91506147ee826147d3565b600082019050919050565b6000614804826147d6565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061484c81613502565b92915050565b6000602082840312156148685761486761339e565b5b60006148768482850161483d565b91505092915050565b6000819050919050565b60006148a461489f61489a8461487f565b6135a4565b6133a8565b9050919050565b6148b481614889565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6148ef816134f0565b82525050565b600061490183836148e6565b60208301905092915050565b6000602082019050919050565b6000614925826148ba565b61492f81856148c5565b935061493a836148d6565b8060005b8381101561496b57815161495288826148f5565b975061495d8361490d565b92505060018101905061493e565b5085935050505092915050565b600060a08201905061498d600083018861361e565b61499a60208301876148ab565b81810360408301526149ac818661491a565b90506149bb606083018561369b565b6149c8608083018461361e565b9695505050505050565b600060c0820190506149e7600083018961369b565b6149f4602083018861361e565b614a0160408301876148ab565b614a0e60608301866148ab565b614a1b608083018561369b565b614a2860a083018461361e565b979650505050505050565b600081519050614a42816133b2565b92915050565b600080600060608486031215614a6157614a6061339e565b5b6000614a6f86828701614a33565b9350506020614a8086828701614a33565b9250506040614a9186828701614a33565b915050925092509256fea2646970667358221220604ba4dbeca63155a8a6ac1d0e46b92cb316116dad15b55a36514754ef276db064736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102295760003560e01c80638a8c523c11610123578063bea1cb27116100ab578063d85ba0631161006f578063d85ba06314610828578063dd62ed3e14610853578063e2f4560514610890578063f2fde38b146108bb578063f8b45b05146108e457610230565b8063bea1cb2714610731578063bfd792841461075a578063c024666814610797578063c8c8ebe4146107c0578063d257b34f146107eb57610230565b80639a7a23d6116100f25780639a7a23d61461063a578063a457c2d714610663578063a9059cbb146106a0578063aacebbe3146106dd578063bbc0c7421461070657610230565b80638a8c523c146105a45780638da5cb5b146105bb57806395d89b41146105e6578063961883991461061157610230565b8063401fc00f116101b15780636ddd1713116101755780636ddd1713146104d157806370a08231146104fc578063715018a6146105395780637571336a1461055057806375f0a8741461057957610230565b8063401fc00f146103ec57806349bd5a5e146104155780634fbee1931461044057806366ca9b831461047d5780636a486a8e146104a657610230565b806318160ddd116101f857806318160ddd146102f157806323b872dd1461031c57806327c8f83514610359578063313ce5671461038457806339509351146103af57610230565b806302dbd8f81461023557806306fdde031461025e578063095ea7b3146102895780631694505e146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c600480360381019061025791906133de565b61090f565b005b34801561026a57600080fd5b50610273610a02565b60405161028091906134ae565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab919061352e565b610a94565b6040516102bd9190613589565b60405180910390f35b3480156102d257600080fd5b506102db610ab2565b6040516102e89190613603565b60405180910390f35b3480156102fd57600080fd5b50610306610ad6565b604051610313919061362d565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190613648565b610ae0565b6040516103509190613589565b60405180910390f35b34801561036557600080fd5b5061036e610bd8565b60405161037b91906136aa565b60405180910390f35b34801561039057600080fd5b50610399610bde565b6040516103a691906136e1565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d1919061352e565b610bf5565b6040516103e39190613589565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e919061378d565b610ca1565b005b34801561042157600080fd5b5061042a610dc2565b60405161043791906136aa565b60405180910390f35b34801561044c57600080fd5b50610467600480360381019061046291906137ed565b610de6565b6040516104749190613589565b60405180910390f35b34801561048957600080fd5b506104a4600480360381019061049f91906133de565b610e3c565b005b3480156104b257600080fd5b506104bb610f26565b6040516104c8919061362d565b60405180910390f35b3480156104dd57600080fd5b506104e6610f2c565b6040516104f39190613589565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e91906137ed565b610f3f565b604051610530919061362d565b60405180910390f35b34801561054557600080fd5b5061054e610f87565b005b34801561055c57600080fd5b506105776004803603810190610572919061381a565b61100f565b005b34801561058557600080fd5b5061058e6110e6565b60405161059b91906136aa565b60405180910390f35b3480156105b057600080fd5b506105b961110c565b005b3480156105c757600080fd5b506105d06111dd565b6040516105dd91906136aa565b60405180910390f35b3480156105f257600080fd5b506105fb611207565b60405161060891906134ae565b60405180910390f35b34801561061d57600080fd5b50610638600480360381019061063391906133de565b611299565b005b34801561064657600080fd5b50610661600480360381019061065c919061381a565b61144d565b005b34801561066f57600080fd5b5061068a6004803603810190610685919061352e565b611565565b6040516106979190613589565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c2919061352e565b611650565b6040516106d49190613589565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff91906137ed565b61166e565b005b34801561071257600080fd5b5061071b61181f565b6040516107289190613589565b60405180910390f35b34801561073d57600080fd5b506107586004803603810190610753919061378d565b611832565b005b34801561076657600080fd5b50610781600480360381019061077c91906137ed565b611906565b60405161078e9190613589565b60405180910390f35b3480156107a357600080fd5b506107be60048036038101906107b9919061381a565b611926565b005b3480156107cc57600080fd5b506107d5611a4b565b6040516107e2919061362d565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d919061385a565b611a51565b60405161081f9190613589565b60405180910390f35b34801561083457600080fd5b5061083d611ba6565b60405161084a919061362d565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613887565b611bac565b604051610887919061362d565b60405180910390f35b34801561089c57600080fd5b506108a5611c33565b6040516108b2919061362d565b60405180910390f35b3480156108c757600080fd5b506108e260048036038101906108dd91906137ed565b611c39565b005b3480156108f057600080fd5b506108f9611d30565b604051610906919061362d565b60405180910390f35b610917611d36565b73ffffffffffffffffffffffffffffffffffffffff166109356111dd565b73ffffffffffffffffffffffffffffffffffffffff161461098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290613913565b60405180910390fd5b81600f8190555080601081905550601054600f546109a99190613962565b600e81905550600e54601381905550600f600e5411156109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f5906139e2565b60405180910390fd5b5050565b606060038054610a1190613a31565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d90613a31565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b6000610aa8610aa1611d36565b8484611d3e565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b6000610aed848484611f07565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b38611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90613ad4565b60405180910390fd5b610bcc85610bc4611d36565b858403611d3e565b60019150509392505050565b61dead81565b6000600560009054906101000a900460ff16905090565b6000610c97610c02611d36565b848460016000610c10611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c929190613962565b611d3e565b6001905092915050565b610ca9611d36565b73ffffffffffffffffffffffffffffffffffffffff16610cc76111dd565b73ffffffffffffffffffffffffffffffffffffffff1614610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490613913565b60405180910390fd5b60005b83839050811015610dbc578160176000868685818110610d4357610d42613af4565b5b9050602002016020810190610d5891906137ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610db490613b23565b915050610d20565b50505050565b7f000000000000000000000000dc98816fa9eb290cface598395d72604c69247ed81565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e44611d36565b73ffffffffffffffffffffffffffffffffffffffff16610e626111dd565b73ffffffffffffffffffffffffffffffffffffffff1614610eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaf90613913565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610ed69190613962565b600b81905550600f600b541115610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f19906139e2565b60405180910390fd5b5050565b600e5481565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f8f611d36565b73ffffffffffffffffffffffffffffffffffffffff16610fad6111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa90613913565b60405180910390fd5b61100d6000612a46565b565b611017611d36565b73ffffffffffffffffffffffffffffffffffffffff166110356111dd565b73ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108290613913565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611114611d36565b73ffffffffffffffffffffffffffffffffffffffff166111326111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f90613913565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550600a60009054906101000a900460ff16600a60016101000a81548160ff021916908315150217905550565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461121690613a31565b80601f016020809104026020016040519081016040528092919081815260200182805461124290613a31565b801561128f5780601f106112645761010080835404028352916020019161128f565b820191906000526020600020905b81548152906001019060200180831161127257829003601f168201915b5050505050905090565b6112a1611d36565b73ffffffffffffffffffffffffffffffffffffffff166112bf6111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90613913565b60405180910390fd5b6009600a6113239190613c9e565b6103e86005611330610ad6565b61133a9190613ce9565b6113449190613d5a565b61134e9190613d5a565b821015611390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138790613dfd565b60405180910390fd5b6009600a61139e9190613c9e565b6103e860056113ab610ad6565b6113b59190613ce9565b6113bf9190613d5a565b6113c99190613d5a565b81101561140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290613e8f565b60405180910390fd5b6009600a6114199190613c9e565b816114249190613ce9565b6009819055506009600a6114389190613c9e565b826114439190613ce9565b6007819055505050565b611455611d36565b73ffffffffffffffffffffffffffffffffffffffff166114736111dd565b73ffffffffffffffffffffffffffffffffffffffff16146114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c090613913565b60405180910390fd5b7f000000000000000000000000dc98816fa9eb290cface598395d72604c69247ed73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90613f21565b60405180910390fd5b6115618282612b0c565b5050565b60008060016000611574611d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613fb3565b60405180910390fd5b61164561163c611d36565b85858403611d3e565b600191505092915050565b600061166461165d611d36565b8484611f07565b6001905092915050565b611676611d36565b73ffffffffffffffffffffffffffffffffffffffff166116946111dd565b73ffffffffffffffffffffffffffffffffffffffff16146116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190613913565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090614045565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a35050565b600a60009054906101000a900460ff1681565b61183a611d36565b73ffffffffffffffffffffffffffffffffffffffff166118586111dd565b73ffffffffffffffffffffffffffffffffffffffff16146118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a590613913565b60405180910390fd5b60005b83839050811015611900576118ed8484838181106118d2576118d1613af4565b5b90506020020160208101906118e791906137ed565b83611926565b80806118f890613b23565b9150506118b1565b50505050565b60176020528060005260406000206000915054906101000a900460ff1681565b61192e611d36565b73ffffffffffffffffffffffffffffffffffffffff1661194c6111dd565b73ffffffffffffffffffffffffffffffffffffffff16146119a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199990613913565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611a3f9190613589565b60405180910390a25050565b60075481565b6000611a5b611d36565b73ffffffffffffffffffffffffffffffffffffffff16611a796111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac690613913565b60405180910390fd5b620186a06001611add610ad6565b611ae79190613ce9565b611af19190613d5a565b821015611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a906140d7565b60405180910390fd5b6103e86005611b40610ad6565b611b4a9190613ce9565b611b549190613d5a565b821115611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90614169565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611c41611d36565b73ffffffffffffffffffffffffffffffffffffffff16611c5f6111dd565b73ffffffffffffffffffffffffffffffffffffffff1614611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613913565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b906141fb565b60405180910390fd5b611d2d81612a46565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da49061428d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e139061431f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611efa919061362d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d906143b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90614443565b60405180910390fd5b60008103611ffe57611ff983836000612bad565b612a41565b6120066111dd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207457506120446111dd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120ad5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120e7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121005750600560159054906101000a900460ff16155b156125c657600a60009054906101000a900460ff166121fa57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121ba5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f0906144af565b60405180910390fd5b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561229e5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d49061451b565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123805750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612427576007548111156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c1906145ad565b60405180910390fd5b6009546123d683610f3f565b826123e19190613962565b1115612422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241990614619565b60405180910390fd5b6125c5565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124ca5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561251957600754811115612514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250b906146ab565b60405180910390fd5b6125c4565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125c35760095461257683610f3f565b826125819190613962565b11156125c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b990614619565b60405180910390fd5b5b5b5b5b60006125d130610f3f565b9050600060085482101590508080156125f65750600a60019054906101000a900460ff165b801561260f5750600560159054906101000a900460ff16155b80156126655750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126bb5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127115750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612755576001600560156101000a81548160ff021916908315150217905550612739612e2c565b6000600560156101000a81548160ff0219169083151502179055505b6000600560159054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061280b5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561281557600090505b60008115612a2857601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561287857506000600e54115b15612912576128a56064612897600e548861303990919063ffffffff16565b61304f90919063ffffffff16565b9050600e54601054826128b89190613ce9565b6128c29190613d5a565b601260008282546128d39190613962565b92505081905550600e54600f54826128eb9190613ce9565b6128f59190613d5a565b601160008282546129069190613962565b92505081905550612a04565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561296d57506000600b54115b15612a035761299a606461298c600b548861303990919063ffffffff16565b61304f90919063ffffffff16565b9050600b54600d54826129ad9190613ce9565b6129b79190613d5a565b601260008282546129c89190613962565b92505081905550600b54600c54826129e09190613ce9565b6129ea9190613d5a565b601160008282546129fb9190613962565b925050819055505b5b6000811115612a1957612a18873083612bad565b5b8085612a2591906146cb565b94505b612a33878787612bad565b601354600e81905550505050505b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c13906143b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8290614443565b60405180910390fd5b612c96838383613065565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1390614771565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612daf9190613962565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e13919061362d565b60405180910390a3612e2684848461306a565b50505050565b6000612e3730610f3f565b90506000601154601254612e4b9190613962565b9050600080831480612e5d5750600082145b15612e6a57505050613037565b6014600854612e799190613ce9565b831115612e92576014600854612e8f9190613ce9565b92505b600060028360125486612ea59190613ce9565b612eaf9190613d5a565b612eb99190613d5a565b90506000612ed0828661306f90919063ffffffff16565b90506000479050612ee082613085565b6000612ef5824761306f90919063ffffffff16565b90506000612f2087612f126011548561303990919063ffffffff16565b61304f90919063ffffffff16565b905060008183612f3091906146cb565b905060006012819055506000601181905550600086118015612f525750600081115b15612f9f57612f6186826132c2565b7f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb8582601254604051612f9693929190614791565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612fe5906147f9565b60006040518083038185875af1925050503d8060008114613022576040519150601f19603f3d011682016040523d82523d6000602084013e613027565b606091505b5050809750505050505050505050505b565b600081836130479190613ce9565b905092915050565b6000818361305d9190613d5a565b905092915050565b505050565b505050565b6000818361307d91906146cb565b905092915050565b6000600267ffffffffffffffff8111156130a2576130a161480e565b5b6040519080825280602002602001820160405280156130d05781602001602082028036833780820191505090505b50905030816000815181106130e8576130e7613af4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b19190614852565b816001815181106131c5576131c4613af4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061322a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d3e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161328c959493929190614978565b600060405180830381600087803b1580156132a657600080fd5b505af11580156132ba573d6000803e3d6000fd5b505050505050565b6132ed307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d3e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401613354969594939291906149d2565b60606040518083038185885af1158015613372573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133979190614a48565b5050505050565b600080fd5b600080fd5b6000819050919050565b6133bb816133a8565b81146133c657600080fd5b50565b6000813590506133d8816133b2565b92915050565b600080604083850312156133f5576133f461339e565b5b6000613403858286016133c9565b9250506020613414858286016133c9565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561345857808201518184015260208101905061343d565b60008484015250505050565b6000601f19601f8301169050919050565b60006134808261341e565b61348a8185613429565b935061349a81856020860161343a565b6134a381613464565b840191505092915050565b600060208201905081810360008301526134c88184613475565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134fb826134d0565b9050919050565b61350b816134f0565b811461351657600080fd5b50565b60008135905061352881613502565b92915050565b600080604083850312156135455761354461339e565b5b600061355385828601613519565b9250506020613564858286016133c9565b9150509250929050565b60008115159050919050565b6135838161356e565b82525050565b600060208201905061359e600083018461357a565b92915050565b6000819050919050565b60006135c96135c46135bf846134d0565b6135a4565b6134d0565b9050919050565b60006135db826135ae565b9050919050565b60006135ed826135d0565b9050919050565b6135fd816135e2565b82525050565b600060208201905061361860008301846135f4565b92915050565b613627816133a8565b82525050565b6000602082019050613642600083018461361e565b92915050565b6000806000606084860312156136615761366061339e565b5b600061366f86828701613519565b935050602061368086828701613519565b9250506040613691868287016133c9565b9150509250925092565b6136a4816134f0565b82525050565b60006020820190506136bf600083018461369b565b92915050565b600060ff82169050919050565b6136db816136c5565b82525050565b60006020820190506136f660008301846136d2565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613721576137206136fc565b5b8235905067ffffffffffffffff81111561373e5761373d613701565b5b60208301915083602082028301111561375a57613759613706565b5b9250929050565b61376a8161356e565b811461377557600080fd5b50565b60008135905061378781613761565b92915050565b6000806000604084860312156137a6576137a561339e565b5b600084013567ffffffffffffffff8111156137c4576137c36133a3565b5b6137d08682870161370b565b935093505060206137e386828701613778565b9150509250925092565b6000602082840312156138035761380261339e565b5b600061381184828501613519565b91505092915050565b600080604083850312156138315761383061339e565b5b600061383f85828601613519565b925050602061385085828601613778565b9150509250929050565b6000602082840312156138705761386f61339e565b5b600061387e848285016133c9565b91505092915050565b6000806040838503121561389e5761389d61339e565b5b60006138ac85828601613519565b92505060206138bd85828601613519565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138fd602083613429565b9150613908826138c7565b602082019050919050565b6000602082019050818103600083015261392c816138f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061396d826133a8565b9150613978836133a8565b92508282019050808211156139905761398f613933565b5b92915050565b7f4d757374206b656570206665657320617420313525206f72206c657373000000600082015250565b60006139cc601d83613429565b91506139d782613996565b602082019050919050565b600060208201905081810360008301526139fb816139bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a4957607f821691505b602082108103613a5c57613a5b613a02565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613abe602883613429565b9150613ac982613a62565b604082019050919050565b60006020820190508181036000830152613aed81613ab1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613b2e826133a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b6057613b5f613933565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613bc257808604811115613b9e57613b9d613933565b5b6001851615613bad5780820291505b8081029050613bbb85613b6b565b9450613b82565b94509492505050565b600082613bdb5760019050613c97565b81613be95760009050613c97565b8160018114613bff5760028114613c0957613c38565b6001915050613c97565b60ff841115613c1b57613c1a613933565b5b8360020a915084821115613c3257613c31613933565b5b50613c97565b5060208310610133831016604e8410600b8410161715613c6d5782820a905083811115613c6857613c67613933565b5b613c97565b613c7a8484846001613b78565b92509050818404811115613c9157613c90613933565b5b81810290505b9392505050565b6000613ca9826133a8565b9150613cb4836136c5565b9250613ce17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613bcb565b905092915050565b6000613cf4826133a8565b9150613cff836133a8565b9250828202613d0d816133a8565b91508282048414831517613d2457613d23613933565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d65826133a8565b9150613d70836133a8565b925082613d8057613d7f613d2b565b5b828204905092915050565b7f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e3560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613de7602183613429565b9150613df282613d8b565b604082019050919050565b60006020820190508181036000830152613e1681613dda565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613e79602483613429565b9150613e8482613e1d565b604082019050919050565b60006020820190508181036000830152613ea881613e6c565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613f0b603983613429565b9150613f1682613eaf565b604082019050919050565b60006020820190508181036000830152613f3a81613efe565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613f9d602583613429565b9150613fa882613f41565b604082019050919050565b60006020820190508181036000830152613fcc81613f90565b9050919050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061402f602283613429565b915061403a82613fd3565b604082019050919050565b6000602082019050818103600083015261405e81614022565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006140c1603583613429565b91506140cc82614065565b604082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614153603483613429565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006141e5602683613429565b91506141f082614189565b604082019050919050565b60006020820190508181036000830152614214816141d8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614277602483613429565b91506142828261421b565b604082019050919050565b600060208201905081810360008301526142a68161426a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614309602283613429565b9150614314826142ad565b604082019050919050565b60006020820190508181036000830152614338816142fc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061439b602583613429565b91506143a68261433f565b604082019050919050565b600060208201905081810360008301526143ca8161438e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061442d602383613429565b9150614438826143d1565b604082019050919050565b6000602082019050818103600083015261445c81614420565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614499601683613429565b91506144a482614463565b602082019050919050565b600060208201905081810360008301526144c88161448c565b9050919050565b7f596f75722077616c6c657420697320626c61636b6c6973746564210000000000600082015250565b6000614505601b83613429565b9150614510826144cf565b602082019050919050565b60006020820190508181036000830152614534816144f8565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614597603583613429565b91506145a28261453b565b604082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614603601383613429565b915061460e826145cd565b602082019050919050565b60006020820190508181036000830152614632816145f6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614695603683613429565b91506146a082614639565b604082019050919050565b600060208201905081810360008301526146c481614688565b9050919050565b60006146d6826133a8565b91506146e1836133a8565b92508282039050818111156146f9576146f8613933565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061475b602683613429565b9150614766826146ff565b604082019050919050565b6000602082019050818103600083015261478a8161474e565b9050919050565b60006060820190506147a6600083018661361e565b6147b3602083018561361e565b6147c0604083018461361e565b949350505050565b600081905092915050565b50565b60006147e36000836147c8565b91506147ee826147d3565b600082019050919050565b6000614804826147d6565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061484c81613502565b92915050565b6000602082840312156148685761486761339e565b5b60006148768482850161483d565b91505092915050565b6000819050919050565b60006148a461489f61489a8461487f565b6135a4565b6133a8565b9050919050565b6148b481614889565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6148ef816134f0565b82525050565b600061490183836148e6565b60208301905092915050565b6000602082019050919050565b6000614925826148ba565b61492f81856148c5565b935061493a836148d6565b8060005b8381101561496b57815161495288826148f5565b975061495d8361490d565b92505060018101905061493e565b5085935050505092915050565b600060a08201905061498d600083018861361e565b61499a60208301876148ab565b81810360408301526149ac818661491a565b90506149bb606083018561369b565b6149c8608083018461361e565b9695505050505050565b600060c0820190506149e7600083018961369b565b6149f4602083018861361e565b614a0160408301876148ab565b614a0e60608301866148ab565b614a1b608083018561369b565b614a2860a083018461361e565b979650505050505050565b600081519050614a42816133b2565b92915050565b600080600060608486031215614a6157614a6061339e565b5b6000614a6f86828701614a33565b9350506020614a8086828701614a33565b9250506040614a9186828701614a33565b915050925092509256fea2646970667358221220604ba4dbeca63155a8a6ac1d0e46b92cb316116dad15b55a36514754ef276db064736f6c63430008110033
Deployed Bytecode Sourcemap
14046:13002:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19218:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2863:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3784:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14135:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3191:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3961:480;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14238:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3083:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4449:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20294:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14193:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21013:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18900:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14828:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14676:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3307:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;922:103;;;;;;;;;;;;;:::i;:::-;;18748:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14482:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17593:131;;;;;;;;;;;;;:::i;:::-;;699:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2971:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18204:536;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20003:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4672:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3442:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20505:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14636:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19771:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15256:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19581:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14521:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17732:464;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14716:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3625:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14563:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1033:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14603:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19218:355;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19337:13:::1;19318:16;:32;;;;19380:13;19361:16;:32;;;;19439:16;;19420;;:35;;;;:::i;:::-;19404:13;:51;;;;19480:13;;19466:11;:27;;;;19529:2;19512:13;;:19;;19504:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;19218:355:::0;;:::o;2863:100::-;2917:13;2950:5;2943:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2863:100;:::o;3784:169::-;3867:4;3884:39;3893:12;:10;:12::i;:::-;3907:7;3916:6;3884:8;:39::i;:::-;3941:4;3934:11;;3784:169;;;;:::o;14135:51::-;;;:::o;3191:108::-;3252:7;3279:12;;3272:19;;3191:108;:::o;3961:480::-;4101:4;4118:36;4128:6;4136:9;4147:6;4118:9;:36::i;:::-;4167:24;4194:11;:19;4206:6;4194:19;;;;;;;;;;;;;;;:33;4214:12;:10;:12::i;:::-;4194:33;;;;;;;;;;;;;;;;4167:60;;4266:6;4246:16;:26;;4238:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4345:57;4354:6;4362:12;:10;:12::i;:::-;4395:6;4376:16;:25;4345:8;:57::i;:::-;4429:4;4422:11;;;3961:480;;;;;:::o;14238:53::-;14284:6;14238:53;:::o;3083:100::-;3141:5;3166:9;;;;;;;;;;;3159:16;;3083:100;:::o;4449:215::-;4537:4;4554:80;4563:12;:10;:12::i;:::-;4577:7;4623:10;4586:11;:25;4598:12;:10;:12::i;:::-;4586:25;;;;;;;;;;;;;;;:34;4612:7;4586:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4554:8;:80::i;:::-;4652:4;4645:11;;4449:215;;;;:::o;20294:203::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20394:9:::1;20389:101;20413:8;;:15;;20409:1;:19;20389:101;;;20470:8;20450:4;:17;20455:8;;20464:1;20455:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20450:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20430:3;;;;;:::i;:::-;;;;20389:101;;;;20294:203:::0;;;:::o;14193:38::-;;;:::o;21013:126::-;21079:4;21103:19;:28;21123:7;21103:28;;;;;;;;;;;;;;;;;;;;;;;;;21096:35;;21013:126;;;:::o;18900:310::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19017:13:::1;18999:15;:31;;;;19059:13;19041:15;:31;;;;19116:15;;19098;;:33;;;;:::i;:::-;19083:12;:48;;;;19166:2;19150:12;;:18;;19142:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;18900:310:::0;;:::o;14828:28::-;;;;:::o;14676:31::-;;;;;;;;;;;;;:::o;3307:127::-;3381:7;3408:9;:18;3418:7;3408:18;;;;;;;;;;;;;;;;3401:25;;3307:127;;;:::o;922:103::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;987:30:::1;1014:1;987:18;:30::i;:::-;922:103::o:0;18748:144::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18880:4:::1;18838:31;:39;18870:6;18838:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18748:144:::0;;:::o;14482:30::-;;;;;;;;;;;;;:::o;17593:131::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17665:13:::1;;;;;;;;;;;17664:14;17648:13;;:30;;;;;;;;;;;;;;;;;;17703:13;;;;;;;;;;;17689:11;;:27;;;;;;;;;;;;;;;;;;17593:131::o:0;699:87::-;745:7;772:6;;;;;;;;;;;765:13;;699:87;:::o;2971:104::-;3027:13;3060:7;3053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2971:104;:::o;18204:536::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14442:1:::1;18381:2;:13;;;;:::i;:::-;18373:4;18368:1;18352:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18351:26;;;;:::i;:::-;18350:44;;;;:::i;:::-;18337:9;:57;;18315:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;14442:1;18538:2;:13;;;;:::i;:::-;18530:4;18525:1;18509:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18508:26;;;;:::i;:::-;18507:44;;;;:::i;:::-;18488:15;:63;;18466:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;14442:1;18657:2;:13;;;;:::i;:::-;18638:15;:33;;;;:::i;:::-;18626:9;:45;;;;14442:1;18718:2;:13;;;;:::i;:::-;18705:9;:27;;;;:::i;:::-;18682:20;:50;;;;18204:536:::0;;:::o;20003:283::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20126:13:::1;20118:21;;:4;:21;;::::0;20096:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20237:41;20266:4;20272:5;20237:28;:41::i;:::-;20003:283:::0;;:::o;4672:401::-;4765:4;4782:24;4809:11;:25;4821:12;:10;:12::i;:::-;4809:25;;;;;;;;;;;;;;;:34;4835:7;4809:34;;;;;;;;;;;;;;;;4782:61;;4882:15;4862:16;:35;;4854:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4967:67;4976:12;:10;:12::i;:::-;4990:7;5018:15;4999:16;:34;4967:8;:67::i;:::-;5061:4;5054:11;;;4672:401;;;;:::o;3442:175::-;3528:4;3545:42;3555:12;:10;:12::i;:::-;3569:9;3580:6;3545:9;:42::i;:::-;3605:4;3598:11;;3442:175;;;;:::o;20505:304::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20614:1:::1;20593:23;;:9;:23;;::::0;20585:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20666:18;20687:15;;;;;;;;;;;20666:36;;20731:9;20713:15;;:27;;;;;;;;;;;;;;;;;;20790:10;20756:45;;20779:9;20756:45;;;;;;;;;;;;20574:235;20505:304:::0;:::o;14636:33::-;;;;;;;;;;;;;:::o;19771:224::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19882:9:::1;19878:110;19901:8;;:15;;19897:1;:19;19878:110;;;19938:38;19954:8;;19963:1;19954:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19967:8;19938:15;:38::i;:::-;19918:3;;;;;:::i;:::-;;;;19878:110;;;;19771:224:::0;;;:::o;15256:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;19581:182::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19697:8:::1;19666:19;:28;19686:7;19666:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19737:7;19721:34;;;19746:8;19721:34;;;;;;:::i;:::-;;;;;;;;19581:182:::0;;:::o;14521:35::-;;;;:::o;17732:464::-;17813:4;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17886:6:::1;17881:1;17865:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17864:28;;;;:::i;:::-;17851:9;:41;;17829:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;18041:4;18036:1;18020:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18019:26;;;;:::i;:::-;18006:9;:39;;17984:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;18157:9;18136:18;:30;;;;18184:4;18177:11;;17732:464:::0;;;:::o;14716:27::-;;;;:::o;3625:151::-;3714:7;3741:11;:18;3753:5;3741:18;;;;;;;;;;;;;;;:27;3760:7;3741:27;;;;;;;;;;;;;;;;3734:34;;3625:151;;;;:::o;14563:33::-;;;;:::o;1033:201::-;845:12;:10;:12::i;:::-;834:23;;:7;:5;:7::i;:::-;:23;;;826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1142:1:::1;1122:22;;:8;:22;;::::0;1114:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1198:28;1217:8;1198:18;:28::i;:::-;1033:201:::0;:::o;14603:24::-;;;;:::o;245:98::-;298:7;325:10;318:17;;245:98;:::o;6217:380::-;6370:1;6353:19;;:5;:19;;;6345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6451:1;6432:21;;:7;:21;;;6424:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6535:6;6505:11;:18;6517:5;6505:18;;;;;;;;;;;;;;;:27;6524:7;6505:27;;;;;;;;;;;;;;;:36;;;;6573:7;6557:32;;6566:5;6557:32;;;6582:6;6557:32;;;;;;:::i;:::-;;;;;;;;6217:380;;;:::o;21147:3551::-;21295:1;21279:18;;:4;:18;;;21271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21372:1;21358:16;;:2;:16;;;21350:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21441:1;21431:6;:11;21427:93;;21459:28;21475:4;21481:2;21485:1;21459:15;:28::i;:::-;21502:7;;21427:93;21558:7;:5;:7::i;:::-;21550:15;;:4;:15;;;;:45;;;;;21588:7;:5;:7::i;:::-;21582:13;;:2;:13;;;;21550:45;:78;;;;;21626:1;21612:16;;:2;:16;;;;21550:78;:116;;;;;21659:6;21645:21;;:2;:21;;;;21550:116;:142;;;;;21684:8;;;;;;;;;;;21683:9;21550:142;21532:1576;;;21724:13;;;;;;;;;;;21719:203;;21788:19;:25;21808:4;21788:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21817:19;:23;21837:2;21817:23;;;;;;;;;;;;;;;;;;;;;;;;;21788:52;21758:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;21719:203;21947:4;:10;21952:4;21947:10;;;;;;;;;;;;;;;;;;;;;;;;;21946:11;:24;;;;;21962:4;:8;21967:2;21962:8;;;;;;;;;;;;;;;;;;;;;;;;;21961:9;21946:24;21938:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22065:25;:31;22091:4;22065:31;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;22118:31;:35;22150:2;22118:35;;;;;;;;;;;;;;;;;;;;;;;;;22117:36;22065:88;22043:1054;;;22228:20;;22218:6;:30;;22188:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;22420:9;;22403:13;22413:2;22403:9;:13::i;:::-;22394:6;:22;;;;:::i;:::-;:35;;22364:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;22043:1054;;;22574:25;:29;22600:2;22574:29;;;;;;;;;;;;;;;;;;;;;;;;;:88;;;;;22625:31;:37;22657:4;22625:37;;;;;;;;;;;;;;;;;;;;;;;;;22624:38;22574:88;22552:545;;;22737:20;;22727:6;:30;;22697:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;22552:545;;;22897:31;:35;22929:2;22897:35;;;;;;;;;;;;;;;;;;;;;;;;;22892:205;;23009:9;;22992:13;23002:2;22992:9;:13::i;:::-;22983:6;:22;;;;:::i;:::-;:35;;22953:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;22892:205;22552:545;22043:1054;21532:1576;23120:28;23151:24;23169:4;23151:9;:24::i;:::-;23120:55;;23188:12;23227:18;;23203:20;:42;;23188:57;;23276:7;:35;;;;;23300:11;;;;;;;;;;;23276:35;:61;;;;;23329:8;;;;;;;;;;;23328:9;23276:61;:110;;;;;23355:25;:31;23381:4;23355:31;;;;;;;;;;;;;;;;;;;;;;;;;23354:32;23276:110;:153;;;;;23404:19;:25;23424:4;23404:25;;;;;;;;;;;;;;;;;;;;;;;;;23403:26;23276:153;:194;;;;;23447:19;:23;23467:2;23447:23;;;;;;;;;;;;;;;;;;;;;;;;;23446:24;23276:194;23258:326;;;23508:4;23497:8;;:15;;;;;;;;;;;;;;;;;;23529:10;:8;:10::i;:::-;23567:5;23556:8;;:16;;;;;;;;;;;;;;;;;;23258:326;23596:12;23612:8;;;;;;;;;;;23611:9;23596:24;;23637:19;:25;23657:4;23637:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;23666:19;:23;23686:2;23666:23;;;;;;;;;;;;;;;;;;;;;;;;;23637:52;23633:100;;;23716:5;23706:15;;23633:100;23745:12;23778:7;23774:831;;;23830:25;:29;23856:2;23830:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;23879:1;23863:13;;:17;23830:50;23826:630;;;23908:34;23938:3;23908:25;23919:13;;23908:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;23901:41;;24011:13;;23991:16;;23984:4;:23;;;;:::i;:::-;23983:41;;;;:::i;:::-;23961:18;;:63;;;;;;;:::i;:::-;;;;;;;;24093:13;;24073:16;;24066:4;:23;;;;:::i;:::-;24065:41;;;;:::i;:::-;24043:18;;:63;;;;;;;:::i;:::-;;;;;;;;23826:630;;;24168:25;:31;24194:4;24168:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;24218:1;24203:12;;:16;24168:51;24164:292;;;24247:33;24276:3;24247:24;24258:12;;24247:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;24240:40;;24348:12;;24329:15;;24322:4;:22;;;;:::i;:::-;24321:39;;;;:::i;:::-;24299:18;;:61;;;;;;;:::i;:::-;;;;;;;;24428:12;;24409:15;;24402:4;:22;;;;:::i;:::-;24401:39;;;;:::i;:::-;24379:18;;:61;;;;;;;:::i;:::-;;;;;;;;24164:292;23826:630;24483:1;24476:4;:8;24472:91;;;24505:42;24521:4;24535;24542;24505:15;:42::i;:::-;24472:91;24589:4;24579:14;;;;;:::i;:::-;;;23774:831;24617:33;24633:4;24639:2;24643:6;24617:15;:33::i;:::-;24677:11;;24661:13;:27;;;;21260:3438;;;;21147:3551;;;;:::o;1242:191::-;1316:16;1335:6;;;;;;;;;;;1316:25;;1361:8;1352:6;;:17;;;;;;;;;;;;;;;;;;1416:8;1385:40;;1406:8;1385:40;;;;;;;;;;;;1305:128;1242:191;:::o;20817:188::-;20934:5;20900:25;:31;20926:4;20900:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20991:5;20957:40;;20985:4;20957:40;;;;;;;;;;;;20817:188;;:::o;5081:721::-;5239:1;5221:20;;:6;:20;;;5213:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5323:1;5302:23;;:9;:23;;;5294:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5378:47;5399:6;5407:9;5418:6;5378:20;:47::i;:::-;5438:21;5462:9;:17;5472:6;5462:17;;;;;;;;;;;;;;;;5438:41;;5515:6;5498:13;:23;;5490:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5628:6;5612:13;:22;5592:9;:17;5602:6;5592:17;;;;;;;;;;;;;;;:42;;;;5676:6;5652:9;:20;5662:9;5652:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5717:9;5700:35;;5709:6;5700:35;;;5728:6;5700:35;;;;;;:::i;:::-;;;;;;;;5748:46;5768:6;5776:9;5787:6;5748:19;:46::i;:::-;5202:600;5081:721;;;:::o;25593:1452::-;25632:23;25658:24;25676:4;25658:9;:24::i;:::-;25632:50;;25693:25;25751:18;;25721;;:48;;;;:::i;:::-;25693:76;;25780:12;25828:1;25809:15;:20;:46;;;;25854:1;25833:17;:22;25809:46;25805:85;;;25872:7;;;;;25805:85;25945:2;25924:18;;:23;;;;:::i;:::-;25906:15;:41;25902:115;;;26003:2;25982:18;;:23;;;;:::i;:::-;25964:41;;25902:115;26029:23;26134:1;26105:17;26074:18;;26056:15;:36;;;;:::i;:::-;26055:67;;;;:::i;:::-;:80;;;;:::i;:::-;26029:106;;26146:26;26175:36;26195:15;26175;:19;;:36;;;;:::i;:::-;26146:65;;26224:25;26252:21;26224:49;;26286:36;26303:18;26286:16;:36::i;:::-;26335:18;26356:44;26382:17;26356:21;:25;;:44;;;;:::i;:::-;26335:65;;26413:23;26439:81;26492:17;26439:34;26454:18;;26439:10;:14;;:34;;;;:::i;:::-;:38;;:81;;;;:::i;:::-;26413:107;;26533:23;26572:15;26559:10;:28;;;;:::i;:::-;26533:54;;26621:1;26600:18;:22;;;;26654:1;26633:18;:22;;;;26690:1;26672:15;:19;:42;;;;;26713:1;26695:15;:19;26672:42;26668:280;;;26731:46;26744:15;26761;26731:12;:46::i;:::-;26797:139;26832:18;26869:15;26903:18;;26797:139;;;;;;;;:::i;:::-;;;;;;;;26668:280;26982:15;;;;;;;;;;;26974:29;;27011:21;26974:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26960:77;;;;;25621:1424;;;;;;;;;25593:1452;:::o;8131:98::-;8189:7;8220:1;8216;:5;;;;:::i;:::-;8209:12;;8131:98;;;;:::o;8237:::-;8295:7;8326:1;8322;:5;;;;:::i;:::-;8315:12;;8237:98;;;;:::o;6605:125::-;;;;:::o;6738:124::-;;;;:::o;8025:98::-;8083:7;8114:1;8110;:5;;;;:::i;:::-;8103:12;;8025:98;;;;:::o;24706:503::-;24774:21;24812:1;24798:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24774:40;;24843:4;24825;24830:1;24825:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24869:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24859:4;24864:1;24859:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24904:62;24921:4;24936:15;24954:11;24904:8;:62::i;:::-;25005:15;:66;;;25086:11;25112:1;25128:4;25155;25175:15;25005:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24761:448;24706:503;:::o;25217:368::-;25300:62;25317:4;25332:15;25350:11;25300:8;:62::i;:::-;25375:15;:31;;;25414:9;25447:4;25467:11;25493:1;25509;14284:6;25551:15;25375:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25217:368;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:60::-;3954:3;3975:5;3968:12;;3926:60;;;:::o;3992:142::-;4042:9;4075:53;4093:34;4102:24;4120:5;4102:24;:::i;:::-;4093:34;:::i;:::-;4075:53;:::i;:::-;4062:66;;3992:142;;;:::o;4140:126::-;4190:9;4223:37;4254:5;4223:37;:::i;:::-;4210:50;;4140:126;;;:::o;4272:153::-;4349:9;4382:37;4413:5;4382:37;:::i;:::-;4369:50;;4272:153;;;:::o;4431:185::-;4545:64;4603:5;4545:64;:::i;:::-;4540:3;4533:77;4431:185;;:::o;4622:276::-;4742:4;4780:2;4769:9;4765:18;4757:26;;4793:98;4888:1;4877:9;4873:17;4864:6;4793:98;:::i;:::-;4622:276;;;;:::o;4904:118::-;4991:24;5009:5;4991:24;:::i;:::-;4986:3;4979:37;4904:118;;:::o;5028:222::-;5121:4;5159:2;5148:9;5144:18;5136:26;;5172:71;5240:1;5229:9;5225:17;5216:6;5172:71;:::i;:::-;5028:222;;;;:::o;5256:619::-;5333:6;5341;5349;5398:2;5386:9;5377:7;5373:23;5369:32;5366:119;;;5404:79;;:::i;:::-;5366:119;5524:1;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5495:117;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5779:2;5805:53;5850:7;5841:6;5830:9;5826:22;5805:53;:::i;:::-;5795:63;;5750:118;5256:619;;;;;:::o;5881:118::-;5968:24;5986:5;5968:24;:::i;:::-;5963:3;5956:37;5881:118;;:::o;6005:222::-;6098:4;6136:2;6125:9;6121:18;6113:26;;6149:71;6217:1;6206:9;6202:17;6193:6;6149:71;:::i;:::-;6005:222;;;;:::o;6233:86::-;6268:7;6308:4;6301:5;6297:16;6286:27;;6233:86;;;:::o;6325:112::-;6408:22;6424:5;6408:22;:::i;:::-;6403:3;6396:35;6325:112;;:::o;6443:214::-;6532:4;6570:2;6559:9;6555:18;6547:26;;6583:67;6647:1;6636:9;6632:17;6623:6;6583:67;:::i;:::-;6443:214;;;;:::o;6663:117::-;6772:1;6769;6762:12;6786:117;6895:1;6892;6885:12;6909:117;7018:1;7015;7008:12;7049:568;7122:8;7132:6;7182:3;7175:4;7167:6;7163:17;7159:27;7149:122;;7190:79;;:::i;:::-;7149:122;7303:6;7290:20;7280:30;;7333:18;7325:6;7322:30;7319:117;;;7355:79;;:::i;:::-;7319:117;7469:4;7461:6;7457:17;7445:29;;7523:3;7515:4;7507:6;7503:17;7493:8;7489:32;7486:41;7483:128;;;7530:79;;:::i;:::-;7483:128;7049:568;;;;;:::o;7623:116::-;7693:21;7708:5;7693:21;:::i;:::-;7686:5;7683:32;7673:60;;7729:1;7726;7719:12;7673:60;7623:116;:::o;7745:133::-;7788:5;7826:6;7813:20;7804:29;;7842:30;7866:5;7842:30;:::i;:::-;7745:133;;;;:::o;7884:698::-;7976:6;7984;7992;8041:2;8029:9;8020:7;8016:23;8012:32;8009:119;;;8047:79;;:::i;:::-;8009:119;8195:1;8184:9;8180:17;8167:31;8225:18;8217:6;8214:30;8211:117;;;8247:79;;:::i;:::-;8211:117;8360:80;8432:7;8423:6;8412:9;8408:22;8360:80;:::i;:::-;8342:98;;;;8138:312;8489:2;8515:50;8557:7;8548:6;8537:9;8533:22;8515:50;:::i;:::-;8505:60;;8460:115;7884:698;;;;;:::o;8588:329::-;8647:6;8696:2;8684:9;8675:7;8671:23;8667:32;8664:119;;;8702:79;;:::i;:::-;8664:119;8822:1;8847:53;8892:7;8883:6;8872:9;8868:22;8847:53;:::i;:::-;8837:63;;8793:117;8588:329;;;;:::o;8923:468::-;8988:6;8996;9045:2;9033:9;9024:7;9020:23;9016:32;9013:119;;;9051:79;;:::i;:::-;9013:119;9171:1;9196:53;9241:7;9232:6;9221:9;9217:22;9196:53;:::i;:::-;9186:63;;9142:117;9298:2;9324:50;9366:7;9357:6;9346:9;9342:22;9324:50;:::i;:::-;9314:60;;9269:115;8923:468;;;;;:::o;9397:329::-;9456:6;9505:2;9493:9;9484:7;9480:23;9476:32;9473:119;;;9511:79;;:::i;:::-;9473:119;9631:1;9656:53;9701:7;9692:6;9681:9;9677:22;9656:53;:::i;:::-;9646:63;;9602:117;9397:329;;;;:::o;9732:474::-;9800:6;9808;9857:2;9845:9;9836:7;9832:23;9828:32;9825:119;;;9863:79;;:::i;:::-;9825:119;9983:1;10008:53;10053:7;10044:6;10033:9;10029:22;10008:53;:::i;:::-;9998:63;;9954:117;10110:2;10136:53;10181:7;10172:6;10161:9;10157:22;10136:53;:::i;:::-;10126:63;;10081:118;9732:474;;;;;:::o;10212:182::-;10352:34;10348:1;10340:6;10336:14;10329:58;10212:182;:::o;10400:366::-;10542:3;10563:67;10627:2;10622:3;10563:67;:::i;:::-;10556:74;;10639:93;10728:3;10639:93;:::i;:::-;10757:2;10752:3;10748:12;10741:19;;10400:366;;;:::o;10772:419::-;10938:4;10976:2;10965:9;10961:18;10953:26;;11025:9;11019:4;11015:20;11011:1;11000:9;10996:17;10989:47;11053:131;11179:4;11053:131;:::i;:::-;11045:139;;10772:419;;;:::o;11197:180::-;11245:77;11242:1;11235:88;11342:4;11339:1;11332:15;11366:4;11363:1;11356:15;11383:191;11423:3;11442:20;11460:1;11442:20;:::i;:::-;11437:25;;11476:20;11494:1;11476:20;:::i;:::-;11471:25;;11519:1;11516;11512:9;11505:16;;11540:3;11537:1;11534:10;11531:36;;;11547:18;;:::i;:::-;11531:36;11383:191;;;;:::o;11580:179::-;11720:31;11716:1;11708:6;11704:14;11697:55;11580:179;:::o;11765:366::-;11907:3;11928:67;11992:2;11987:3;11928:67;:::i;:::-;11921:74;;12004:93;12093:3;12004:93;:::i;:::-;12122:2;12117:3;12113:12;12106:19;;11765:366;;;:::o;12137:419::-;12303:4;12341:2;12330:9;12326:18;12318:26;;12390:9;12384:4;12380:20;12376:1;12365:9;12361:17;12354:47;12418:131;12544:4;12418:131;:::i;:::-;12410:139;;12137:419;;;:::o;12562:180::-;12610:77;12607:1;12600:88;12707:4;12704:1;12697:15;12731:4;12728:1;12721:15;12748:320;12792:6;12829:1;12823:4;12819:12;12809:22;;12876:1;12870:4;12866:12;12897:18;12887:81;;12953:4;12945:6;12941:17;12931:27;;12887:81;13015:2;13007:6;13004:14;12984:18;12981:38;12978:84;;13034:18;;:::i;:::-;12978:84;12799:269;12748:320;;;:::o;13074:227::-;13214:34;13210:1;13202:6;13198:14;13191:58;13283:10;13278:2;13270:6;13266:15;13259:35;13074:227;:::o;13307:366::-;13449:3;13470:67;13534:2;13529:3;13470:67;:::i;:::-;13463:74;;13546:93;13635:3;13546:93;:::i;:::-;13664:2;13659:3;13655:12;13648:19;;13307:366;;;:::o;13679:419::-;13845:4;13883:2;13872:9;13868:18;13860:26;;13932:9;13926:4;13922:20;13918:1;13907:9;13903:17;13896:47;13960:131;14086:4;13960:131;:::i;:::-;13952:139;;13679:419;;;:::o;14104:180::-;14152:77;14149:1;14142:88;14249:4;14246:1;14239:15;14273:4;14270:1;14263:15;14290:233;14329:3;14352:24;14370:5;14352:24;:::i;:::-;14343:33;;14398:66;14391:5;14388:77;14385:103;;14468:18;;:::i;:::-;14385:103;14515:1;14508:5;14504:13;14497:20;;14290:233;;;:::o;14529:102::-;14571:8;14618:5;14615:1;14611:13;14590:34;;14529:102;;;:::o;14637:848::-;14698:5;14705:4;14729:6;14720:15;;14753:5;14744:14;;14767:712;14788:1;14778:8;14775:15;14767:712;;;14883:4;14878:3;14874:14;14868:4;14865:24;14862:50;;;14892:18;;:::i;:::-;14862:50;14942:1;14932:8;14928:16;14925:451;;;15357:4;15350:5;15346:16;15337:25;;14925:451;15407:4;15401;15397:15;15389:23;;15437:32;15460:8;15437:32;:::i;:::-;15425:44;;14767:712;;;14637:848;;;;;;;:::o;15491:1073::-;15545:5;15736:8;15726:40;;15757:1;15748:10;;15759:5;;15726:40;15785:4;15775:36;;15802:1;15793:10;;15804:5;;15775:36;15871:4;15919:1;15914:27;;;;15955:1;15950:191;;;;15864:277;;15914:27;15932:1;15923:10;;15934:5;;;15950:191;15995:3;15985:8;15982:17;15979:43;;;16002:18;;:::i;:::-;15979:43;16051:8;16048:1;16044:16;16035:25;;16086:3;16079:5;16076:14;16073:40;;;16093:18;;:::i;:::-;16073:40;16126:5;;;15864:277;;16250:2;16240:8;16237:16;16231:3;16225:4;16222:13;16218:36;16200:2;16190:8;16187:16;16182:2;16176:4;16173:12;16169:35;16153:111;16150:246;;;16306:8;16300:4;16296:19;16287:28;;16341:3;16334:5;16331:14;16328:40;;;16348:18;;:::i;:::-;16328:40;16381:5;;16150:246;16421:42;16459:3;16449:8;16443:4;16440:1;16421:42;:::i;:::-;16406:57;;;;16495:4;16490:3;16486:14;16479:5;16476:25;16473:51;;;16504:18;;:::i;:::-;16473:51;16553:4;16546:5;16542:16;16533:25;;15491:1073;;;;;;:::o;16570:281::-;16628:5;16652:23;16670:4;16652:23;:::i;:::-;16644:31;;16696:25;16712:8;16696:25;:::i;:::-;16684:37;;16740:104;16777:66;16767:8;16761:4;16740:104;:::i;:::-;16731:113;;16570:281;;;;:::o;16857:410::-;16897:7;16920:20;16938:1;16920:20;:::i;:::-;16915:25;;16954:20;16972:1;16954:20;:::i;:::-;16949:25;;17009:1;17006;17002:9;17031:30;17049:11;17031:30;:::i;:::-;17020:41;;17210:1;17201:7;17197:15;17194:1;17191:22;17171:1;17164:9;17144:83;17121:139;;17240:18;;:::i;:::-;17121:139;16905:362;16857:410;;;;:::o;17273:180::-;17321:77;17318:1;17311:88;17418:4;17415:1;17408:15;17442:4;17439:1;17432:15;17459:185;17499:1;17516:20;17534:1;17516:20;:::i;:::-;17511:25;;17550:20;17568:1;17550:20;:::i;:::-;17545:25;;17589:1;17579:35;;17594:18;;:::i;:::-;17579:35;17636:1;17633;17629:9;17624:14;;17459:185;;;;:::o;17650:220::-;17790:34;17786:1;17778:6;17774:14;17767:58;17859:3;17854:2;17846:6;17842:15;17835:28;17650:220;:::o;17876:366::-;18018:3;18039:67;18103:2;18098:3;18039:67;:::i;:::-;18032:74;;18115:93;18204:3;18115:93;:::i;:::-;18233:2;18228:3;18224:12;18217:19;;17876:366;;;:::o;18248:419::-;18414:4;18452:2;18441:9;18437:18;18429:26;;18501:9;18495:4;18491:20;18487:1;18476:9;18472:17;18465:47;18529:131;18655:4;18529:131;:::i;:::-;18521:139;;18248:419;;;:::o;18673:223::-;18813:34;18809:1;18801:6;18797:14;18790:58;18882:6;18877:2;18869:6;18865:15;18858:31;18673:223;:::o;18902:366::-;19044:3;19065:67;19129:2;19124:3;19065:67;:::i;:::-;19058:74;;19141:93;19230:3;19141:93;:::i;:::-;19259:2;19254:3;19250:12;19243:19;;18902:366;;;:::o;19274:419::-;19440:4;19478:2;19467:9;19463:18;19455:26;;19527:9;19521:4;19517:20;19513:1;19502:9;19498:17;19491:47;19555:131;19681:4;19555:131;:::i;:::-;19547:139;;19274:419;;;:::o;19699:244::-;19839:34;19835:1;19827:6;19823:14;19816:58;19908:27;19903:2;19895:6;19891:15;19884:52;19699:244;:::o;19949:366::-;20091:3;20112:67;20176:2;20171:3;20112:67;:::i;:::-;20105:74;;20188:93;20277:3;20188:93;:::i;:::-;20306:2;20301:3;20297:12;20290:19;;19949:366;;;:::o;20321:419::-;20487:4;20525:2;20514:9;20510:18;20502:26;;20574:9;20568:4;20564:20;20560:1;20549:9;20545:17;20538:47;20602:131;20728:4;20602:131;:::i;:::-;20594:139;;20321:419;;;:::o;20746:224::-;20886:34;20882:1;20874:6;20870:14;20863:58;20955:7;20950:2;20942:6;20938:15;20931:32;20746:224;:::o;20976:366::-;21118:3;21139:67;21203:2;21198:3;21139:67;:::i;:::-;21132:74;;21215:93;21304:3;21215:93;:::i;:::-;21333:2;21328:3;21324:12;21317:19;;20976:366;;;:::o;21348:419::-;21514:4;21552:2;21541:9;21537:18;21529:26;;21601:9;21595:4;21591:20;21587:1;21576:9;21572:17;21565:47;21629:131;21755:4;21629:131;:::i;:::-;21621:139;;21348:419;;;:::o;21773:221::-;21913:34;21909:1;21901:6;21897:14;21890:58;21982:4;21977:2;21969:6;21965:15;21958:29;21773:221;:::o;22000:366::-;22142:3;22163:67;22227:2;22222:3;22163:67;:::i;:::-;22156:74;;22239:93;22328:3;22239:93;:::i;:::-;22357:2;22352:3;22348:12;22341:19;;22000:366;;;:::o;22372:419::-;22538:4;22576:2;22565:9;22561:18;22553:26;;22625:9;22619:4;22615:20;22611:1;22600:9;22596:17;22589:47;22653:131;22779:4;22653:131;:::i;:::-;22645:139;;22372:419;;;:::o;22797:240::-;22937:34;22933:1;22925:6;22921:14;22914:58;23006:23;23001:2;22993:6;22989:15;22982:48;22797:240;:::o;23043:366::-;23185:3;23206:67;23270:2;23265:3;23206:67;:::i;:::-;23199:74;;23282:93;23371:3;23282:93;:::i;:::-;23400:2;23395:3;23391:12;23384:19;;23043:366;;;:::o;23415:419::-;23581:4;23619:2;23608:9;23604:18;23596:26;;23668:9;23662:4;23658:20;23654:1;23643:9;23639:17;23632:47;23696:131;23822:4;23696:131;:::i;:::-;23688:139;;23415:419;;;:::o;23840:239::-;23980:34;23976:1;23968:6;23964:14;23957:58;24049:22;24044:2;24036:6;24032:15;24025:47;23840:239;:::o;24085:366::-;24227:3;24248:67;24312:2;24307:3;24248:67;:::i;:::-;24241:74;;24324:93;24413:3;24324:93;:::i;:::-;24442:2;24437:3;24433:12;24426:19;;24085:366;;;:::o;24457:419::-;24623:4;24661:2;24650:9;24646:18;24638:26;;24710:9;24704:4;24700:20;24696:1;24685:9;24681:17;24674:47;24738:131;24864:4;24738:131;:::i;:::-;24730:139;;24457:419;;;:::o;24882:225::-;25022:34;25018:1;25010:6;25006:14;24999:58;25091:8;25086:2;25078:6;25074:15;25067:33;24882:225;:::o;25113:366::-;25255:3;25276:67;25340:2;25335:3;25276:67;:::i;:::-;25269:74;;25352:93;25441:3;25352:93;:::i;:::-;25470:2;25465:3;25461:12;25454:19;;25113:366;;;:::o;25485:419::-;25651:4;25689:2;25678:9;25674:18;25666:26;;25738:9;25732:4;25728:20;25724:1;25713:9;25709:17;25702:47;25766:131;25892:4;25766:131;:::i;:::-;25758:139;;25485:419;;;:::o;25910:223::-;26050:34;26046:1;26038:6;26034:14;26027:58;26119:6;26114:2;26106:6;26102:15;26095:31;25910:223;:::o;26139:366::-;26281:3;26302:67;26366:2;26361:3;26302:67;:::i;:::-;26295:74;;26378:93;26467:3;26378:93;:::i;:::-;26496:2;26491:3;26487:12;26480:19;;26139:366;;;:::o;26511:419::-;26677:4;26715:2;26704:9;26700:18;26692:26;;26764:9;26758:4;26754:20;26750:1;26739:9;26735:17;26728:47;26792:131;26918:4;26792:131;:::i;:::-;26784:139;;26511:419;;;:::o;26936:221::-;27076:34;27072:1;27064:6;27060:14;27053:58;27145:4;27140:2;27132:6;27128:15;27121:29;26936:221;:::o;27163:366::-;27305:3;27326:67;27390:2;27385:3;27326:67;:::i;:::-;27319:74;;27402:93;27491:3;27402:93;:::i;:::-;27520:2;27515:3;27511:12;27504:19;;27163:366;;;:::o;27535:419::-;27701:4;27739:2;27728:9;27724:18;27716:26;;27788:9;27782:4;27778:20;27774:1;27763:9;27759:17;27752:47;27816:131;27942:4;27816:131;:::i;:::-;27808:139;;27535:419;;;:::o;27960:224::-;28100:34;28096:1;28088:6;28084:14;28077:58;28169:7;28164:2;28156:6;28152:15;28145:32;27960:224;:::o;28190:366::-;28332:3;28353:67;28417:2;28412:3;28353:67;:::i;:::-;28346:74;;28429:93;28518:3;28429:93;:::i;:::-;28547:2;28542:3;28538:12;28531:19;;28190:366;;;:::o;28562:419::-;28728:4;28766:2;28755:9;28751:18;28743:26;;28815:9;28809:4;28805:20;28801:1;28790:9;28786:17;28779:47;28843:131;28969:4;28843:131;:::i;:::-;28835:139;;28562:419;;;:::o;28987:222::-;29127:34;29123:1;29115:6;29111:14;29104:58;29196:5;29191:2;29183:6;29179:15;29172:30;28987:222;:::o;29215:366::-;29357:3;29378:67;29442:2;29437:3;29378:67;:::i;:::-;29371:74;;29454:93;29543:3;29454:93;:::i;:::-;29572:2;29567:3;29563:12;29556:19;;29215:366;;;:::o;29587:419::-;29753:4;29791:2;29780:9;29776:18;29768:26;;29840:9;29834:4;29830:20;29826:1;29815:9;29811:17;29804:47;29868:131;29994:4;29868:131;:::i;:::-;29860:139;;29587:419;;;:::o;30012:172::-;30152:24;30148:1;30140:6;30136:14;30129:48;30012:172;:::o;30190:366::-;30332:3;30353:67;30417:2;30412:3;30353:67;:::i;:::-;30346:74;;30429:93;30518:3;30429:93;:::i;:::-;30547:2;30542:3;30538:12;30531:19;;30190:366;;;:::o;30562:419::-;30728:4;30766:2;30755:9;30751:18;30743:26;;30815:9;30809:4;30805:20;30801:1;30790:9;30786:17;30779:47;30843:131;30969:4;30843:131;:::i;:::-;30835:139;;30562:419;;;:::o;30987:177::-;31127:29;31123:1;31115:6;31111:14;31104:53;30987:177;:::o;31170:366::-;31312:3;31333:67;31397:2;31392:3;31333:67;:::i;:::-;31326:74;;31409:93;31498:3;31409:93;:::i;:::-;31527:2;31522:3;31518:12;31511:19;;31170:366;;;:::o;31542:419::-;31708:4;31746:2;31735:9;31731:18;31723:26;;31795:9;31789:4;31785:20;31781:1;31770:9;31766:17;31759:47;31823:131;31949:4;31823:131;:::i;:::-;31815:139;;31542:419;;;:::o;31967:240::-;32107:34;32103:1;32095:6;32091:14;32084:58;32176:23;32171:2;32163:6;32159:15;32152:48;31967:240;:::o;32213:366::-;32355:3;32376:67;32440:2;32435:3;32376:67;:::i;:::-;32369:74;;32452:93;32541:3;32452:93;:::i;:::-;32570:2;32565:3;32561:12;32554:19;;32213:366;;;:::o;32585:419::-;32751:4;32789:2;32778:9;32774:18;32766:26;;32838:9;32832:4;32828:20;32824:1;32813:9;32809:17;32802:47;32866:131;32992:4;32866:131;:::i;:::-;32858:139;;32585:419;;;:::o;33010:169::-;33150:21;33146:1;33138:6;33134:14;33127:45;33010:169;:::o;33185:366::-;33327:3;33348:67;33412:2;33407:3;33348:67;:::i;:::-;33341:74;;33424:93;33513:3;33424:93;:::i;:::-;33542:2;33537:3;33533:12;33526:19;;33185:366;;;:::o;33557:419::-;33723:4;33761:2;33750:9;33746:18;33738:26;;33810:9;33804:4;33800:20;33796:1;33785:9;33781:17;33774:47;33838:131;33964:4;33838:131;:::i;:::-;33830:139;;33557:419;;;:::o;33982:241::-;34122:34;34118:1;34110:6;34106:14;34099:58;34191:24;34186:2;34178:6;34174:15;34167:49;33982:241;:::o;34229:366::-;34371:3;34392:67;34456:2;34451:3;34392:67;:::i;:::-;34385:74;;34468:93;34557:3;34468:93;:::i;:::-;34586:2;34581:3;34577:12;34570:19;;34229:366;;;:::o;34601:419::-;34767:4;34805:2;34794:9;34790:18;34782:26;;34854:9;34848:4;34844:20;34840:1;34829:9;34825:17;34818:47;34882:131;35008:4;34882:131;:::i;:::-;34874:139;;34601:419;;;:::o;35026:194::-;35066:4;35086:20;35104:1;35086:20;:::i;:::-;35081:25;;35120:20;35138:1;35120:20;:::i;:::-;35115:25;;35164:1;35161;35157:9;35149:17;;35188:1;35182:4;35179:11;35176:37;;;35193:18;;:::i;:::-;35176:37;35026:194;;;;:::o;35226:225::-;35366:34;35362:1;35354:6;35350:14;35343:58;35435:8;35430:2;35422:6;35418:15;35411:33;35226:225;:::o;35457:366::-;35599:3;35620:67;35684:2;35679:3;35620:67;:::i;:::-;35613:74;;35696:93;35785:3;35696:93;:::i;:::-;35814:2;35809:3;35805:12;35798:19;;35457:366;;;:::o;35829:419::-;35995:4;36033:2;36022:9;36018:18;36010:26;;36082:9;36076:4;36072:20;36068:1;36057:9;36053:17;36046:47;36110:131;36236:4;36110:131;:::i;:::-;36102:139;;35829:419;;;:::o;36254:442::-;36403:4;36441:2;36430:9;36426:18;36418:26;;36454:71;36522:1;36511:9;36507:17;36498:6;36454:71;:::i;:::-;36535:72;36603:2;36592:9;36588:18;36579:6;36535:72;:::i;:::-;36617;36685:2;36674:9;36670:18;36661:6;36617:72;:::i;:::-;36254:442;;;;;;:::o;36702:147::-;36803:11;36840:3;36825:18;;36702:147;;;;:::o;36855:114::-;;:::o;36975:398::-;37134:3;37155:83;37236:1;37231:3;37155:83;:::i;:::-;37148:90;;37247:93;37336:3;37247:93;:::i;:::-;37365:1;37360:3;37356:11;37349:18;;36975:398;;;:::o;37379:379::-;37563:3;37585:147;37728:3;37585:147;:::i;:::-;37578:154;;37749:3;37742:10;;37379:379;;;:::o;37764:180::-;37812:77;37809:1;37802:88;37909:4;37906:1;37899:15;37933:4;37930:1;37923:15;37950:143;38007:5;38038:6;38032:13;38023:22;;38054:33;38081:5;38054:33;:::i;:::-;37950:143;;;;:::o;38099:351::-;38169:6;38218:2;38206:9;38197:7;38193:23;38189:32;38186:119;;;38224:79;;:::i;:::-;38186:119;38344:1;38369:64;38425:7;38416:6;38405:9;38401:22;38369:64;:::i;:::-;38359:74;;38315:128;38099:351;;;;:::o;38456:85::-;38501:7;38530:5;38519:16;;38456:85;;;:::o;38547:158::-;38605:9;38638:61;38656:42;38665:32;38691:5;38665:32;:::i;:::-;38656:42;:::i;:::-;38638:61;:::i;:::-;38625:74;;38547:158;;;:::o;38711:147::-;38806:45;38845:5;38806:45;:::i;:::-;38801:3;38794:58;38711:147;;:::o;38864:114::-;38931:6;38965:5;38959:12;38949:22;;38864:114;;;:::o;38984:184::-;39083:11;39117:6;39112:3;39105:19;39157:4;39152:3;39148:14;39133:29;;38984:184;;;;:::o;39174:132::-;39241:4;39264:3;39256:11;;39294:4;39289:3;39285:14;39277:22;;39174:132;;;:::o;39312:108::-;39389:24;39407:5;39389:24;:::i;:::-;39384:3;39377:37;39312:108;;:::o;39426:179::-;39495:10;39516:46;39558:3;39550:6;39516:46;:::i;:::-;39594:4;39589:3;39585:14;39571:28;;39426:179;;;;:::o;39611:113::-;39681:4;39713;39708:3;39704:14;39696:22;;39611:113;;;:::o;39760:732::-;39879:3;39908:54;39956:5;39908:54;:::i;:::-;39978:86;40057:6;40052:3;39978:86;:::i;:::-;39971:93;;40088:56;40138:5;40088:56;:::i;:::-;40167:7;40198:1;40183:284;40208:6;40205:1;40202:13;40183:284;;;40284:6;40278:13;40311:63;40370:3;40355:13;40311:63;:::i;:::-;40304:70;;40397:60;40450:6;40397:60;:::i;:::-;40387:70;;40243:224;40230:1;40227;40223:9;40218:14;;40183:284;;;40187:14;40483:3;40476:10;;39884:608;;;39760:732;;;;:::o;40498:831::-;40761:4;40799:3;40788:9;40784:19;40776:27;;40813:71;40881:1;40870:9;40866:17;40857:6;40813:71;:::i;:::-;40894:80;40970:2;40959:9;40955:18;40946:6;40894:80;:::i;:::-;41021:9;41015:4;41011:20;41006:2;40995:9;40991:18;40984:48;41049:108;41152:4;41143:6;41049:108;:::i;:::-;41041:116;;41167:72;41235:2;41224:9;41220:18;41211:6;41167:72;:::i;:::-;41249:73;41317:3;41306:9;41302:19;41293:6;41249:73;:::i;:::-;40498:831;;;;;;;;:::o;41335:807::-;41584:4;41622:3;41611:9;41607:19;41599:27;;41636:71;41704:1;41693:9;41689:17;41680:6;41636:71;:::i;:::-;41717:72;41785:2;41774:9;41770:18;41761:6;41717:72;:::i;:::-;41799:80;41875:2;41864:9;41860:18;41851:6;41799:80;:::i;:::-;41889;41965:2;41954:9;41950:18;41941:6;41889:80;:::i;:::-;41979:73;42047:3;42036:9;42032:19;42023:6;41979:73;:::i;:::-;42062;42130:3;42119:9;42115:19;42106:6;42062:73;:::i;:::-;41335:807;;;;;;;;;:::o;42148:143::-;42205:5;42236:6;42230:13;42221:22;;42252:33;42279:5;42252:33;:::i;:::-;42148:143;;;;:::o;42297:663::-;42385:6;42393;42401;42450:2;42438:9;42429:7;42425:23;42421:32;42418:119;;;42456:79;;:::i;:::-;42418:119;42576:1;42601:64;42657:7;42648:6;42637:9;42633:22;42601:64;:::i;:::-;42591:74;;42547:128;42714:2;42740:64;42796:7;42787:6;42776:9;42772:22;42740:64;:::i;:::-;42730:74;;42685:129;42853:2;42879:64;42935:7;42926:6;42915:9;42911:22;42879:64;:::i;:::-;42869:74;;42824:129;42297:663;;;;;:::o
Swarm Source
ipfs://604ba4dbeca63155a8a6ac1d0e46b92cb316116dad15b55a36514754ef276db0
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.