Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 SBT
Holders
11
Total Transfers
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Shiboost
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-02 */ /** 𝓢𝓗𝓘𝓑𝓞𝓞𝓢𝓣 Investments • Experts • Network. 𝓢𝓞𝓒𝓘𝓐𝓛𝓢 WEBSITE : www.shiboost.com TWITTER : @ShiboostERC20 TELEGRAM : https://t.me/Shiboost */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); 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, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Shiboost is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Shiboost"; string private _symbol = "SBT"; uint8 private _decimals = 18; address payable public marketingWallet = payable(0x0bE70e8cECAfBc4c3A704af21634B2b5e261E63F); address payable public DeveloperWallet = payable(0x8754759f47Ea821E66801e9C654B5872d0F09e71); address public liquidityReciever; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; // mapping (address => bool) public blacklist; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; uint256 public _buyLiquidityFee = 1; uint256 public _buyMarketingFee = 2; uint256 public _buyDeveloperFee = 3; uint256 public _sellLiquidityFee = 1; uint256 public _sellMarketingFee = 2; uint256 public _sellDeveloperFee = 3; uint256 public feeUnits = 100; uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 private _totalSupply = 10000000 * 10**_decimals; uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(100); //0.001% uint256 public _maxTxAmount = _totalSupply.mul(0).div(100); //0% uint256 public _walletMax = _totalSupply.mul(0).div(100); //0% IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public EnableTransactionLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[DeveloperWallet] = true; isExcludedFromFee[address(this)] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[marketingWallet] = true; isWalletLimitExempt[DeveloperWallet] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[marketingWallet] = true; isTxLimitExempt[DeveloperWallet] = true; isTxLimitExempt[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); isMarketPair[address(uniswapPair)] = true; liquidityReciever = address(msg.sender); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function enableTxLimit(bool _status) external onlyOwner { EnableTransactionLimit = _status; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWallet = payable(newAddress); } function setLiquidityWalletAddress(address newAddress) external onlyOwner() { liquidityReciever = payable(newAddress); } function setDeveloperWalletAddress(address newAddress) external onlyOwner() { DeveloperWallet = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } // function setBlacklist(address _adr, bool _status) external onlyOwner { // blacklist[_adr] = _status; // } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; } function setBuyTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _buyLiquidityFee = _Liquidity; _buyMarketingFee = _Marketing; _buyDeveloperFee = _Developer; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); require(_totalTaxIfBuying <= (feeUnits/25), "Buy fees must be 25% or less"); } function setSellTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _sellLiquidityFee = _Liquidity; _sellMarketingFee = _Marketing; _sellDeveloperFee = _Developer; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); require(_totalTaxIfSelling <= (feeUnits/25), "Sell fees must be 25% or less"); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); // require(!blacklist[sender] && !blacklist[recipient], "Bot Enemy address Restricted!"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function rescueStuckedToken(address _token, uint _amount) external onlyOwner { IERC20(_token).transfer(msg.sender,_amount); } function rescueFunds() external onlyOwner { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling); uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee); // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee); uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2); uint256 tokenForSwap = tAmount.sub(tokenForLp); uint256 initialBalance = address(this).balance; swapTokensForEth(tokenForSwap); uint256 recievedBalance = address(this).balance.sub(initialBalance); uint256 totalETHFee = totalShares.sub(liquidityShare.div(2)); uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = recievedBalance.mul(MarketingShare).div(totalETHFee); uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing); if(amountETHMarketing > 0) { payable(marketingWallet).transfer(amountETHMarketing); } if(amountETHDeveloper > 0) { payable(DeveloperWallet).transfer(amountETHDeveloper); } if(amountETHLiquidity > 0 && tokenForLp > 0) { addLiquidity(tokenForLp, amountETHLiquidity); } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable liquidityReciever, block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } /* AirDrop Function*/ function airdrop(address[] calldata _address,uint[] calldata _tokens) external onlyOwner { address account = msg.sender; require(_address.length == _tokens.length,"Error: Mismatch Length"); uint tokenCount; for(uint i = 0; i < _tokens.length; i++) { tokenCount += _tokens[i]; } require(balanceOf(account) >= tokenCount,"Error: Insufficient Error!!"); _balances[account] = _balances[account].sub(tokenCount); for(uint j = 0; j < _address.length; j++) { _balances[_address[j]] = _balances[_address[j]].add(_tokens[j]); emit Transfer(account, _address[j], _tokens[j]); } } }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","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":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckedToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDeveloperWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setLiquidityWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"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":"uniswapPair","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":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526040518060400160405280600881526020017f536869626f6f7374000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062001048565b506040518060400160405280600381526020017f5342540000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062001048565b506012600360006101000a81548160ff021916908360ff160217905550730be70e8cecafbc4c3a704af21634b2b5e261e63f600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738754759f47ea821e66801e9c654b5872d0f09e71600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600c556002600d556003600e556001600f55600260105560036011556064601255600360009054906101000a900460ff16600a620002169190620013aa565b62989680620002269190620014e7565b6015556200026060646200024c600160155462000e7660201b6200329a1790919060201c565b62000efa60201b620033151790919060201c565b6016556200029a606462000286600060155462000e7660201b6200329a1790919060201c565b62000efa60201b620033151790919060201c565b601755620002d46064620002c0600060155462000e7660201b6200329a1790919060201c565b62000efa60201b620033151790919060201c565b6018556001601a60156101000a81548160ff0219169083151502179055506000601a60166101000a81548160ff0219169083151502179055506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff0219169083151502179055503480156200035057600080fd5b5060006200036362000f4c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046157600080fd5b505afa15801562000476573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049c91906200110f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004ff57600080fd5b505afa15801562000514573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053a91906200110f565b6040518363ffffffff1660e01b815260040162000559929190620011ec565b602060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005af91906200110f565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620006eb62000f5460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006200089e62000f5460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600062000acb62000f5460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000ca1600e5462000c8d600d54600c5462000f7d60201b6200335f1790919060201c565b62000f7d60201b6200335f1790919060201c565b60138190555062000ce060115462000ccc601054600f5462000f7d60201b6200335f1790919060201c565b62000f7d60201b6200335f1790919060201c565b601481905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506015546006600062000db862000f4c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000e0662000f4c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60155460405162000e67919062001281565b60405180910390a3506200173c565b60008083141562000e8b576000905062000ef4565b6000828462000e9b9190620014e7565b905082848262000eac919062001317565b1462000eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ee6906200125f565b60405180910390fd5b809150505b92915050565b600062000f4483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000fe060201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000f8e9190620012ba565b90508381101562000fd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fcd906200123d565b60405180910390fd5b8091505092915050565b600080831182906200102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001021919062001219565b60405180910390fd5b50600083856200103b919062001317565b9050809150509392505050565b8280546200105690620015c9565b90600052602060002090601f0160209004810192826200107a5760008555620010c6565b82601f106200109557805160ff1916838001178555620010c6565b82800160010185558215620010c6579182015b82811115620010c5578251825591602001919060010190620010a8565b5b509050620010d59190620010d9565b5090565b5b80821115620010f4576000816000905550600101620010da565b5090565b600081519050620011098162001722565b92915050565b6000602082840312156200112257600080fd5b60006200113284828501620010f8565b91505092915050565b620011468162001548565b82525050565b600062001159826200129e565b620011658185620012a9565b93506200117781856020860162001593565b62001182816200168c565b840191505092915050565b60006200119c601b83620012a9565b9150620011a982620016aa565b602082019050919050565b6000620011c3602183620012a9565b9150620011d082620016d3565b604082019050919050565b620011e6816200157c565b82525050565b60006040820190506200120360008301856200113b565b6200121260208301846200113b565b9392505050565b600060208201905081810360008301526200123581846200114c565b905092915050565b6000602082019050818103600083015262001258816200118d565b9050919050565b600060208201905081810360008301526200127a81620011b4565b9050919050565b6000602082019050620012986000830184620011db565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620012c7826200157c565b9150620012d4836200157c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200130c576200130b620015ff565b5b828201905092915050565b600062001324826200157c565b915062001331836200157c565b9250826200134457620013436200162e565b5b828204905092915050565b6000808291508390505b6001851115620013a157808604811115620013795762001378620015ff565b5b6001851615620013895780820291505b808102905062001399856200169d565b945062001359565b94509492505050565b6000620013b7826200157c565b9150620013c48362001586565b9250620013f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013fb565b905092915050565b6000826200140d5760019050620014e0565b816200141d5760009050620014e0565b8160018114620014365760028114620014415762001477565b6001915050620014e0565b60ff841115620014565762001455620015ff565b5b8360020a91508482111562001470576200146f620015ff565b5b50620014e0565b5060208310610133831016604e8410600b8410161715620014b15782820a905083811115620014ab57620014aa620015ff565b5b620014e0565b620014c084848460016200134f565b92509050818404811115620014da57620014d9620015ff565b5b81810290505b9392505050565b6000620014f4826200157c565b915062001501836200157c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200153d576200153c620015ff565b5b828202905092915050565b600062001555826200155c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620015b357808201518184015260208101905062001596565b83811115620015c3576000848401525b50505050565b60006002820490506001821680620015e257607f821691505b60208210811415620015f957620015f86200165d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6200172d8162001548565b81146200173957600080fd5b50565b60805160601c60a05160601c615a3b620017766000396000818161107801526114cb01526000818161149f01526114f70152615a3b6000f3fe6080604052600436106103b15760003560e01c806388790a68116101e7578063da00097d1161010d578063f1d5f517116100a0578063f84ba65d1161006f578063f84ba65d14610e09578063f872858a14610e32578063f8f6329014610e5d578063fb4b8e6c14610e88576103b8565b8063f1d5f51714610d63578063f2fde38b14610d8c578063f455444614610db5578063f680f79914610dde576103b8565b8063ec28438a116100dc578063ec28438a14610cbd578063ee828db314610ce6578063ef422a1814610d0f578063f0cd1dac14610d38576103b8565b8063da00097d14610c13578063dc44b6a014610c3e578063dd62ed3e14610c69578063e6b2603b14610ca6576103b8565b8063a9059cbb11610185578063c860795211610154578063c860795214610b57578063c867d60b14610b82578063c9c9afc514610bbf578063d2d7ad8314610be8576103b8565b8063a9059cbb14610a9b578063c49b9a8014610ad8578063c5d2418914610b01578063c816841b14610b2c576103b8565b806395d89b41116101c157806395d89b41146109df57806398e944c814610a0a578063a457c2d714610a35578063a5d69d1f14610a72576103b8565b806388790a681461094c5780638b42507f146109775780638da5cb5b146109b4576103b8565b80633b97084a116102d757806370a082311161026a578063807c2d9c11610239578063807c2d9c146108a257806382eefb43146108cd578063844d591c146108f85780638526148514610921576103b8565b806370a08231146107f8578063715018a61461083557806375f0a8741461084c5780637d1db4a514610877576103b8565b80635194f9bf116102a65780635194f9bf1461072a5780635342acb4146107555780635881f3ef1461079257806367243482146107cf576103b8565b80633b97084a146106705780633ecad271146106995780634a74bb02146106d65780634cb80fd514610701576103b8565b80632198cf6c1161034f57806327c8f8351161031e57806327c8f835146105b25780632b112e49146105dd578063313ce567146106085780633950935114610633576103b8565b80632198cf6c146104f857806323555d571461052157806323b872dd1461054c5780632563ae8314610589576103b8565b8063095ea7b31161038b578063095ea7b31461043c5780631694505e1461047957806318160ddd146104a45780631870517a146104cf576103b8565b806306fdde03146103bd57806308733214146103e85780630930907b14610411576103b8565b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610eb1565b6040516103df9190615002565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190614afc565b610f43565b005b34801561041d57600080fd5b50610426611076565b6040516104339190614ee3565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e91906149d0565b61109a565b6040516104709190614fcc565b60405180910390f35b34801561048557600080fd5b5061048e6110b8565b60405161049b9190614fe7565b60405180910390f35b3480156104b057600080fd5b506104b96110de565b6040516104c691906151e4565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f19190614afc565b6110e8565b005b34801561050457600080fd5b5061051f600480360381019061051a9190614994565b61121b565b005b34801561052d57600080fd5b5061053661130b565b60405161054391906151e4565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e9190614945565b611311565b6040516105809190614fcc565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190614a81565b6113eb565b005b3480156105be57600080fd5b506105c761149d565b6040516105d49190614ee3565b60405180910390f35b3480156105e957600080fd5b506105f26114c1565b6040516105ff91906151e4565b60405180910390f35b34801561061457600080fd5b5061061d61153f565b60405161062a9190615289565b60405180910390f35b34801561063f57600080fd5b5061065a600480360381019061065591906149d0565b611556565b6040516106679190614fcc565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190614ad3565b611609565b005b3480156106a557600080fd5b506106c060048036038101906106bb91906148b7565b6116a8565b6040516106cd9190614fcc565b60405180910390f35b3480156106e257600080fd5b506106eb6116c8565b6040516106f89190614fcc565b60405180910390f35b34801561070d57600080fd5b50610728600480360381019061072391906148b7565b6116db565b005b34801561073657600080fd5b5061073f6117b4565b60405161074c91906151e4565b60405180910390f35b34801561076157600080fd5b5061077c600480360381019061077791906148b7565b6117ba565b6040516107899190614fcc565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b491906148b7565b6117da565b6040516107c69190614ee3565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f19190614a0c565b611cbe565b005b34801561080457600080fd5b5061081f600480360381019061081a91906148b7565b61217d565b60405161082c91906151e4565b60405180910390f35b34801561084157600080fd5b5061084a6121c6565b005b34801561085857600080fd5b5061086161231b565b60405161086e9190614efe565b60405180910390f35b34801561088357600080fd5b5061088c612341565b60405161089991906151e4565b60405180910390f35b3480156108ae57600080fd5b506108b7612347565b6040516108c491906151e4565b60405180910390f35b3480156108d957600080fd5b506108e261234d565b6040516108ef91906151e4565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190614994565b612353565b005b34801561092d57600080fd5b50610936612443565b6040516109439190614fcc565b60405180910390f35b34801561095857600080fd5b50610961612456565b60405161096e91906151e4565b60405180910390f35b34801561098357600080fd5b5061099e600480360381019061099991906148b7565b61245c565b6040516109ab9190614fcc565b60405180910390f35b3480156109c057600080fd5b506109c961247c565b6040516109d69190614ee3565b60405180910390f35b3480156109eb57600080fd5b506109f46124a5565b604051610a019190615002565b60405180910390f35b348015610a1657600080fd5b50610a1f612537565b604051610a2c9190614ee3565b60405180910390f35b348015610a4157600080fd5b50610a5c6004803603810190610a5791906149d0565b61255d565b604051610a699190614fcc565b60405180910390f35b348015610a7e57600080fd5b50610a996004803603810190610a949190614a81565b61262a565b005b348015610aa757600080fd5b50610ac26004803603810190610abd91906149d0565b6126dc565b604051610acf9190614fcc565b60405180910390f35b348015610ae457600080fd5b50610aff6004803603810190610afa9190614a81565b6126fb565b005b348015610b0d57600080fd5b50610b166127e4565b604051610b2391906151e4565b60405180910390f35b348015610b3857600080fd5b50610b416127ea565b604051610b4e9190614ee3565b60405180910390f35b348015610b6357600080fd5b50610b6c612810565b604051610b7991906151e4565b60405180910390f35b348015610b8e57600080fd5b50610ba96004803603810190610ba491906148b7565b612816565b604051610bb69190614fcc565b60405180910390f35b348015610bcb57600080fd5b50610be66004803603810190610be191906148b7565b612836565b005b348015610bf457600080fd5b50610bfd61290f565b604051610c0a91906151e4565b60405180910390f35b348015610c1f57600080fd5b50610c28612915565b604051610c359190614fcc565b60405180910390f35b348015610c4a57600080fd5b50610c53612928565b604051610c6091906151e4565b60405180910390f35b348015610c7557600080fd5b50610c906004803603810190610c8b9190614909565b61292e565b604051610c9d91906151e4565b60405180910390f35b348015610cb257600080fd5b50610cbb6129b5565b005b348015610cc957600080fd5b50610ce46004803603810190610cdf9190614ad3565b612ac3565b005b348015610cf257600080fd5b50610d0d6004803603810190610d089190614a81565b612b62565b005b348015610d1b57600080fd5b50610d366004803603810190610d319190614994565b612c14565b005b348015610d4457600080fd5b50610d4d612d04565b604051610d5a91906151e4565b60405180910390f35b348015610d6f57600080fd5b50610d8a6004803603810190610d859190614ad3565b612d0a565b005b348015610d9857600080fd5b50610db36004803603810190610dae91906148b7565b612da9565b005b348015610dc157600080fd5b50610ddc6004803603810190610dd791906149d0565b612f6b565b005b348015610dea57600080fd5b50610df3613092565b604051610e0091906151e4565b60405180910390f35b348015610e1557600080fd5b50610e306004803603810190610e2b9190614994565b613098565b005b348015610e3e57600080fd5b50610e47613188565b604051610e549190614fcc565b60405180910390f35b348015610e6957600080fd5b50610e7261319b565b604051610e7f9190614efe565b60405180910390f35b348015610e9457600080fd5b50610eaf6004803603810190610eaa91906148b7565b6131c1565b005b606060018054610ec0906154e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610eec906154e9565b8015610f395780601f10610f0e57610100808354040283529160200191610f39565b820191906000526020600020905b815481529060010190602001808311610f1c57829003601f168201915b5050505050905090565b610f4b6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90615164565b60405180910390fd5b82600f81905550816010819055508060118190555061101860115461100a601054600f5461335f90919063ffffffff16565b61335f90919063ffffffff16565b601481905550601960125461102d919061535a565b6014541115611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890615184565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110ae6110a76133bd565b84846133c5565b6001905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601554905090565b6110f06133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490615164565b60405180910390fd5b82600c8190555081600d8190555080600e819055506111bd600e546111af600d54600c5461335f90919063ffffffff16565b61335f90919063ffffffff16565b60138190555060196012546111d2919061535a565b6013541115611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d90615024565b60405180910390fd5b505050565b6112236133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790615164565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b600061131e848484613590565b506113e08461132b6133bd565b6113db856040518060600160405280602881526020016159b960289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113916133bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc39092919063ffffffff16565b6133c5565b600190509392505050565b6113f36133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790615164565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061153a6114ef7f000000000000000000000000000000000000000000000000000000000000000061217d565b61152c61151b7f000000000000000000000000000000000000000000000000000000000000000061217d565b601554613c2790919063ffffffff16565b613c2790919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006115ff6115636133bd565b846115fa85600760006115746133bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b6133c5565b6001905092915050565b6116116133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169590615164565b60405180910390fd5b8060168190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b6116e36133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176790615164565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117e46133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890615164565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156118bc57600080fd5b505afa1580156118d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f491906148e0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195657600080fd5b505afa15801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198e91906148e0565b6040518363ffffffff1660e01b81526004016119ab929190614f19565b60206040518083038186803b1580156119c357600080fd5b505afa1580156119d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fb91906148e0565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bbc578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7857600080fd5b505afa158015611a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab091906148e0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1257600080fd5b505afa158015611b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4a91906148e0565b6040518363ffffffff1660e01b8152600401611b67929190614f19565b602060405180830381600087803b158015611b8157600080fd5b505af1158015611b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb991906148e0565b91505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cc66133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a90615164565b60405180910390fd5b6000339050828290508585905014611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790615144565b60405180910390fd5b600080600090505b84849050811015611e1357848482818110611dec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013582611dfe9190615304565b91508080611e0b9061551b565b915050611da8565b5080611e1e8361217d565b1015611e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5690615064565b60405180910390fd5b611eb181600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c2790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b8686905081101561217457611fe0858583818110611f3e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135600660008a8a86818110611f82577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190611f9791906148b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b6006600089898581811061201d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061203291906148b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508686828181106120a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906120be91906148b7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878785818110612145577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013560405161215991906151e4565b60405180910390a3808061216c9061551b565b915050611ef7565b50505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6121ce6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290615164565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60185481565b60145481565b61235b6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123df90615164565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60189054906101000a900460ff1681565b600f5481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546124b4906154e9565b80601f01602080910402602001604051908101604052809291908181526020018280546124e0906154e9565b801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061262061256a6133bd565b8461261b856040518060600160405280602581526020016159e160259139600760006125946133bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc39092919063ffffffff16565b6133c5565b6001905092915050565b6126326133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b690615164565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b60006126f06126e96133bd565b8484613590565b506001905092915050565b6127036133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790615164565b60405180910390fd5b80601a60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516127d99190614fcc565b60405180910390a150565b600d5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b600a6020528060005260406000206000915054906101000a900460ff1681565b61283e6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c290615164565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b601a60169054906101000a900460ff1681565b600c5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129bd6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4190615164565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a7090614ece565b60006040518083038185875af1925050503d8060008114612aad576040519150601f19603f3d011682016040523d82523d6000602084013e612ab2565b606091505b5050905080612ac057600080fd5b50565b612acb6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4f90615164565b60405180910390fd5b8060178190555050565b612b6a6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bee90615164565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b612c1c6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca090615164565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b612d126133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9690615164565b60405180910390fd5b8060188190555050565b612db16133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3590615164565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea590615084565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612f736133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff790615164565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161303b929190614f42565b602060405180830381600087803b15801561305557600080fd5b505af1158015613069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308d9190614aaa565b505050565b60125481565b6130a06133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461312d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312490615164565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6131c96133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324d90615164565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156132ad576000905061330f565b600082846132bb919061538b565b90508284826132ca919061535a565b1461330a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330190615124565b60405180910390fd5b809150505b92915050565b600061335783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c71565b905092915050565b600080828461336e9190615304565b9050838110156133b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133aa906150c4565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342c906151c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156134a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161349c906150a4565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161358391906151e4565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135f8906151a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161366890615044565b60405180910390fd5b601a60149054906101000a900460ff161561369857613691848484613cd4565b9050613bbc565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561373c5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137545750601a60189054906101000a900460ff165b1561379f5760175482111561379e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379590615104565b60405180910390fd5b5b60006137aa3061217d565b9050600060165482101590508080156137d05750601a60149054906101000a900460ff16155b80156138265750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561383e5750601a60159054906101000a900460ff165b1561386857601a60169054906101000a900460ff161561385e5760165491505b61386782613ea7565b5b6138f1846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc39092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139d75750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6139eb576139e6878787614172565b6139ed565b845b9050601a60179054906101000a900460ff168015613a555750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613aba57601854613a7882613a6a8961217d565b61335f90919063ffffffff16565b1115613ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ab0906150e4565b60405180910390fd5b5b613b0c81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613bac91906151e4565b60405180910390a3600193505050505b9392505050565b6000838311158290613c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c029190615002565b60405180910390fd5b5060008385613c1a91906153e5565b9050809150509392505050565b6000613c6983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613bc3565b905092915050565b60008083118290613cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613caf9190615002565b60405180910390fd5b5060008385613cc7919061535a565b9050809150509392505050565b6000613d5f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc39092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613df482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613e9491906151e4565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff0219169083151502179055506000613edb60145460135461335f90919063ffffffff16565b90506000613ef6600f54600c5461335f90919063ffffffff16565b90506000613f11601054600d5461335f90919063ffffffff16565b90506000613f4d6002613f3f86613f31878a61329a90919063ffffffff16565b61331590919063ffffffff16565b61331590919063ffffffff16565b90506000613f648287613c2790919063ffffffff16565b90506000479050613f7482614399565b6000613f898247613c2790919063ffffffff16565b90506000613fb3613fa460028961331590919063ffffffff16565b89613c2790919063ffffffff16565b90506000613fef6002613fe184613fd38c8861329a90919063ffffffff16565b61331590919063ffffffff16565b61331590919063ffffffff16565b905060006140188361400a8a8761329a90919063ffffffff16565b61331590919063ffffffff16565b90506000614041826140338588613c2790919063ffffffff16565b613c2790919063ffffffff16565b905060008211156140b657600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156140b4573d6000803e3d6000fd5b505b600081111561412957600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614127573d6000803e3d6000fd5b505b6000831180156141395750600088115b15614149576141488884614696565b5b50505050505050505050506000601a60146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156141fa576141f360646141e56013548661329a90919063ffffffff16565b61331590919063ffffffff16565b9050614278565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156142775761427460646142666014548661329a90919063ffffffff16565b61331590919063ffffffff16565b90505b5b600081111561437c576142d381600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161437391906151e4565b60405180910390a35b61438f8184613c2790919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156143dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561440a5781602001602082028036833780820191505090505b5090503081600081518110614448577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156144ea57600080fd5b505afa1580156144fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452291906148e0565b8160018151811061455c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506145c330601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846133c5565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161462795949392919061522f565b600060405180830381600087803b15801561464157600080fd5b505af1158015614655573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161468a9291906151ff565b60405180910390a15050565b6146c330601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846133c5565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161474c96959493929190614f6b565b6060604051808303818588803b15801561476557600080fd5b505af1158015614779573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061479e9190614b4b565b5050505050565b6000813590506147b481615973565b92915050565b6000815190506147c981615973565b92915050565b60008083601f8401126147e157600080fd5b8235905067ffffffffffffffff8111156147fa57600080fd5b60208301915083602082028301111561481257600080fd5b9250929050565b60008083601f84011261482b57600080fd5b8235905067ffffffffffffffff81111561484457600080fd5b60208301915083602082028301111561485c57600080fd5b9250929050565b6000813590506148728161598a565b92915050565b6000815190506148878161598a565b92915050565b60008135905061489c816159a1565b92915050565b6000815190506148b1816159a1565b92915050565b6000602082840312156148c957600080fd5b60006148d7848285016147a5565b91505092915050565b6000602082840312156148f257600080fd5b6000614900848285016147ba565b91505092915050565b6000806040838503121561491c57600080fd5b600061492a858286016147a5565b925050602061493b858286016147a5565b9150509250929050565b60008060006060848603121561495a57600080fd5b6000614968868287016147a5565b9350506020614979868287016147a5565b925050604061498a8682870161488d565b9150509250925092565b600080604083850312156149a757600080fd5b60006149b5858286016147a5565b92505060206149c685828601614863565b9150509250929050565b600080604083850312156149e357600080fd5b60006149f1858286016147a5565b9250506020614a028582860161488d565b9150509250929050565b60008060008060408587031215614a2257600080fd5b600085013567ffffffffffffffff811115614a3c57600080fd5b614a48878288016147cf565b9450945050602085013567ffffffffffffffff811115614a6757600080fd5b614a7387828801614819565b925092505092959194509250565b600060208284031215614a9357600080fd5b6000614aa184828501614863565b91505092915050565b600060208284031215614abc57600080fd5b6000614aca84828501614878565b91505092915050565b600060208284031215614ae557600080fd5b6000614af38482850161488d565b91505092915050565b600080600060608486031215614b1157600080fd5b6000614b1f8682870161488d565b9350506020614b308682870161488d565b9250506040614b418682870161488d565b9150509250925092565b600080600060608486031215614b6057600080fd5b6000614b6e868287016148a2565b9350506020614b7f868287016148a2565b9250506040614b90868287016148a2565b9150509250925092565b6000614ba68383614bc1565b60208301905092915050565b614bbb8161542b565b82525050565b614bca81615419565b82525050565b614bd981615419565b82525050565b6000614bea826152b4565b614bf481856152d7565b9350614bff836152a4565b8060005b83811015614c30578151614c178882614b9a565b9750614c22836152ca565b925050600181019050614c03565b5085935050505092915050565b614c468161543d565b82525050565b614c5581615480565b82525050565b614c64816154a4565b82525050565b6000614c75826152bf565b614c7f81856152f3565b9350614c8f8185602086016154b6565b614c98816155f1565b840191505092915050565b6000614cb0601c836152f3565b9150614cbb82615602565b602082019050919050565b6000614cd36023836152f3565b9150614cde8261562b565b604082019050919050565b6000614cf6601b836152f3565b9150614d018261567a565b602082019050919050565b6000614d196026836152f3565b9150614d24826156a3565b604082019050919050565b6000614d3c6022836152f3565b9150614d47826156f2565b604082019050919050565b6000614d5f601b836152f3565b9150614d6a82615741565b602082019050919050565b6000614d826025836152f3565b9150614d8d8261576a565b604082019050919050565b6000614da56028836152f3565b9150614db0826157b9565b604082019050919050565b6000614dc86021836152f3565b9150614dd382615808565b604082019050919050565b6000614deb6016836152f3565b9150614df682615857565b602082019050919050565b6000614e0e6020836152f3565b9150614e1982615880565b602082019050919050565b6000614e31601d836152f3565b9150614e3c826158a9565b602082019050919050565b6000614e546025836152f3565b9150614e5f826158d2565b604082019050919050565b6000614e776000836152e8565b9150614e8282615921565b600082019050919050565b6000614e9a6024836152f3565b9150614ea582615924565b604082019050919050565b614eb981615469565b82525050565b614ec881615473565b82525050565b6000614ed982614e6a565b9150819050919050565b6000602082019050614ef86000830184614bd0565b92915050565b6000602082019050614f136000830184614bb2565b92915050565b6000604082019050614f2e6000830185614bd0565b614f3b6020830184614bd0565b9392505050565b6000604082019050614f576000830185614bd0565b614f646020830184614eb0565b9392505050565b600060c082019050614f806000830189614bd0565b614f8d6020830188614eb0565b614f9a6040830187614c5b565b614fa76060830186614c5b565b614fb46080830185614bd0565b614fc160a0830184614eb0565b979650505050505050565b6000602082019050614fe16000830184614c3d565b92915050565b6000602082019050614ffc6000830184614c4c565b92915050565b6000602082019050818103600083015261501c8184614c6a565b905092915050565b6000602082019050818103600083015261503d81614ca3565b9050919050565b6000602082019050818103600083015261505d81614cc6565b9050919050565b6000602082019050818103600083015261507d81614ce9565b9050919050565b6000602082019050818103600083015261509d81614d0c565b9050919050565b600060208201905081810360008301526150bd81614d2f565b9050919050565b600060208201905081810360008301526150dd81614d52565b9050919050565b600060208201905081810360008301526150fd81614d75565b9050919050565b6000602082019050818103600083015261511d81614d98565b9050919050565b6000602082019050818103600083015261513d81614dbb565b9050919050565b6000602082019050818103600083015261515d81614dde565b9050919050565b6000602082019050818103600083015261517d81614e01565b9050919050565b6000602082019050818103600083015261519d81614e24565b9050919050565b600060208201905081810360008301526151bd81614e47565b9050919050565b600060208201905081810360008301526151dd81614e8d565b9050919050565b60006020820190506151f96000830184614eb0565b92915050565b60006040820190506152146000830185614eb0565b81810360208301526152268184614bdf565b90509392505050565b600060a0820190506152446000830188614eb0565b6152516020830187614c5b565b81810360408301526152638186614bdf565b90506152726060830185614bd0565b61527f6080830184614eb0565b9695505050505050565b600060208201905061529e6000830184614ebf565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061530f82615469565b915061531a83615469565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561534f5761534e615564565b5b828201905092915050565b600061536582615469565b915061537083615469565b9250826153805761537f615593565b5b828204905092915050565b600061539682615469565b91506153a183615469565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156153da576153d9615564565b5b828202905092915050565b60006153f082615469565b91506153fb83615469565b92508282101561540e5761540d615564565b5b828203905092915050565b600061542482615449565b9050919050565b600061543682615449565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061548b82615492565b9050919050565b600061549d82615449565b9050919050565b60006154af82615469565b9050919050565b60005b838110156154d45780820151818401526020810190506154b9565b838111156154e3576000848401525b50505050565b6000600282049050600182168061550157607f821691505b60208210811415615515576155146155c2565b5b50919050565b600061552682615469565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561555957615558615564565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f4275792066656573206d75737420626520323525206f72206c65737300000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f53656c6c2066656573206d75737420626520323525206f72206c657373000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61597c81615419565b811461598757600080fd5b50565b6159938161543d565b811461599e57600080fd5b50565b6159aa81615469565b81146159b557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203dafbba8cc7304816e83b6e9900aa7215799d1bd339a2f381cc2a6484d7aa8dc64736f6c63430008040033
Deployed Bytecode
0x6080604052600436106103b15760003560e01c806388790a68116101e7578063da00097d1161010d578063f1d5f517116100a0578063f84ba65d1161006f578063f84ba65d14610e09578063f872858a14610e32578063f8f6329014610e5d578063fb4b8e6c14610e88576103b8565b8063f1d5f51714610d63578063f2fde38b14610d8c578063f455444614610db5578063f680f79914610dde576103b8565b8063ec28438a116100dc578063ec28438a14610cbd578063ee828db314610ce6578063ef422a1814610d0f578063f0cd1dac14610d38576103b8565b8063da00097d14610c13578063dc44b6a014610c3e578063dd62ed3e14610c69578063e6b2603b14610ca6576103b8565b8063a9059cbb11610185578063c860795211610154578063c860795214610b57578063c867d60b14610b82578063c9c9afc514610bbf578063d2d7ad8314610be8576103b8565b8063a9059cbb14610a9b578063c49b9a8014610ad8578063c5d2418914610b01578063c816841b14610b2c576103b8565b806395d89b41116101c157806395d89b41146109df57806398e944c814610a0a578063a457c2d714610a35578063a5d69d1f14610a72576103b8565b806388790a681461094c5780638b42507f146109775780638da5cb5b146109b4576103b8565b80633b97084a116102d757806370a082311161026a578063807c2d9c11610239578063807c2d9c146108a257806382eefb43146108cd578063844d591c146108f85780638526148514610921576103b8565b806370a08231146107f8578063715018a61461083557806375f0a8741461084c5780637d1db4a514610877576103b8565b80635194f9bf116102a65780635194f9bf1461072a5780635342acb4146107555780635881f3ef1461079257806367243482146107cf576103b8565b80633b97084a146106705780633ecad271146106995780634a74bb02146106d65780634cb80fd514610701576103b8565b80632198cf6c1161034f57806327c8f8351161031e57806327c8f835146105b25780632b112e49146105dd578063313ce567146106085780633950935114610633576103b8565b80632198cf6c146104f857806323555d571461052157806323b872dd1461054c5780632563ae8314610589576103b8565b8063095ea7b31161038b578063095ea7b31461043c5780631694505e1461047957806318160ddd146104a45780631870517a146104cf576103b8565b806306fdde03146103bd57806308733214146103e85780630930907b14610411576103b8565b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610eb1565b6040516103df9190615002565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190614afc565b610f43565b005b34801561041d57600080fd5b50610426611076565b6040516104339190614ee3565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e91906149d0565b61109a565b6040516104709190614fcc565b60405180910390f35b34801561048557600080fd5b5061048e6110b8565b60405161049b9190614fe7565b60405180910390f35b3480156104b057600080fd5b506104b96110de565b6040516104c691906151e4565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f19190614afc565b6110e8565b005b34801561050457600080fd5b5061051f600480360381019061051a9190614994565b61121b565b005b34801561052d57600080fd5b5061053661130b565b60405161054391906151e4565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e9190614945565b611311565b6040516105809190614fcc565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190614a81565b6113eb565b005b3480156105be57600080fd5b506105c761149d565b6040516105d49190614ee3565b60405180910390f35b3480156105e957600080fd5b506105f26114c1565b6040516105ff91906151e4565b60405180910390f35b34801561061457600080fd5b5061061d61153f565b60405161062a9190615289565b60405180910390f35b34801561063f57600080fd5b5061065a600480360381019061065591906149d0565b611556565b6040516106679190614fcc565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190614ad3565b611609565b005b3480156106a557600080fd5b506106c060048036038101906106bb91906148b7565b6116a8565b6040516106cd9190614fcc565b60405180910390f35b3480156106e257600080fd5b506106eb6116c8565b6040516106f89190614fcc565b60405180910390f35b34801561070d57600080fd5b50610728600480360381019061072391906148b7565b6116db565b005b34801561073657600080fd5b5061073f6117b4565b60405161074c91906151e4565b60405180910390f35b34801561076157600080fd5b5061077c600480360381019061077791906148b7565b6117ba565b6040516107899190614fcc565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b491906148b7565b6117da565b6040516107c69190614ee3565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f19190614a0c565b611cbe565b005b34801561080457600080fd5b5061081f600480360381019061081a91906148b7565b61217d565b60405161082c91906151e4565b60405180910390f35b34801561084157600080fd5b5061084a6121c6565b005b34801561085857600080fd5b5061086161231b565b60405161086e9190614efe565b60405180910390f35b34801561088357600080fd5b5061088c612341565b60405161089991906151e4565b60405180910390f35b3480156108ae57600080fd5b506108b7612347565b6040516108c491906151e4565b60405180910390f35b3480156108d957600080fd5b506108e261234d565b6040516108ef91906151e4565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190614994565b612353565b005b34801561092d57600080fd5b50610936612443565b6040516109439190614fcc565b60405180910390f35b34801561095857600080fd5b50610961612456565b60405161096e91906151e4565b60405180910390f35b34801561098357600080fd5b5061099e600480360381019061099991906148b7565b61245c565b6040516109ab9190614fcc565b60405180910390f35b3480156109c057600080fd5b506109c961247c565b6040516109d69190614ee3565b60405180910390f35b3480156109eb57600080fd5b506109f46124a5565b604051610a019190615002565b60405180910390f35b348015610a1657600080fd5b50610a1f612537565b604051610a2c9190614ee3565b60405180910390f35b348015610a4157600080fd5b50610a5c6004803603810190610a5791906149d0565b61255d565b604051610a699190614fcc565b60405180910390f35b348015610a7e57600080fd5b50610a996004803603810190610a949190614a81565b61262a565b005b348015610aa757600080fd5b50610ac26004803603810190610abd91906149d0565b6126dc565b604051610acf9190614fcc565b60405180910390f35b348015610ae457600080fd5b50610aff6004803603810190610afa9190614a81565b6126fb565b005b348015610b0d57600080fd5b50610b166127e4565b604051610b2391906151e4565b60405180910390f35b348015610b3857600080fd5b50610b416127ea565b604051610b4e9190614ee3565b60405180910390f35b348015610b6357600080fd5b50610b6c612810565b604051610b7991906151e4565b60405180910390f35b348015610b8e57600080fd5b50610ba96004803603810190610ba491906148b7565b612816565b604051610bb69190614fcc565b60405180910390f35b348015610bcb57600080fd5b50610be66004803603810190610be191906148b7565b612836565b005b348015610bf457600080fd5b50610bfd61290f565b604051610c0a91906151e4565b60405180910390f35b348015610c1f57600080fd5b50610c28612915565b604051610c359190614fcc565b60405180910390f35b348015610c4a57600080fd5b50610c53612928565b604051610c6091906151e4565b60405180910390f35b348015610c7557600080fd5b50610c906004803603810190610c8b9190614909565b61292e565b604051610c9d91906151e4565b60405180910390f35b348015610cb257600080fd5b50610cbb6129b5565b005b348015610cc957600080fd5b50610ce46004803603810190610cdf9190614ad3565b612ac3565b005b348015610cf257600080fd5b50610d0d6004803603810190610d089190614a81565b612b62565b005b348015610d1b57600080fd5b50610d366004803603810190610d319190614994565b612c14565b005b348015610d4457600080fd5b50610d4d612d04565b604051610d5a91906151e4565b60405180910390f35b348015610d6f57600080fd5b50610d8a6004803603810190610d859190614ad3565b612d0a565b005b348015610d9857600080fd5b50610db36004803603810190610dae91906148b7565b612da9565b005b348015610dc157600080fd5b50610ddc6004803603810190610dd791906149d0565b612f6b565b005b348015610dea57600080fd5b50610df3613092565b604051610e0091906151e4565b60405180910390f35b348015610e1557600080fd5b50610e306004803603810190610e2b9190614994565b613098565b005b348015610e3e57600080fd5b50610e47613188565b604051610e549190614fcc565b60405180910390f35b348015610e6957600080fd5b50610e7261319b565b604051610e7f9190614efe565b60405180910390f35b348015610e9457600080fd5b50610eaf6004803603810190610eaa91906148b7565b6131c1565b005b606060018054610ec0906154e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610eec906154e9565b8015610f395780601f10610f0e57610100808354040283529160200191610f39565b820191906000526020600020905b815481529060010190602001808311610f1c57829003601f168201915b5050505050905090565b610f4b6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90615164565b60405180910390fd5b82600f81905550816010819055508060118190555061101860115461100a601054600f5461335f90919063ffffffff16565b61335f90919063ffffffff16565b601481905550601960125461102d919061535a565b6014541115611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890615184565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110ae6110a76133bd565b84846133c5565b6001905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601554905090565b6110f06133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490615164565b60405180910390fd5b82600c8190555081600d8190555080600e819055506111bd600e546111af600d54600c5461335f90919063ffffffff16565b61335f90919063ffffffff16565b60138190555060196012546111d2919061535a565b6013541115611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d90615024565b60405180910390fd5b505050565b6112236133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790615164565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b600061131e848484613590565b506113e08461132b6133bd565b6113db856040518060600160405280602881526020016159b960289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113916133bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc39092919063ffffffff16565b6133c5565b600190509392505050565b6113f36133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790615164565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b600061153a6114ef7f000000000000000000000000000000000000000000000000000000000000000061217d565b61152c61151b7f000000000000000000000000000000000000000000000000000000000000dead61217d565b601554613c2790919063ffffffff16565b613c2790919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60006115ff6115636133bd565b846115fa85600760006115746133bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b6133c5565b6001905092915050565b6116116133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169590615164565b60405180910390fd5b8060168190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b6116e36133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176790615164565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117e46133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890615164565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156118bc57600080fd5b505afa1580156118d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f491906148e0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195657600080fd5b505afa15801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198e91906148e0565b6040518363ffffffff1660e01b81526004016119ab929190614f19565b60206040518083038186803b1580156119c357600080fd5b505afa1580156119d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fb91906148e0565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bbc578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7857600080fd5b505afa158015611a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab091906148e0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1257600080fd5b505afa158015611b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4a91906148e0565b6040518363ffffffff1660e01b8152600401611b67929190614f19565b602060405180830381600087803b158015611b8157600080fd5b505af1158015611b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb991906148e0565b91505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cc66133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a90615164565b60405180910390fd5b6000339050828290508585905014611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790615144565b60405180910390fd5b600080600090505b84849050811015611e1357848482818110611dec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013582611dfe9190615304565b91508080611e0b9061551b565b915050611da8565b5080611e1e8361217d565b1015611e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5690615064565b60405180910390fd5b611eb181600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c2790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b8686905081101561217457611fe0858583818110611f3e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135600660008a8a86818110611f82577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190611f9791906148b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b6006600089898581811061201d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061203291906148b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508686828181106120a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906120be91906148b7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878785818110612145577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013560405161215991906151e4565b60405180910390a3808061216c9061551b565b915050611ef7565b50505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6121ce6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290615164565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60185481565b60145481565b61235b6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123df90615164565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60189054906101000a900460ff1681565b600f5481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546124b4906154e9565b80601f01602080910402602001604051908101604052809291908181526020018280546124e0906154e9565b801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061262061256a6133bd565b8461261b856040518060600160405280602581526020016159e160259139600760006125946133bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc39092919063ffffffff16565b6133c5565b6001905092915050565b6126326133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b690615164565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b60006126f06126e96133bd565b8484613590565b506001905092915050565b6127036133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790615164565b60405180910390fd5b80601a60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516127d99190614fcc565b60405180910390a150565b600d5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b600a6020528060005260406000206000915054906101000a900460ff1681565b61283e6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c290615164565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b601a60169054906101000a900460ff1681565b600c5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129bd6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4190615164565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a7090614ece565b60006040518083038185875af1925050503d8060008114612aad576040519150601f19603f3d011682016040523d82523d6000602084013e612ab2565b606091505b5050905080612ac057600080fd5b50565b612acb6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4f90615164565b60405180910390fd5b8060178190555050565b612b6a6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bee90615164565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b612c1c6133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca090615164565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b612d126133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9690615164565b60405180910390fd5b8060188190555050565b612db16133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3590615164565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea590615084565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612f736133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff790615164565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161303b929190614f42565b602060405180830381600087803b15801561305557600080fd5b505af1158015613069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308d9190614aaa565b505050565b60125481565b6130a06133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461312d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312490615164565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6131c96133bd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161324d90615164565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156132ad576000905061330f565b600082846132bb919061538b565b90508284826132ca919061535a565b1461330a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330190615124565b60405180910390fd5b809150505b92915050565b600061335783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c71565b905092915050565b600080828461336e9190615304565b9050838110156133b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133aa906150c4565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342c906151c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156134a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161349c906150a4565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161358391906151e4565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135f8906151a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161366890615044565b60405180910390fd5b601a60149054906101000a900460ff161561369857613691848484613cd4565b9050613bbc565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561373c5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137545750601a60189054906101000a900460ff165b1561379f5760175482111561379e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379590615104565b60405180910390fd5b5b60006137aa3061217d565b9050600060165482101590508080156137d05750601a60149054906101000a900460ff16155b80156138265750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561383e5750601a60159054906101000a900460ff165b1561386857601a60169054906101000a900460ff161561385e5760165491505b61386782613ea7565b5b6138f1846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc39092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806139d75750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6139eb576139e6878787614172565b6139ed565b845b9050601a60179054906101000a900460ff168015613a555750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613aba57601854613a7882613a6a8961217d565b61335f90919063ffffffff16565b1115613ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ab0906150e4565b60405180910390fd5b5b613b0c81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613bac91906151e4565b60405180910390a3600193505050505b9392505050565b6000838311158290613c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c029190615002565b60405180910390fd5b5060008385613c1a91906153e5565b9050809150509392505050565b6000613c6983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613bc3565b905092915050565b60008083118290613cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613caf9190615002565b60405180910390fd5b5060008385613cc7919061535a565b9050809150509392505050565b6000613d5f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc39092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613df482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613e9491906151e4565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff0219169083151502179055506000613edb60145460135461335f90919063ffffffff16565b90506000613ef6600f54600c5461335f90919063ffffffff16565b90506000613f11601054600d5461335f90919063ffffffff16565b90506000613f4d6002613f3f86613f31878a61329a90919063ffffffff16565b61331590919063ffffffff16565b61331590919063ffffffff16565b90506000613f648287613c2790919063ffffffff16565b90506000479050613f7482614399565b6000613f898247613c2790919063ffffffff16565b90506000613fb3613fa460028961331590919063ffffffff16565b89613c2790919063ffffffff16565b90506000613fef6002613fe184613fd38c8861329a90919063ffffffff16565b61331590919063ffffffff16565b61331590919063ffffffff16565b905060006140188361400a8a8761329a90919063ffffffff16565b61331590919063ffffffff16565b90506000614041826140338588613c2790919063ffffffff16565b613c2790919063ffffffff16565b905060008211156140b657600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156140b4573d6000803e3d6000fd5b505b600081111561412957600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614127573d6000803e3d6000fd5b505b6000831180156141395750600088115b15614149576141488884614696565b5b50505050505050505050506000601a60146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156141fa576141f360646141e56013548661329a90919063ffffffff16565b61331590919063ffffffff16565b9050614278565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156142775761427460646142666014548661329a90919063ffffffff16565b61331590919063ffffffff16565b90505b5b600081111561437c576142d381600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461335f90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161437391906151e4565b60405180910390a35b61438f8184613c2790919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156143dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561440a5781602001602082028036833780820191505090505b5090503081600081518110614448577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156144ea57600080fd5b505afa1580156144fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452291906148e0565b8160018151811061455c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506145c330601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846133c5565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161462795949392919061522f565b600060405180830381600087803b15801561464157600080fd5b505af1158015614655573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161468a9291906151ff565b60405180910390a15050565b6146c330601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846133c5565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161474c96959493929190614f6b565b6060604051808303818588803b15801561476557600080fd5b505af1158015614779573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061479e9190614b4b565b5050505050565b6000813590506147b481615973565b92915050565b6000815190506147c981615973565b92915050565b60008083601f8401126147e157600080fd5b8235905067ffffffffffffffff8111156147fa57600080fd5b60208301915083602082028301111561481257600080fd5b9250929050565b60008083601f84011261482b57600080fd5b8235905067ffffffffffffffff81111561484457600080fd5b60208301915083602082028301111561485c57600080fd5b9250929050565b6000813590506148728161598a565b92915050565b6000815190506148878161598a565b92915050565b60008135905061489c816159a1565b92915050565b6000815190506148b1816159a1565b92915050565b6000602082840312156148c957600080fd5b60006148d7848285016147a5565b91505092915050565b6000602082840312156148f257600080fd5b6000614900848285016147ba565b91505092915050565b6000806040838503121561491c57600080fd5b600061492a858286016147a5565b925050602061493b858286016147a5565b9150509250929050565b60008060006060848603121561495a57600080fd5b6000614968868287016147a5565b9350506020614979868287016147a5565b925050604061498a8682870161488d565b9150509250925092565b600080604083850312156149a757600080fd5b60006149b5858286016147a5565b92505060206149c685828601614863565b9150509250929050565b600080604083850312156149e357600080fd5b60006149f1858286016147a5565b9250506020614a028582860161488d565b9150509250929050565b60008060008060408587031215614a2257600080fd5b600085013567ffffffffffffffff811115614a3c57600080fd5b614a48878288016147cf565b9450945050602085013567ffffffffffffffff811115614a6757600080fd5b614a7387828801614819565b925092505092959194509250565b600060208284031215614a9357600080fd5b6000614aa184828501614863565b91505092915050565b600060208284031215614abc57600080fd5b6000614aca84828501614878565b91505092915050565b600060208284031215614ae557600080fd5b6000614af38482850161488d565b91505092915050565b600080600060608486031215614b1157600080fd5b6000614b1f8682870161488d565b9350506020614b308682870161488d565b9250506040614b418682870161488d565b9150509250925092565b600080600060608486031215614b6057600080fd5b6000614b6e868287016148a2565b9350506020614b7f868287016148a2565b9250506040614b90868287016148a2565b9150509250925092565b6000614ba68383614bc1565b60208301905092915050565b614bbb8161542b565b82525050565b614bca81615419565b82525050565b614bd981615419565b82525050565b6000614bea826152b4565b614bf481856152d7565b9350614bff836152a4565b8060005b83811015614c30578151614c178882614b9a565b9750614c22836152ca565b925050600181019050614c03565b5085935050505092915050565b614c468161543d565b82525050565b614c5581615480565b82525050565b614c64816154a4565b82525050565b6000614c75826152bf565b614c7f81856152f3565b9350614c8f8185602086016154b6565b614c98816155f1565b840191505092915050565b6000614cb0601c836152f3565b9150614cbb82615602565b602082019050919050565b6000614cd36023836152f3565b9150614cde8261562b565b604082019050919050565b6000614cf6601b836152f3565b9150614d018261567a565b602082019050919050565b6000614d196026836152f3565b9150614d24826156a3565b604082019050919050565b6000614d3c6022836152f3565b9150614d47826156f2565b604082019050919050565b6000614d5f601b836152f3565b9150614d6a82615741565b602082019050919050565b6000614d826025836152f3565b9150614d8d8261576a565b604082019050919050565b6000614da56028836152f3565b9150614db0826157b9565b604082019050919050565b6000614dc86021836152f3565b9150614dd382615808565b604082019050919050565b6000614deb6016836152f3565b9150614df682615857565b602082019050919050565b6000614e0e6020836152f3565b9150614e1982615880565b602082019050919050565b6000614e31601d836152f3565b9150614e3c826158a9565b602082019050919050565b6000614e546025836152f3565b9150614e5f826158d2565b604082019050919050565b6000614e776000836152e8565b9150614e8282615921565b600082019050919050565b6000614e9a6024836152f3565b9150614ea582615924565b604082019050919050565b614eb981615469565b82525050565b614ec881615473565b82525050565b6000614ed982614e6a565b9150819050919050565b6000602082019050614ef86000830184614bd0565b92915050565b6000602082019050614f136000830184614bb2565b92915050565b6000604082019050614f2e6000830185614bd0565b614f3b6020830184614bd0565b9392505050565b6000604082019050614f576000830185614bd0565b614f646020830184614eb0565b9392505050565b600060c082019050614f806000830189614bd0565b614f8d6020830188614eb0565b614f9a6040830187614c5b565b614fa76060830186614c5b565b614fb46080830185614bd0565b614fc160a0830184614eb0565b979650505050505050565b6000602082019050614fe16000830184614c3d565b92915050565b6000602082019050614ffc6000830184614c4c565b92915050565b6000602082019050818103600083015261501c8184614c6a565b905092915050565b6000602082019050818103600083015261503d81614ca3565b9050919050565b6000602082019050818103600083015261505d81614cc6565b9050919050565b6000602082019050818103600083015261507d81614ce9565b9050919050565b6000602082019050818103600083015261509d81614d0c565b9050919050565b600060208201905081810360008301526150bd81614d2f565b9050919050565b600060208201905081810360008301526150dd81614d52565b9050919050565b600060208201905081810360008301526150fd81614d75565b9050919050565b6000602082019050818103600083015261511d81614d98565b9050919050565b6000602082019050818103600083015261513d81614dbb565b9050919050565b6000602082019050818103600083015261515d81614dde565b9050919050565b6000602082019050818103600083015261517d81614e01565b9050919050565b6000602082019050818103600083015261519d81614e24565b9050919050565b600060208201905081810360008301526151bd81614e47565b9050919050565b600060208201905081810360008301526151dd81614e8d565b9050919050565b60006020820190506151f96000830184614eb0565b92915050565b60006040820190506152146000830185614eb0565b81810360208301526152268184614bdf565b90509392505050565b600060a0820190506152446000830188614eb0565b6152516020830187614c5b565b81810360408301526152638186614bdf565b90506152726060830185614bd0565b61527f6080830184614eb0565b9695505050505050565b600060208201905061529e6000830184614ebf565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061530f82615469565b915061531a83615469565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561534f5761534e615564565b5b828201905092915050565b600061536582615469565b915061537083615469565b9250826153805761537f615593565b5b828204905092915050565b600061539682615469565b91506153a183615469565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156153da576153d9615564565b5b828202905092915050565b60006153f082615469565b91506153fb83615469565b92508282101561540e5761540d615564565b5b828203905092915050565b600061542482615449565b9050919050565b600061543682615449565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061548b82615492565b9050919050565b600061549d82615449565b9050919050565b60006154af82615469565b9050919050565b60005b838110156154d45780820151818401526020810190506154b9565b838111156154e3576000848401525b50505050565b6000600282049050600182168061550157607f821691505b60208210811415615515576155146155c2565b5b50919050565b600061552682615469565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561555957615558615564565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f4275792066656573206d75737420626520323525206f72206c65737300000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f53656c6c2066656573206d75737420626520323525206f72206c657373000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61597c81615419565b811461598757600080fd5b50565b6159938161543d565b811461599e57600080fd5b50565b6159aa81615469565b81146159b557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203dafbba8cc7304816e83b6e9900aa7215799d1bd339a2f381cc2a6484d7aa8dc64736f6c63430008040033
Deployed Bytecode Sourcemap
11686:16800:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15732:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20900:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12229:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16898:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13404:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16009:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20497:395;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17831:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12807:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21588:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18208:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12141:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19309:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15918:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16395:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18439:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12503:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13519:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18571:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12941:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12446:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19741:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27778:697;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16117:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3363:230;;;;;;;;;;;;;:::i;:::-;;11898:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13258:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13330:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13063:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17412:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13662:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12855:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12666:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3138:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15823:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12096:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16621:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19172:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21413:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18993:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12765:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13452:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12898:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12607:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18711:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13169:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13566:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12723:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16244:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23953:154;;;;;;;;;;;;;:::i;:::-;;18089:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17974:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17549:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13024:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18329:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3601:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23806:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12986:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17692:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13620:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11997:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18853:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15732:83;15769:13;15802:5;15795:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15732:83;:::o;20900:405::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21022:10:::1;21002:17;:30;;;;21063:10;21043:17;:30;;;;21104:10;21084:17;:30;;;;21146:63;21191:17;;21146:40;21168:17;;21146;;:21;;:40;;;;:::i;:::-;:44;;:63;;;;:::i;:::-;21125:18;:84;;;;21260:2;21251:8;;:11;;;;:::i;:::-;21228:18;;:35;;21220:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;20900:405:::0;;;:::o;12229:81::-;;;:::o;16898:161::-;16973:4;16990:39;16999:12;:10;:12::i;:::-;17013:7;17022:6;16990:8;:39::i;:::-;17047:4;17040:11;;16898:161;;;;:::o;13404:41::-;;;;;;;;;;;;;:::o;16009:100::-;16062:7;16089:12;;16082:19;;16009:100;:::o;20497:395::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20617:10:::1;20598:16;:29;;;;20657:10;20638:16;:29;;;;20697:10;20678:16;:29;;;;20738:60;20781:16;;20738:38;20759:16;;20738;;:20;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;20718:17;:80;;;;20848:2;20839:8;;:11;;;;:::i;:::-;20817:17;;:34;;20809:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;20497:395:::0;;;:::o;17831:135::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17952:6:::1;17922:19;:27;17942:6;17922:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17831:135:::0;;:::o;12807:35::-;;;;:::o;21588:313::-;21686:4;21703:36;21713:6;21721:9;21732:6;21703:9;:36::i;:::-;;21750:121;21759:6;21767:12;:10;:12::i;:::-;21781:89;21819:6;21781:89;;;;;;;;;;;;;;;;;:11;:19;21793:6;21781:19;;;;;;;;;;;;;;;:33;21801:12;:10;:12::i;:::-;21781:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21750:8;:121::i;:::-;21889:4;21882:11;;21588:313;;;;;:::o;18208:113::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18305:8:::1;18286:16;;:27;;;;;;;;;;;;;;;;;;18208:113:::0;:::o;12141:81::-;;;:::o;19309:156::-;19362:7;19389:68;19434:22;19444:11;19434:9;:22::i;:::-;19389:40;19406:22;19416:11;19406:9;:22::i;:::-;19389:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;19382:75;;19309:156;:::o;15918:83::-;15959:5;15984:9;;;;;;;;;;;15977:16;;15918:83;:::o;16395:218::-;16483:4;16500:83;16509:12;:10;:12::i;:::-;16523:7;16532:50;16571:10;16532:11;:25;16544:12;:10;:12::i;:::-;16532:25;;;;;;;;;;;;;;;:34;16558:7;16532:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16500:8;:83::i;:::-;16601:4;16594:11;;16395:218;;;;:::o;18439:124::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18547:8:::1;18521:23;:34;;;;18439:124:::0;:::o;12503:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13519:40::-;;;;;;;;;;;;;:::o;18571:132::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18684:10:::1;18658:15;;:37;;;;;;;;;;;;;;;;;;18571:132:::0;:::o;12941:36::-;;;;:::o;12446:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;19741:748::-;19821:22;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19858:35:::1;19915:16;19858:74;;19981:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19963:53;;;20025:4;20032:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19963:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19946:110;;20098:1;20072:28;;:14;:28;;;20069:225;;;20186:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20168:74;;;20251:4;20258:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20168:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20151:131;;20069:225;20320:14;20306:11;;:28;;;;;;;;;;;;;;;;;;20386:16;20368:15;;:34;;;;;;;;;;;;;;;;;;20477:4;20440:12;:34;20461:11;;;;;;;;;;;20440:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;3342:1;19741:748:::0;;;:::o;27778:697::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27878:15:::1;27896:10;27878:28;;27944:7;;:14;;27925:8;;:15;;:33;27917:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27995:15;28025:6:::0;28034:1:::1;28025:10;;28021:92;28041:7;;:14;;28037:1;:18;28021:92;;;28091:7;;28099:1;28091:10;;;;;;;;;;;;;;;;;;;;;28077:24;;;;;:::i;:::-;;;28057:3;;;;;:::i;:::-;;;;28021:92;;;;28153:10;28131:18;28141:7;28131:9;:18::i;:::-;:32;;28123:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;28226:34;28249:10;28226:9;:18;28236:7;28226:18;;;;;;;;;;;;;;;;:22;;:34;;;;:::i;:::-;28205:9;:18;28215:7;28205:18;;;;;;;;;;;;;;;:55;;;;28276:6;28272:194;28292:8;;:15;;28288:1;:19;28272:194;;;28354:38;28381:7;;28389:1;28381:10;;;;;;;;;;;;;;;;;;;;;28354:9;:22;28364:8;;28373:1;28364:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28354:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;28329:9;:22;28339:8;;28348:1;28339:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28329:22;;;;;;;;;;;;;;;:63;;;;28430:8;;28439:1;28430:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28412:42;;28421:7;28412:42;;;28443:7;;28451:1;28443:10;;;;;;;;;;;;;;;;;;;;;28412:42;;;;;;:::i;:::-;;;;;;;;28309:3;;;;;:::i;:::-;;;;28272:194;;;;3342:1;;27778:697:::0;;;;:::o;16117:119::-;16183:7;16210:9;:18;16220:7;16210:18;;;;;;;;;;;;;;;;16203:25;;16117:119;;;:::o;3363:230::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3470:42:::1;3433:81;;3454:6;::::0;::::1;;;;;;;;3433:81;;;;;;;;;;;;3542:42;3525:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3363:230::o:0;11898:92::-;;;;;;;;;;;;;:::o;13258:59::-;;;;:::o;13330:58::-;;;;:::o;13063:33::-;;;;:::o;17412:129::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17525:8:::1;17501:12;:21;17514:7;17501:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17412:129:::0;;:::o;13662:41::-;;;;;;;;;;;;;:::o;12855:36::-;;;;:::o;12666:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3138:79::-;3176:7;3203:6;;;;;;;;;;;3196:13;;3138:79;:::o;15823:87::-;15862:13;15895:7;15888:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15823:87;:::o;12096:32::-;;;;;;;;;;;;;:::o;16621:269::-;16714:4;16731:129;16740:12;:10;:12::i;:::-;16754:7;16763:96;16802:15;16763:96;;;;;;;;;;;;;;;;;:11;:25;16775:12;:10;:12::i;:::-;16763:25;;;;;;;;;;;;;;;:34;16789:7;16763:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;16731:8;:129::i;:::-;16878:4;16871:11;;16621:269;;;;:::o;19172:125::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19281:8:::1;19253:25;;:36;;;;;;;;;;;;;;;;;;19172:125:::0;:::o;21413:167::-;21491:4;21508:42;21518:12;:10;:12::i;:::-;21532:9;21543:6;21508:9;:42::i;:::-;;21568:4;21561:11;;21413:167;;;;:::o;18993:171::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19094:8:::1;19070:21;;:32;;;;;;;;;;;;;;;;;;19118:38;19147:8;19118:38;;;;;;:::i;:::-;;;;;;;;18993:171:::0;:::o;12765:35::-;;;;:::o;13452:26::-;;;;;;;;;;;;;:::o;12898:36::-;;;;:::o;12607:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18711:134::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18826:10:::1;18798:17;;:39;;;;;;;;;;;;;;;;;;18711:134:::0;:::o;13169:69::-;;;;:::o;13566:45::-;;;;;;;;;;;;;:::o;12723:35::-;;;;:::o;16244:143::-;16325:7;16352:11;:18;16364:5;16352:18;;;;;;;;;;;;;;;:27;16371:7;16352:27;;;;;;;;;;;;;;;;16345:34;;16244:143;;;;:::o;23953:154::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24007:7:::1;24027:10;24019:24;;24051:21;24019:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24006:71;;;24096:2;24088:11;;;::::0;::::1;;3342:1;23953:154::o:0;18089:111::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18181:11:::1;18166:12;:26;;;;18089:111:::0;:::o;17974:107::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18066:7:::1;18041:22;;:32;;;;;;;;;;;;;;;;;;17974:107:::0;:::o;17549:135::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17668:8:::1;17639:17;:26;17657:7;17639:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;17549:135:::0;;:::o;13024:32::-;;;;:::o;18329:102::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18415:8:::1;18401:10;:22;;;;18329:102:::0;:::o;3601:244::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3710:1:::1;3690:22;;:8;:22;;;;3682:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3800:8;3771:38;;3792:6;::::0;::::1;;;;;;;;3771:38;;;;;;;;;;;;3829:8;3820:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3601:244:::0;:::o;23806:139::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23901:6:::1;23894:23;;;23918:10;23929:7;23894:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23806:139:::0;;:::o;12986:29::-;;;;:::o;17692:127::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17805:6:::1;17779:15;:23;17795:6;17779:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17692:127:::0;;:::o;13620:35::-;;;;;;;;;;;;;:::o;11997:92::-;;;;;;;;;;;;;:::o;18853:132::-;3282:12;:10;:12::i;:::-;3272:22;;:6;;;;;;;;;;:22;;;3264:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18966:10:::1;18940:15;;:37;;;;;;;;;;;;;;;;;;18853:132:::0;:::o;1823:250::-;1881:7;1910:1;1905;:6;1901:47;;;1935:1;1928:8;;;;1901:47;1960:9;1976:1;1972;:5;;;;:::i;:::-;1960:17;;2005:1;2000;1996;:5;;;;:::i;:::-;:10;1988:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2064:1;2057:8;;;1823:250;;;;;:::o;2081:132::-;2139:7;2166:39;2170:1;2173;2166:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2159:46;;2081:132;;;;:::o;1290:181::-;1348:7;1368:9;1384:1;1380;:5;;;;:::i;:::-;1368:17;;1409:1;1404;:6;;1396:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1462:1;1455:8;;;1290:181;;;;:::o;348:115::-;401:15;444:10;429:26;;348:115;:::o;17067:337::-;17177:1;17160:19;;:5;:19;;;;17152:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17258:1;17239:21;;:7;:21;;;;17231:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17342:6;17312:11;:18;17324:5;17312:18;;;;;;;;;;;;;;;:27;17331:7;17312:27;;;;;;;;;;;;;;;:36;;;;17380:7;17364:32;;17373:5;17364:32;;;17389:6;17364:32;;;;;;:::i;:::-;;;;;;;;17067:337;;;:::o;21909:1889::-;21996:4;22041:1;22023:20;;:6;:20;;;;22015:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22125:1;22104:23;;:9;:23;;;;22096:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22282:16;;;;;;;;;;;22279:1502;;;22332:41;22347:6;22355:9;22366:6;22332:14;:41::i;:::-;22325:48;;;;22279:1502;22431:15;:23;22447:6;22431:23;;;;;;;;;;;;;;;;;;;;;;;;;22430:24;:55;;;;;22459:15;:26;22475:9;22459:26;;;;;;;;;;;;;;;;;;;;;;;;;22458:27;22430:55;:81;;;;;22489:22;;;;;;;;;;;22430:81;22427:196;;;22550:12;;22540:6;:22;;22532:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22427:196;22639:28;22670:24;22688:4;22670:9;:24::i;:::-;22639:55;;22709:28;22764:23;;22740:20;:47;;22709:78;;22820:23;:44;;;;;22848:16;;;;;;;;;;;22847:17;22820:44;:69;;;;;22869:12;:20;22882:6;22869:20;;;;;;;;;;;;;;;;;;;;;;;;;22868:21;22820:69;:94;;;;;22893:21;;;;;;;;;;;22820:94;22816:305;;;22952:25;;;;;;;;;;;22949:97;;;23023:23;;23000:46;;22949:97;23065:36;23080:20;23065:14;:36::i;:::-;22816:305;23157:53;23179:6;23157:53;;;;;;;;;;;;;;;;;:9;:17;23167:6;23157:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23137:9;:17;23147:6;23137:17;;;;;;;;;;;;;;;:73;;;;23227:19;23250:17;:25;23268:6;23250:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;23279:17;:28;23297:9;23279:28;;;;;;;;;;;;;;;;;;;;;;;;;23250:57;23249:148;;23363:34;23371:6;23379:9;23390:6;23363:7;:34::i;:::-;23249:148;;;23354:6;23249:148;23227:170;;23417:16;;;;;;;;;;;:51;;;;;23438:19;:30;23458:9;23438:30;;;;;;;;;;;;;;;;;;;;;;;;;23437:31;23417:51;23414:191;;;23538:10;;23497:37;23522:11;23497:20;23507:9;23497;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;23489:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;23414:191;23644:37;23669:11;23644:9;:20;23654:9;23644:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23621:9;:20;23631:9;23621:20;;;;;;;;;;;;;;;:60;;;;23720:9;23703:40;;23712:6;23703:40;;;23731:11;23703:40;;;;;;:::i;:::-;;;;;;;;23765:4;23758:11;;;;;21909:1889;;;;;;:::o;1623:192::-;1709:7;1742:1;1737;:6;;1745:12;1729:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1769:9;1785:1;1781;:5;;;;:::i;:::-;1769:17;;1806:1;1799:8;;;1623:192;;;;;:::o;1479:136::-;1537:7;1564:43;1568:1;1571;1564:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1557:50;;1479:136;;;;:::o;2221:278::-;2307:7;2339:1;2335;:5;2342:12;2327:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2366:9;2382:1;2378;:5;;;;:::i;:::-;2366:17;;2490:1;2483:8;;;2221:278;;;;;:::o;24115:330::-;24208:4;24245:53;24267:6;24245:53;;;;;;;;;;;;;;;;;:9;:17;24255:6;24245:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24225:9;:17;24235:6;24225:17;;;;;;;;;;;;;;;:73;;;;24332:32;24357:6;24332:9;:20;24342:9;24332:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24309:9;:20;24319:9;24309:20;;;;;;;;;;;;;;;:55;;;;24397:9;24380:35;;24389:6;24380:35;;;24408:6;24380:35;;;;;;:::i;:::-;;;;;;;;24433:4;24426:11;;24115:330;;;;;:::o;24453:1449::-;14147:4;14128:16;;:23;;;;;;;;;;;;;;;;;;24527:19:::1;24549:41;24571:18;;24549:17;;:21;;:41;;;;:::i;:::-;24527:63;;24603:22;24628:39;24649:17;;24628:16;;:20;;:39;;;;:::i;:::-;24603:64;;24678:22;24703:39;24724:17;;24703:16;;:20;;:39;;;;:::i;:::-;24678:64;;24841:18;24862:51;24911:1;24862:44;24894:11;24862:27;24874:14;24862:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;24841:72;;24924:20;24947:23;24959:10;24947:7;:11;;:23;;;;:::i;:::-;24924:46;;24983:22;25009:21;24983:47;;25041:30;25058:12;25041:16;:30::i;:::-;25082:23;25109:41;25135:14;25109:21;:25;;:41;;;;:::i;:::-;25082:68;;25163:19;25185:38;25201:21;25220:1;25201:14;:18;;:21;;;;:::i;:::-;25185:11;:15;;:38;;;;:::i;:::-;25163:60;;25236:26;25265:59;25322:1;25265:52;25305:11;25265:35;25285:14;25265:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;25236:88;;25335:26;25364:52;25404:11;25364:35;25384:14;25364:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;25335:81;;25427:26;25456:63;25500:18;25456:39;25476:18;25456:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;25427:92;;25556:1;25535:18;:22;25532:107;;;25582:15;;;;;;;;;;;25574:33;;:53;25608:18;25574:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25532:107;25675:1;25654:18;:22;25651:107;;;25701:15;;;;;;;;;;;25693:33;;:53;25727:18;25693:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25651:107;25803:1;25782:18;:22;:40;;;;;25821:1;25808:10;:14;25782:40;25779:116;;;25839:44;25852:10;25864:18;25839:12;:44::i;:::-;25779:116;14162:1;;;;;;;;;;;14193:5:::0;14174:16;;:24;;;;;;;;;;;;;;;;;;24453:1449;:::o;27119:622::-;27205:7;27235:17;27255:1;27235:21;;27280:12;:20;27293:6;27280:20;;;;;;;;;;;;;;;;;;;;;;;;;27277:223;;;27329:38;27363:3;27329:29;27340:17;;27329:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;27317:50;;27277:223;;;27397:12;:23;27410:9;27397:23;;;;;;;;;;;;;;;;;;;;;;;;;27394:106;;;27449:39;27484:3;27449:30;27460:18;;27449:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;27437:51;;27394:106;27277:223;27535:1;27523:9;:13;27520:173;;;27580:39;27609:9;27580;:24;27598:4;27580:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;27553:9;:24;27571:4;27553:24;;;;;;;;;;;;;;;:66;;;;27664:4;27639:42;;27648:6;27639:42;;;27671:9;27639:42;;;;;;:::i;:::-;;;;;;;;27520:173;27712:21;27723:9;27712:6;:10;;:21;;;;:::i;:::-;27705:28;;;27119:622;;;;;:::o;25914:666::-;26040:21;26078:1;26064:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26040:40;;26109:4;26091;26096:1;26091:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;26135:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26125:4;26130:1;26125:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;26170:62;26187:4;26202:15;;;;;;;;;;;26220:11;26170:8;:62::i;:::-;26271:15;;;;;;;;;;;:66;;;26352:11;26378:1;26422:4;26449;26485:15;26271:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26537:35;26554:11;26567:4;26537:35;;;;;;;:::i;:::-;;;;;;;;25914:666;;:::o;26588:523::-;26736:62;26753:4;26768:15;;;;;;;;;;;26786:11;26736:8;:62::i;:::-;26841:15;;;;;;;;;;;:31;;;26880:9;26913:4;26933:11;26959:1;27002;27045:17;;;;;;;;;;;27077:15;26841:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26588:523;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:367::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;469:1;466;459:12;418:2;505:6;492:20;482:30;;535:18;527:6;524:30;521:2;;;567:1;564;557:12;521:2;604:4;596:6;592:17;580:29;;658:3;650:4;642:6;638:17;628:8;624:32;621:41;618:2;;;675:1;672;665:12;618:2;408:277;;;;;:::o;708:367::-;781:8;791:6;841:3;834:4;826:6;822:17;818:27;808:2;;859:1;856;849:12;808:2;895:6;882:20;872:30;;925:18;917:6;914:30;911:2;;;957:1;954;947:12;911:2;994:4;986:6;982:17;970:29;;1048:3;1040:4;1032:6;1028:17;1018:8;1014:32;1011:41;1008:2;;;1065:1;1062;1055:12;1008:2;798:277;;;;;:::o;1081:133::-;1124:5;1162:6;1149:20;1140:29;;1178:30;1202:5;1178:30;:::i;:::-;1130:84;;;;:::o;1220:137::-;1274:5;1305:6;1299:13;1290:22;;1321:30;1345:5;1321:30;:::i;:::-;1280:77;;;;:::o;1363:139::-;1409:5;1447:6;1434:20;1425:29;;1463:33;1490:5;1463:33;:::i;:::-;1415:87;;;;:::o;1508:143::-;1565:5;1596:6;1590:13;1581:22;;1612:33;1639:5;1612:33;:::i;:::-;1571:80;;;;:::o;1657:262::-;1716:6;1765:2;1753:9;1744:7;1740:23;1736:32;1733:2;;;1781:1;1778;1771:12;1733:2;1824:1;1849:53;1894:7;1885:6;1874:9;1870:22;1849:53;:::i;:::-;1839:63;;1795:117;1723:196;;;;:::o;1925:284::-;1995:6;2044:2;2032:9;2023:7;2019:23;2015:32;2012:2;;;2060:1;2057;2050:12;2012:2;2103:1;2128:64;2184:7;2175:6;2164:9;2160:22;2128:64;:::i;:::-;2118:74;;2074:128;2002:207;;;;:::o;2215:407::-;2283:6;2291;2340:2;2328:9;2319:7;2315:23;2311:32;2308:2;;;2356:1;2353;2346:12;2308:2;2399:1;2424:53;2469:7;2460:6;2449:9;2445:22;2424:53;:::i;:::-;2414:63;;2370:117;2526:2;2552:53;2597:7;2588:6;2577:9;2573:22;2552:53;:::i;:::-;2542:63;;2497:118;2298:324;;;;;:::o;2628:552::-;2705:6;2713;2721;2770:2;2758:9;2749:7;2745:23;2741:32;2738:2;;;2786:1;2783;2776:12;2738:2;2829:1;2854:53;2899:7;2890:6;2879:9;2875:22;2854:53;:::i;:::-;2844:63;;2800:117;2956:2;2982:53;3027:7;3018:6;3007:9;3003:22;2982:53;:::i;:::-;2972:63;;2927:118;3084:2;3110:53;3155:7;3146:6;3135:9;3131:22;3110:53;:::i;:::-;3100:63;;3055:118;2728:452;;;;;:::o;3186:401::-;3251:6;3259;3308:2;3296:9;3287:7;3283:23;3279:32;3276:2;;;3324:1;3321;3314:12;3276:2;3367:1;3392:53;3437:7;3428:6;3417:9;3413:22;3392:53;:::i;:::-;3382:63;;3338:117;3494:2;3520:50;3562:7;3553:6;3542:9;3538:22;3520:50;:::i;:::-;3510:60;;3465:115;3266:321;;;;;:::o;3593:407::-;3661:6;3669;3718:2;3706:9;3697:7;3693:23;3689:32;3686:2;;;3734:1;3731;3724:12;3686:2;3777:1;3802:53;3847:7;3838:6;3827:9;3823:22;3802:53;:::i;:::-;3792:63;;3748:117;3904:2;3930:53;3975:7;3966:6;3955:9;3951:22;3930:53;:::i;:::-;3920:63;;3875:118;3676:324;;;;;:::o;4006:733::-;4128:6;4136;4144;4152;4201:2;4189:9;4180:7;4176:23;4172:32;4169:2;;;4217:1;4214;4207:12;4169:2;4288:1;4277:9;4273:17;4260:31;4318:18;4310:6;4307:30;4304:2;;;4350:1;4347;4340:12;4304:2;4386:80;4458:7;4449:6;4438:9;4434:22;4386:80;:::i;:::-;4368:98;;;;4231:245;4543:2;4532:9;4528:18;4515:32;4574:18;4566:6;4563:30;4560:2;;;4606:1;4603;4596:12;4560:2;4642:80;4714:7;4705:6;4694:9;4690:22;4642:80;:::i;:::-;4624:98;;;;4486:246;4159:580;;;;;;;:::o;4745:256::-;4801:6;4850:2;4838:9;4829:7;4825:23;4821:32;4818:2;;;4866:1;4863;4856:12;4818:2;4909:1;4934:50;4976:7;4967:6;4956:9;4952:22;4934:50;:::i;:::-;4924:60;;4880:114;4808:193;;;;:::o;5007:278::-;5074:6;5123:2;5111:9;5102:7;5098:23;5094:32;5091:2;;;5139:1;5136;5129:12;5091:2;5182:1;5207:61;5260:7;5251:6;5240:9;5236:22;5207:61;:::i;:::-;5197:71;;5153:125;5081:204;;;;:::o;5291:262::-;5350:6;5399:2;5387:9;5378:7;5374:23;5370:32;5367:2;;;5415:1;5412;5405:12;5367:2;5458:1;5483:53;5528:7;5519:6;5508:9;5504:22;5483:53;:::i;:::-;5473:63;;5429:117;5357:196;;;;:::o;5559:552::-;5636:6;5644;5652;5701:2;5689:9;5680:7;5676:23;5672:32;5669:2;;;5717:1;5714;5707:12;5669:2;5760:1;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5731:117;5887:2;5913:53;5958:7;5949:6;5938:9;5934:22;5913:53;:::i;:::-;5903:63;;5858:118;6015:2;6041:53;6086:7;6077:6;6066:9;6062:22;6041:53;:::i;:::-;6031:63;;5986:118;5659:452;;;;;:::o;6117:596::-;6205:6;6213;6221;6270:2;6258:9;6249:7;6245:23;6241:32;6238:2;;;6286:1;6283;6276:12;6238:2;6329:1;6354:64;6410:7;6401:6;6390:9;6386:22;6354:64;:::i;:::-;6344:74;;6300:128;6467:2;6493:64;6549:7;6540:6;6529:9;6525:22;6493:64;:::i;:::-;6483:74;;6438:129;6606:2;6632:64;6688:7;6679:6;6668:9;6664:22;6632:64;:::i;:::-;6622:74;;6577:129;6228:485;;;;;:::o;6719:179::-;6788:10;6809:46;6851:3;6843:6;6809:46;:::i;:::-;6887:4;6882:3;6878:14;6864:28;;6799:99;;;;:::o;6904:142::-;7007:32;7033:5;7007:32;:::i;:::-;7002:3;6995:45;6985:61;;:::o;7052:108::-;7129:24;7147:5;7129:24;:::i;:::-;7124:3;7117:37;7107:53;;:::o;7166:118::-;7253:24;7271:5;7253:24;:::i;:::-;7248:3;7241:37;7231:53;;:::o;7320:732::-;7439:3;7468:54;7516:5;7468:54;:::i;:::-;7538:86;7617:6;7612:3;7538:86;:::i;:::-;7531:93;;7648:56;7698:5;7648:56;:::i;:::-;7727:7;7758:1;7743:284;7768:6;7765:1;7762:13;7743:284;;;7844:6;7838:13;7871:63;7930:3;7915:13;7871:63;:::i;:::-;7864:70;;7957:60;8010:6;7957:60;:::i;:::-;7947:70;;7803:224;7790:1;7787;7783:9;7778:14;;7743:284;;;7747:14;8043:3;8036:10;;7444:608;;;;;;;:::o;8058:109::-;8139:21;8154:5;8139:21;:::i;:::-;8134:3;8127:34;8117:50;;:::o;8173:185::-;8287:64;8345:5;8287:64;:::i;:::-;8282:3;8275:77;8265:93;;:::o;8364:147::-;8459:45;8498:5;8459:45;:::i;:::-;8454:3;8447:58;8437:74;;:::o;8517:364::-;8605:3;8633:39;8666:5;8633:39;:::i;:::-;8688:71;8752:6;8747:3;8688:71;:::i;:::-;8681:78;;8768:52;8813:6;8808:3;8801:4;8794:5;8790:16;8768:52;:::i;:::-;8845:29;8867:6;8845:29;:::i;:::-;8840:3;8836:39;8829:46;;8609:272;;;;;:::o;8887:366::-;9029:3;9050:67;9114:2;9109:3;9050:67;:::i;:::-;9043:74;;9126:93;9215:3;9126:93;:::i;:::-;9244:2;9239:3;9235:12;9228:19;;9033:220;;;:::o;9259:366::-;9401:3;9422:67;9486:2;9481:3;9422:67;:::i;:::-;9415:74;;9498:93;9587:3;9498:93;:::i;:::-;9616:2;9611:3;9607:12;9600:19;;9405:220;;;:::o;9631:366::-;9773:3;9794:67;9858:2;9853:3;9794:67;:::i;:::-;9787:74;;9870:93;9959:3;9870:93;:::i;:::-;9988:2;9983:3;9979:12;9972:19;;9777:220;;;:::o;10003:366::-;10145:3;10166:67;10230:2;10225:3;10166:67;:::i;:::-;10159:74;;10242:93;10331:3;10242:93;:::i;:::-;10360:2;10355:3;10351:12;10344:19;;10149:220;;;:::o;10375:366::-;10517:3;10538:67;10602:2;10597:3;10538:67;:::i;:::-;10531:74;;10614:93;10703:3;10614:93;:::i;:::-;10732:2;10727:3;10723:12;10716:19;;10521:220;;;:::o;10747:366::-;10889:3;10910:67;10974:2;10969:3;10910:67;:::i;:::-;10903:74;;10986:93;11075:3;10986:93;:::i;:::-;11104:2;11099:3;11095:12;11088:19;;10893:220;;;:::o;11119:366::-;11261:3;11282:67;11346:2;11341:3;11282:67;:::i;:::-;11275:74;;11358:93;11447:3;11358:93;:::i;:::-;11476:2;11471:3;11467:12;11460:19;;11265:220;;;:::o;11491:366::-;11633:3;11654:67;11718:2;11713:3;11654:67;:::i;:::-;11647:74;;11730:93;11819:3;11730:93;:::i;:::-;11848:2;11843:3;11839:12;11832:19;;11637:220;;;:::o;11863:366::-;12005:3;12026:67;12090:2;12085:3;12026:67;:::i;:::-;12019:74;;12102:93;12191:3;12102:93;:::i;:::-;12220:2;12215:3;12211:12;12204:19;;12009:220;;;:::o;12235:366::-;12377:3;12398:67;12462:2;12457:3;12398:67;:::i;:::-;12391:74;;12474:93;12563:3;12474:93;:::i;:::-;12592:2;12587:3;12583:12;12576:19;;12381:220;;;:::o;12607:366::-;12749:3;12770:67;12834:2;12829:3;12770:67;:::i;:::-;12763:74;;12846:93;12935:3;12846:93;:::i;:::-;12964:2;12959:3;12955:12;12948:19;;12753:220;;;:::o;12979:366::-;13121:3;13142:67;13206:2;13201:3;13142:67;:::i;:::-;13135:74;;13218:93;13307:3;13218:93;:::i;:::-;13336:2;13331:3;13327:12;13320:19;;13125:220;;;:::o;13351:366::-;13493:3;13514:67;13578:2;13573:3;13514:67;:::i;:::-;13507:74;;13590:93;13679:3;13590:93;:::i;:::-;13708:2;13703:3;13699:12;13692:19;;13497:220;;;:::o;13723:398::-;13882:3;13903:83;13984:1;13979:3;13903:83;:::i;:::-;13896:90;;13995:93;14084:3;13995:93;:::i;:::-;14113:1;14108:3;14104:11;14097:18;;13886:235;;;:::o;14127:366::-;14269:3;14290:67;14354:2;14349:3;14290:67;:::i;:::-;14283:74;;14366:93;14455:3;14366:93;:::i;:::-;14484:2;14479:3;14475:12;14468:19;;14273:220;;;:::o;14499:118::-;14586:24;14604:5;14586:24;:::i;:::-;14581:3;14574:37;14564:53;;:::o;14623:112::-;14706:22;14722:5;14706:22;:::i;:::-;14701:3;14694:35;14684:51;;:::o;14741:379::-;14925:3;14947:147;15090:3;14947:147;:::i;:::-;14940:154;;15111:3;15104:10;;14929:191;;;:::o;15126:222::-;15219:4;15257:2;15246:9;15242:18;15234:26;;15270:71;15338:1;15327:9;15323:17;15314:6;15270:71;:::i;:::-;15224:124;;;;:::o;15354:254::-;15463:4;15501:2;15490:9;15486:18;15478:26;;15514:87;15598:1;15587:9;15583:17;15574:6;15514:87;:::i;:::-;15468:140;;;;:::o;15614:332::-;15735:4;15773:2;15762:9;15758:18;15750:26;;15786:71;15854:1;15843:9;15839:17;15830:6;15786:71;:::i;:::-;15867:72;15935:2;15924:9;15920:18;15911:6;15867:72;:::i;:::-;15740:206;;;;;:::o;15952:332::-;16073:4;16111:2;16100:9;16096:18;16088:26;;16124:71;16192:1;16181:9;16177:17;16168:6;16124:71;:::i;:::-;16205:72;16273:2;16262:9;16258:18;16249:6;16205:72;:::i;:::-;16078:206;;;;;:::o;16290:807::-;16539:4;16577:3;16566:9;16562:19;16554:27;;16591:71;16659:1;16648:9;16644:17;16635:6;16591:71;:::i;:::-;16672:72;16740:2;16729:9;16725:18;16716:6;16672:72;:::i;:::-;16754:80;16830:2;16819:9;16815:18;16806:6;16754:80;:::i;:::-;16844;16920:2;16909:9;16905:18;16896:6;16844:80;:::i;:::-;16934:73;17002:3;16991:9;16987:19;16978:6;16934:73;:::i;:::-;17017;17085:3;17074:9;17070:19;17061:6;17017:73;:::i;:::-;16544:553;;;;;;;;;:::o;17103:210::-;17190:4;17228:2;17217:9;17213:18;17205:26;;17241:65;17303:1;17292:9;17288:17;17279:6;17241:65;:::i;:::-;17195:118;;;;:::o;17319:276::-;17439:4;17477:2;17466:9;17462:18;17454:26;;17490:98;17585:1;17574:9;17570:17;17561:6;17490:98;:::i;:::-;17444:151;;;;:::o;17601:313::-;17714:4;17752:2;17741:9;17737:18;17729:26;;17801:9;17795:4;17791:20;17787:1;17776:9;17772:17;17765:47;17829:78;17902:4;17893:6;17829:78;:::i;:::-;17821:86;;17719:195;;;;:::o;17920:419::-;18086:4;18124:2;18113:9;18109:18;18101:26;;18173:9;18167:4;18163:20;18159:1;18148:9;18144:17;18137:47;18201:131;18327:4;18201:131;:::i;:::-;18193:139;;18091:248;;;:::o;18345:419::-;18511:4;18549:2;18538:9;18534:18;18526:26;;18598:9;18592:4;18588:20;18584:1;18573:9;18569:17;18562:47;18626:131;18752:4;18626:131;:::i;:::-;18618:139;;18516:248;;;:::o;18770:419::-;18936:4;18974:2;18963:9;18959:18;18951:26;;19023:9;19017:4;19013:20;19009:1;18998:9;18994:17;18987:47;19051:131;19177:4;19051:131;:::i;:::-;19043:139;;18941:248;;;:::o;19195:419::-;19361:4;19399:2;19388:9;19384:18;19376:26;;19448:9;19442:4;19438:20;19434:1;19423:9;19419:17;19412:47;19476:131;19602:4;19476:131;:::i;:::-;19468:139;;19366:248;;;:::o;19620:419::-;19786:4;19824:2;19813:9;19809:18;19801:26;;19873:9;19867:4;19863:20;19859:1;19848:9;19844:17;19837:47;19901:131;20027:4;19901:131;:::i;:::-;19893:139;;19791:248;;;:::o;20045:419::-;20211:4;20249:2;20238:9;20234:18;20226:26;;20298:9;20292:4;20288:20;20284:1;20273:9;20269:17;20262:47;20326:131;20452:4;20326:131;:::i;:::-;20318:139;;20216:248;;;:::o;20470:419::-;20636:4;20674:2;20663:9;20659:18;20651:26;;20723:9;20717:4;20713:20;20709:1;20698:9;20694:17;20687:47;20751:131;20877:4;20751:131;:::i;:::-;20743:139;;20641:248;;;:::o;20895:419::-;21061:4;21099:2;21088:9;21084:18;21076:26;;21148:9;21142:4;21138:20;21134:1;21123:9;21119:17;21112:47;21176:131;21302:4;21176:131;:::i;:::-;21168:139;;21066:248;;;:::o;21320:419::-;21486:4;21524:2;21513:9;21509:18;21501:26;;21573:9;21567:4;21563:20;21559:1;21548:9;21544:17;21537:47;21601:131;21727:4;21601:131;:::i;:::-;21593:139;;21491:248;;;:::o;21745:419::-;21911:4;21949:2;21938:9;21934:18;21926:26;;21998:9;21992:4;21988:20;21984:1;21973:9;21969:17;21962:47;22026:131;22152:4;22026:131;:::i;:::-;22018:139;;21916:248;;;:::o;22170:419::-;22336:4;22374:2;22363:9;22359:18;22351:26;;22423:9;22417:4;22413:20;22409:1;22398:9;22394:17;22387:47;22451:131;22577:4;22451:131;:::i;:::-;22443:139;;22341:248;;;:::o;22595:419::-;22761:4;22799:2;22788:9;22784:18;22776:26;;22848:9;22842:4;22838:20;22834:1;22823:9;22819:17;22812:47;22876:131;23002:4;22876:131;:::i;:::-;22868:139;;22766:248;;;:::o;23020:419::-;23186:4;23224:2;23213:9;23209:18;23201:26;;23273:9;23267:4;23263:20;23259:1;23248:9;23244:17;23237:47;23301:131;23427:4;23301:131;:::i;:::-;23293:139;;23191:248;;;:::o;23445:419::-;23611:4;23649:2;23638:9;23634:18;23626:26;;23698:9;23692:4;23688:20;23684:1;23673:9;23669:17;23662:47;23726:131;23852:4;23726:131;:::i;:::-;23718:139;;23616:248;;;:::o;23870:222::-;23963:4;24001:2;23990:9;23986:18;23978:26;;24014:71;24082:1;24071:9;24067:17;24058:6;24014:71;:::i;:::-;23968:124;;;;:::o;24098:483::-;24269:4;24307:2;24296:9;24292:18;24284:26;;24320:71;24388:1;24377:9;24373:17;24364:6;24320:71;:::i;:::-;24438:9;24432:4;24428:20;24423:2;24412:9;24408:18;24401:48;24466:108;24569:4;24560:6;24466:108;:::i;:::-;24458:116;;24274:307;;;;;:::o;24587:831::-;24850:4;24888:3;24877:9;24873:19;24865:27;;24902:71;24970:1;24959:9;24955:17;24946:6;24902:71;:::i;:::-;24983:80;25059:2;25048:9;25044:18;25035:6;24983:80;:::i;:::-;25110:9;25104:4;25100:20;25095:2;25084:9;25080:18;25073:48;25138:108;25241:4;25232:6;25138:108;:::i;:::-;25130:116;;25256:72;25324:2;25313:9;25309:18;25300:6;25256:72;:::i;:::-;25338:73;25406:3;25395:9;25391:19;25382:6;25338:73;:::i;:::-;24855:563;;;;;;;;:::o;25424:214::-;25513:4;25551:2;25540:9;25536:18;25528:26;;25564:67;25628:1;25617:9;25613:17;25604:6;25564:67;:::i;:::-;25518:120;;;;:::o;25644:132::-;25711:4;25734:3;25726:11;;25764:4;25759:3;25755:14;25747:22;;25716:60;;;:::o;25782:114::-;25849:6;25883:5;25877:12;25867:22;;25856:40;;;:::o;25902:99::-;25954:6;25988:5;25982:12;25972:22;;25961:40;;;:::o;26007:113::-;26077:4;26109;26104:3;26100:14;26092:22;;26082:38;;;:::o;26126:184::-;26225:11;26259:6;26254:3;26247:19;26299:4;26294:3;26290:14;26275:29;;26237:73;;;;:::o;26316:147::-;26417:11;26454:3;26439:18;;26429:34;;;;:::o;26469:169::-;26553:11;26587:6;26582:3;26575:19;26627:4;26622:3;26618:14;26603:29;;26565:73;;;;:::o;26644:305::-;26684:3;26703:20;26721:1;26703:20;:::i;:::-;26698:25;;26737:20;26755:1;26737:20;:::i;:::-;26732:25;;26891:1;26823:66;26819:74;26816:1;26813:81;26810:2;;;26897:18;;:::i;:::-;26810:2;26941:1;26938;26934:9;26927:16;;26688:261;;;;:::o;26955:185::-;26995:1;27012:20;27030:1;27012:20;:::i;:::-;27007:25;;27046:20;27064:1;27046:20;:::i;:::-;27041:25;;27085:1;27075:2;;27090:18;;:::i;:::-;27075:2;27132:1;27129;27125:9;27120:14;;26997:143;;;;:::o;27146:348::-;27186:7;27209:20;27227:1;27209:20;:::i;:::-;27204:25;;27243:20;27261:1;27243:20;:::i;:::-;27238:25;;27431:1;27363:66;27359:74;27356:1;27353:81;27348:1;27341:9;27334:17;27330:105;27327:2;;;27438:18;;:::i;:::-;27327:2;27486:1;27483;27479:9;27468:20;;27194:300;;;;:::o;27500:191::-;27540:4;27560:20;27578:1;27560:20;:::i;:::-;27555:25;;27594:20;27612:1;27594:20;:::i;:::-;27589:25;;27633:1;27630;27627:8;27624:2;;;27638:18;;:::i;:::-;27624:2;27683:1;27680;27676:9;27668:17;;27545:146;;;;:::o;27697:96::-;27734:7;27763:24;27781:5;27763:24;:::i;:::-;27752:35;;27742:51;;;:::o;27799:104::-;27844:7;27873:24;27891:5;27873:24;:::i;:::-;27862:35;;27852:51;;;:::o;27909:90::-;27943:7;27986:5;27979:13;27972:21;27961:32;;27951:48;;;:::o;28005:126::-;28042:7;28082:42;28075:5;28071:54;28060:65;;28050:81;;;:::o;28137:77::-;28174:7;28203:5;28192:16;;28182:32;;;:::o;28220:86::-;28255:7;28295:4;28288:5;28284:16;28273:27;;28263:43;;;:::o;28312:180::-;28389:9;28422:64;28480:5;28422:64;:::i;:::-;28409:77;;28399:93;;;:::o;28498:140::-;28575:9;28608:24;28626:5;28608:24;:::i;:::-;28595:37;;28585:53;;;:::o;28644:121::-;28702:9;28735:24;28753:5;28735:24;:::i;:::-;28722:37;;28712:53;;;:::o;28771:307::-;28839:1;28849:113;28863:6;28860:1;28857:13;28849:113;;;28948:1;28943:3;28939:11;28933:18;28929:1;28924:3;28920:11;28913:39;28885:2;28882:1;28878:10;28873:15;;28849:113;;;28980:6;28977:1;28974:13;28971:2;;;29060:1;29051:6;29046:3;29042:16;29035:27;28971:2;28820:258;;;;:::o;29084:320::-;29128:6;29165:1;29159:4;29155:12;29145:22;;29212:1;29206:4;29202:12;29233:18;29223:2;;29289:4;29281:6;29277:17;29267:27;;29223:2;29351;29343:6;29340:14;29320:18;29317:38;29314:2;;;29370:18;;:::i;:::-;29314:2;29135:269;;;;:::o;29410:233::-;29449:3;29472:24;29490:5;29472:24;:::i;:::-;29463:33;;29518:66;29511:5;29508:77;29505:2;;;29588:18;;:::i;:::-;29505:2;29635:1;29628:5;29624:13;29617:20;;29453:190;;;:::o;29649:180::-;29697:77;29694:1;29687:88;29794:4;29791:1;29784:15;29818:4;29815:1;29808:15;29835:180;29883:77;29880:1;29873:88;29980:4;29977:1;29970:15;30004:4;30001:1;29994:15;30021:180;30069:77;30066:1;30059:88;30166:4;30163:1;30156:15;30190:4;30187:1;30180:15;30207:102;30248:6;30299:2;30295:7;30290:2;30283:5;30279:14;30275:28;30265:38;;30255:54;;;:::o;30315:178::-;30455:30;30451:1;30443:6;30439:14;30432:54;30421:72;:::o;30499:222::-;30639:34;30635:1;30627:6;30623:14;30616:58;30708:5;30703:2;30695:6;30691:15;30684:30;30605:116;:::o;30727:177::-;30867:29;30863:1;30855:6;30851:14;30844:53;30833:71;:::o;30910:225::-;31050:34;31046:1;31038:6;31034:14;31027:58;31119:8;31114:2;31106:6;31102:15;31095:33;31016:119;:::o;31141:221::-;31281:34;31277:1;31269:6;31265:14;31258:58;31350:4;31345:2;31337:6;31333:15;31326:29;31247:115;:::o;31368:177::-;31508:29;31504:1;31496:6;31492:14;31485:53;31474:71;:::o;31551:224::-;31691:34;31687:1;31679:6;31675:14;31668:58;31760:7;31755:2;31747:6;31743:15;31736:32;31657:118;:::o;31781:227::-;31921:34;31917:1;31909:6;31905:14;31898:58;31990:10;31985:2;31977:6;31973:15;31966:35;31887:121;:::o;32014:220::-;32154:34;32150:1;32142:6;32138:14;32131:58;32223:3;32218:2;32210:6;32206:15;32199:28;32120:114;:::o;32240:172::-;32380:24;32376:1;32368:6;32364:14;32357:48;32346:66;:::o;32418:182::-;32558:34;32554:1;32546:6;32542:14;32535:58;32524:76;:::o;32606:179::-;32746:31;32742:1;32734:6;32730:14;32723:55;32712:73;:::o;32791:224::-;32931:34;32927:1;32919:6;32915:14;32908:58;33000:7;32995:2;32987:6;32983:15;32976:32;32897:118;:::o;33021:114::-;33127:8;:::o;33141:223::-;33281:34;33277:1;33269:6;33265:14;33258:58;33350:6;33345:2;33337:6;33333:15;33326:31;33247:117;:::o;33370:122::-;33443:24;33461:5;33443:24;:::i;:::-;33436:5;33433:35;33423:2;;33482:1;33479;33472:12;33423:2;33413:79;:::o;33498:116::-;33568:21;33583:5;33568:21;:::i;:::-;33561:5;33558:32;33548:2;;33604:1;33601;33594:12;33548:2;33538:76;:::o;33620:122::-;33693:24;33711:5;33693:24;:::i;:::-;33686:5;33683:35;33673:2;;33732:1;33729;33722:12;33673:2;33663:79;:::o
Swarm Source
ipfs://3dafbba8cc7304816e83b6e9900aa7215799d1bd339a2f381cc2a6484d7aa8dc
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.