ERC-20
Overview
Max Total Supply
666,666,666,666 MAFIA
Holders
22
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Godfather
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-24 */ // SPDX-License-Identifier: Unlicensed 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) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 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; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; 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 waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } 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 Godfather is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "Godfather"; string private _symbol = "MAFIA"; uint8 private _decimals = 9; address payable private marketingWalletAddress = payable(0xE6d25C76306F3B6E47e71b0D4297F3C0E67cEA8d); address payable private developmentWalletAddress = payable(0x2E3c11598c6bb9EA3764Db722C27d9cEF881Cfb1); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public checkExcludedFromFees; mapping (address => bool) public checkWalletLimitExcept; mapping (address => bool) public checkTxLimitExcept; mapping (address => bool) public checkMarketPair; uint256 private _buyLiquidityFees = 2; uint256 private _buyMarketingFees = 3; uint256 private _buyDevelopmentFees = 2; uint256 private _sellLiquidityFees = 2; uint256 private _sellMarketingFees = 3; uint256 private _sellDevelopmentFees = 2; uint256 private _liquidityShares = 2; uint256 private _marketingShares = 10; uint256 private _developmentShares = 10; uint256 private _totalTaxIfBuying = 10; uint256 private _totalTaxIfSelling = 10; uint256 private _totalDistributionShares = 22; uint256 public _totalSupply = 666666666666 * 10**9; uint256 public _maxTxAmount = 666666666666 * 10**9; uint256 public _walletMax = 19999999999 * 10**9; uint256 private minimumTokensBeforeSwap = 10 * 10**9; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = 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)] = _totalSupply; checkExcludedFromFees[owner()] = true; checkExcludedFromFees[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFees.add(_buyMarketingFees).add(_buyDevelopmentFees); _totalTaxIfSelling = _sellLiquidityFees.add(_sellMarketingFees).add(_sellDevelopmentFees); _totalDistributionShares = _liquidityShares.add(_marketingShares).add(_developmentShares); checkWalletLimitExcept[owner()] = true; checkWalletLimitExcept[address(uniswapPair)] = true; checkWalletLimitExcept[address(this)] = true; checkTxLimitExcept[owner()] = true; checkTxLimitExcept[address(this)] = true; checkMarketPair[address(uniswapPair)] = true; _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 addMarketPair(address account) public onlyOwner { checkMarketPair[account] = true; } function setcheckTxLimitExcept(address holder, bool exempt) external onlyOwner { checkTxLimitExcept[holder] = exempt; } function setcheckExcludedFromFees(address account, bool newValue) public onlyOwner { checkExcludedFromFees[account] = newValue; } function setBuyFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() { _buyLiquidityFees = newLiquidityTax; _buyMarketingFees = newMarketingTax; _buyDevelopmentFees = newDevelopmentTax; _totalTaxIfBuying = _buyLiquidityFees.add(_buyMarketingFees).add(_buyDevelopmentFees); } function setSellFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() { _sellLiquidityFees = newLiquidityTax; _sellMarketingFees = newMarketingTax; _sellDevelopmentFees = newDevelopmentTax; _totalTaxIfSelling = _sellLiquidityFees.add(_sellMarketingFees).add(_sellDevelopmentFees); } function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newDevelopmentShare) external onlyOwner() { _liquidityShares = newLiquidityShare; _marketingShares = newMarketingShare; _developmentShares = newDevelopmentShare; _totalDistributionShares = _liquidityShares.add(_marketingShares).add(_developmentShares); } function adjustMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { require(maxTxAmount <= (666666666666 * 10**9), "Max wallet should be less or euqal to 4% totalSupply"); _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setcheckWalletLimitExcept(address holder, bool exempt) external onlyOwner { checkWalletLimitExcept[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWalletAddress = payable(newAddress); } function setDevelopmentWalletAddress(address newAddress) external onlyOwner() { developmentWalletAddress = 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)); } 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 checkWalletLimitExcept[address(uniswapPair)] = true; checkMarketPair[address(uniswapPair)] = true; } //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"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !checkMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (checkExcludedFromFees[sender] || checkExcludedFromFees[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !checkWalletLimitExcept[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } 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 tokensForLP = tAmount.mul(_liquidityShares).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShares.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShares).div(totalETHFee).div(2); uint256 amountETHDevelopment = amountReceived.mul(_developmentShares).div(totalETHFee); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHDevelopment); if(amountETHMarketing > 0) transferToAddressETH(marketingWalletAddress, amountETHMarketing); if(amountETHDevelopment > 0) transferToAddressETH(developmentWalletAddress, amountETHDevelopment); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, 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 owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(checkMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(checkMarketPair[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); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"adjustMaxTxAmount","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":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","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":[],"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":[],"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":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDevelopmentWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setSellFee","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setcheckExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckTxLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckWalletLimitExcept","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":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600981526020017f476f646661746865720000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000b44565b506040518060400160405280600581526020017f4d41464941000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000b44565b506009600460006101000a81548160ff021916908360ff16021790555073e6d25c76306f3b6e47e71b0d4297f3c0e67cea8d600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732e3c11598c6bb9ea3764db722c27d9cef881cfb1600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506002600c556003600d556002600e556002600f55600360105560026011556002601255600a601355600a601455600a601555600a6016556016601755682423dbc92e6cae2400601855682423dbc92e6cae24006019556801158e4608d8353600601a556402540be400601b556001601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055503480156200026857600080fd5b5060006200027b62000ab060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037957600080fd5b505afa1580156200038e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b4919062000c0b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041757600080fd5b505afa1580156200042c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000452919062000c0b565b6040518363ffffffff1660e01b81526004016200047192919062000c80565b602060405180830381600087803b1580156200048c57600080fd5b505af1158015620004a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c7919062000c0b565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200060362000ab860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006e5600e54620006d1600d54600c5462000ae160201b620025ce1790919060201c565b62000ae160201b620025ce1790919060201c565b6015819055506200072460115462000710601054600f5462000ae160201b620025ce1790919060201c565b62000ae160201b620025ce1790919060201c565b601681905550620007636014546200074f60135460125462000ae160201b620025ce1790919060201c565b62000ae160201b620025ce1790919060201c565b6017819055506001600960006200077f62000ab860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620008b862000ab860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060185460066000620009f262000ab060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a4062000ab060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000aa1919062000ccf565b60405180910390a35062000e6f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000af2919062000cfd565b90508381101562000b3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b319062000cad565b60405180910390fd5b8091505092915050565b82805462000b529062000d98565b90600052602060002090601f01602090048101928262000b76576000855562000bc2565b82601f1062000b9157805160ff191683800117855562000bc2565b8280016001018555821562000bc2579182015b8281111562000bc157825182559160200191906001019062000ba4565b5b50905062000bd1919062000bd5565b5090565b5b8082111562000bf057600081600090555060010162000bd6565b5090565b60008151905062000c058162000e55565b92915050565b60006020828403121562000c1e57600080fd5b600062000c2e8482850162000bf4565b91505092915050565b62000c428162000d5a565b82525050565b600062000c57601b8362000cec565b915062000c648262000e2c565b602082019050919050565b62000c7a8162000d8e565b82525050565b600060408201905062000c97600083018562000c37565b62000ca6602083018462000c37565b9392505050565b6000602082019050818103600083015262000cc88162000c48565b9050919050565b600060208201905062000ce6600083018462000c6f565b92915050565b600082825260208201905092915050565b600062000d0a8262000d8e565b915062000d178362000d8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d4f5762000d4e62000dce565b5b828201905092915050565b600062000d678262000d6e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000db157607f821691505b6020821081141562000dc85762000dc762000dfd565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000e608162000d5a565b811462000e6c57600080fd5b50565b60805160601c61488c62000e9560003960008181610ead0152610ed9015261488c6000f3fe60806040526004361061026b5760003560e01c806370a0823111610144578063c2d4640e116100b6578063dd62ed3e1161007a578063dd62ed3e1461095f578063e207a92b1461099c578063f1d5f517146109c5578063f2fde38b146109ee578063f872858a14610a17578063fabf706314610a4257610272565b8063c2d4640e1461087a578063c49b9a80146108a3578063c78a789b146108cc578063c816841b14610909578063da00097d1461093457610272565b80638f03aad5116101085780638f03aad51461076c578063914eb66a1461079557806395d89b41146107ac578063a457c2d7146107d7578063a5d69d1f14610814578063a9059cbb1461083d57610272565b806370a08231146106855780637d1db4a5146106c25780637d7846ff146106ed578063807c2d9c146107165780638da5cb5b1461074157610272565b8063313ce567116101dd5780634cb80fd5116101a15780634cb80fd514610553578063526012e81461057c57806355324fa9146105b957806357e6adcb146105f65780635881f3ef1461061f578063667b511c1461065c57610272565b8063313ce5671461046c57806339509351146104975780633b97084a146104d45780633eaaf86b146104fd5780634a74bb021461052857610272565b806323b872dd1161022f57806323b872dd1461035e57806325519cf21461039b5780632563ae83146103c457806327c8f835146103ed5780632b112e49146104185780632cdae5cb1461044357610272565b806306fdde0314610277578063095ea7b3146102a25780631694505e146102df57806318160ddd1461030a5780631d865c301461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a7f565b6040516102999190613fe0565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190613b63565b610b11565b6040516102d69190613faa565b60405180910390f35b3480156102eb57600080fd5b506102f4610b2f565b6040516103019190613fc5565b60405180910390f35b34801561031657600080fd5b5061031f610b55565b60405161032c9190614142565b60405180910390f35b34801561034157600080fd5b5061035c60048036038101906103579190613bf1565b610b5f565b005b34801561036a57600080fd5b5061038560048036038101906103809190613ad8565b610c3f565b6040516103929190613faa565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190613bf1565b610d19565b005b3480156103d057600080fd5b506103eb60048036038101906103e69190613b9f565b610df9565b005b3480156103f957600080fd5b50610402610eab565b60405161040f9190613f05565b60405180910390f35b34801561042457600080fd5b5061042d610ecf565b60405161043a9190614142565b60405180910390f35b34801561044f57600080fd5b5061046a60048036038101906104659190613b27565b610f13565b005b34801561047857600080fd5b50610481611003565b60405161048e91906141e7565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b99190613b63565b61101a565b6040516104cb9190613faa565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190613bc8565b6110cd565b005b34801561050957600080fd5b5061051261116c565b60405161051f9190614142565b60405180910390f35b34801561053457600080fd5b5061053d611172565b60405161054a9190613faa565b60405180910390f35b34801561055f57600080fd5b5061057a60048036038101906105759190613a4a565b611185565b005b34801561058857600080fd5b506105a3600480360381019061059e9190613a4a565b61125e565b6040516105b09190613faa565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190613a4a565b61127e565b6040516105ed9190613faa565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613b27565b61129e565b005b34801561062b57600080fd5b5061064660048036038101906106419190613a4a565b61138e565b6040516106539190613f05565b60405180910390f35b34801561066857600080fd5b50610683600480360381019061067e9190613b27565b6118ec565b005b34801561069157600080fd5b506106ac60048036038101906106a79190613a4a565b6119dc565b6040516106b99190614142565b60405180910390f35b3480156106ce57600080fd5b506106d7611a25565b6040516106e49190614142565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f9190613a4a565b611a2b565b005b34801561072257600080fd5b5061072b611b04565b6040516107389190614142565b60405180910390f35b34801561074d57600080fd5b50610756611b0a565b6040516107639190613f05565b60405180910390f35b34801561077857600080fd5b50610793600480360381019061078e9190613bc8565b611b33565b005b3480156107a157600080fd5b506107aa611c1e565b005b3480156107b857600080fd5b506107c1611d71565b6040516107ce9190613fe0565b60405180910390f35b3480156107e357600080fd5b506107fe60048036038101906107f99190613b63565b611e03565b60405161080b9190613faa565b60405180910390f35b34801561082057600080fd5b5061083b60048036038101906108369190613b9f565b611ed0565b005b34801561084957600080fd5b50610864600480360381019061085f9190613b63565b611f82565b6040516108719190613faa565b60405180910390f35b34801561088657600080fd5b506108a1600480360381019061089c9190613bf1565b611fa1565b005b3480156108af57600080fd5b506108ca60048036038101906108c59190613b9f565b612081565b005b3480156108d857600080fd5b506108f360048036038101906108ee9190613a4a565b61216a565b6040516109009190613faa565b60405180910390f35b34801561091557600080fd5b5061091e61218a565b60405161092b9190613f05565b60405180910390f35b34801561094057600080fd5b506109496121b0565b6040516109569190613faa565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190613a9c565b6121c3565b6040516109939190614142565b60405180910390f35b3480156109a857600080fd5b506109c360048036038101906109be9190613a4a565b61224a565b005b3480156109d157600080fd5b506109ec60048036038101906109e79190613bc8565b61233a565b005b3480156109fa57600080fd5b50610a156004803603810190610a109190613a4a565b6123d9565b005b348015610a2357600080fd5b50610a2c61259b565b604051610a399190613faa565b60405180910390f35b348015610a4e57600080fd5b50610a696004803603810190610a649190613a4a565b6125ae565b604051610a769190613faa565b60405180910390f35b606060028054610a8e9061442a565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba9061442a565b8015610b075780601f10610adc57610100808354040283529160200191610b07565b820191906000526020600020905b815481529060010190602001808311610aea57829003601f168201915b5050505050905090565b6000610b25610b1e61262c565b8484612634565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610b6761262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610beb906140e2565b60405180910390fd5b82600f819055508160108190555080601181905550610c34601154610c26601054600f546125ce90919063ffffffff16565b6125ce90919063ffffffff16565b601681905550505050565b6000610c4c8484846127ff565b50610d0e84610c5961262c565b610d098560405180606001604052806028815260200161480a60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cbf61262c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de49092919063ffffffff16565b612634565b600190509392505050565b610d2161262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da5906140e2565b60405180910390fd5b82600c8190555081600d8190555080600e81905550610dee600e54610de0600d54600c546125ce90919063ffffffff16565b6125ce90919063ffffffff16565b601581905550505050565b610e0161262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e85906140e2565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f0e610efd7f00000000000000000000000000000000000000000000000000000000000000006119dc565b601854612e4890919063ffffffff16565b905090565b610f1b61262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f906140e2565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460009054906101000a900460ff16905090565b60006110c361102761262c565b846110be856007600061103861262c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ce90919063ffffffff16565b612634565b6001905092915050565b6110d561262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611162576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611159906140e2565b60405180910390fd5b80601b8190555050565b60185481565b601d60159054906101000a900460ff1681565b61118d61262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611211906140e2565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b6112a661262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a906140e2565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061139861262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c906140e2565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561147057600080fd5b505afa158015611484573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190613a73565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561150a57600080fd5b505afa15801561151e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115429190613a73565b6040518363ffffffff1660e01b815260040161155f929190613f20565b60206040518083038186803b15801561157757600080fd5b505afa15801561158b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115af9190613a73565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611770578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561162c57600080fd5b505afa158015611640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116649190613a73565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c657600080fd5b505afa1580156116da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fe9190613a73565b6040518363ffffffff1660e01b815260040161171b929190613f20565b602060405180830381600087803b15801561173557600080fd5b505af1158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d9190613a73565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6118f461262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611981576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611978906140e2565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b611a3361262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab7906140e2565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611b3b61262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf906140e2565b60405180910390fd5b682423dbc92e6cae2400811115611c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0b90614022565b60405180910390fd5b8060198190555050565b611c2661262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa906140e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611d809061442a565b80601f0160208091040260200160405190810160405280929190818152602001828054611dac9061442a565b8015611df95780601f10611dce57610100808354040283529160200191611df9565b820191906000526020600020905b815481529060010190602001808311611ddc57829003601f168201915b5050505050905090565b6000611ec6611e1061262c565b84611ec1856040518060600160405280602581526020016148326025913960076000611e3a61262c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de49092919063ffffffff16565b612634565b6001905092915050565b611ed861262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5c906140e2565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b6000611f96611f8f61262c565b84846127ff565b506001905092915050565b611fa961262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d906140e2565b60405180910390fd5b8260128190555081601381905550806014819055506120766014546120686013546012546125ce90919063ffffffff16565b6125ce90919063ffffffff16565b601781905550505050565b61208961262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d906140e2565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161215f9190613faa565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61225261262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d6906140e2565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61234261262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c6906140e2565b60405180910390fd5b80601a8190555050565b6123e161262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906140e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d590614042565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60008082846125dd9190614257565b905083811015612622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261990614082565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269b90614122565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270b90614062565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127f29190614142565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286790614102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d790614002565b60405180910390fd5b601d60149054906101000a900460ff161561290757612900848484612e92565b9050612ddd565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129ab5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129f6576019548211156129f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ec906140a2565b60405180910390fd5b5b6000612a01306119dc565b90506000601b548210159050808015612a275750601d60149054906101000a900460ff16155b8015612a7d5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a955750601d60159054906101000a900460ff165b15612abf57601d60169054906101000a900460ff1615612ab557601b5491505b612abe82613065565b5b612b48846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de49092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c2e5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c4257612c3d878787613256565b612c44565b845b9050601d60179054906101000a900460ff168015612cac5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cdb57601a54612ccf82612cc1896119dc565b6125ce90919063ffffffff16565b1115612cda57600080fd5b5b612d2d81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ce90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dcd9190614142565b60405180910390a3600193505050505b9392505050565b6000838311158290612e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e239190613fe0565b60405180910390fd5b5060008385612e3b9190614338565b9050809150509392505050565b6000612e8a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de4565b905092915050565b6000612f1d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de49092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fb282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ce90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130529190614142565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff02191690831515021790555060006130be60026130b06017546130a26012548761347d90919063ffffffff16565b6134f890919063ffffffff16565b6134f890919063ffffffff16565b905060006130d58284612e4890919063ffffffff16565b90506130e081613542565b6000479050600061311161310060026012546134f890919063ffffffff16565b601754612e4890919063ffffffff16565b9050600061314f6002613141846131336012548861347d90919063ffffffff16565b6134f890919063ffffffff16565b6134f890919063ffffffff16565b9050600061317a8361316c6014548761347d90919063ffffffff16565b6134f890919063ffffffff16565b905060006131a3826131958588612e4890919063ffffffff16565b612e4890919063ffffffff16565b905060008111156131db576131da600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261383f565b5b600082111561321157613210600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361383f565b5b6000831180156132215750600087115b1561323157613230878461388a565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156132de576132d760646132c96015548661347d90919063ffffffff16565b6134f890919063ffffffff16565b905061335c565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561335b57613358606461334a6016548661347d90919063ffffffff16565b6134f890919063ffffffff16565b90505b5b6000811115613460576133b781600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ce90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134579190614142565b60405180910390a35b6134738184612e4890919063ffffffff16565b9150509392505050565b60008083141561349057600090506134f2565b6000828461349e91906142de565b90508284826134ad91906142ad565b146134ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134e4906140c2565b60405180910390fd5b809150505b92915050565b600061353a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061397e565b905092915050565b6000600267ffffffffffffffff811115613585577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156135b35781602001602082028036833780820191505090505b50905030816000815181106135f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561369357600080fd5b505afa1580156136a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cb9190613a73565b81600181518110613705577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061376c30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612634565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016137d095949392919061418d565b600060405180830381600087803b1580156137ea57600080fd5b505af11580156137fe573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161383392919061415d565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613885573d6000803e3d6000fd5b505050565b6138b730601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612634565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613903611b0a565b426040518863ffffffff1660e01b815260040161392596959493929190613f49565b6060604051808303818588803b15801561393e57600080fd5b505af1158015613952573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906139779190613c40565b5050505050565b600080831182906139c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139bc9190613fe0565b60405180910390fd5b50600083856139d491906142ad565b9050809150509392505050565b6000813590506139f0816147c4565b92915050565b600081519050613a05816147c4565b92915050565b600081359050613a1a816147db565b92915050565b600081359050613a2f816147f2565b92915050565b600081519050613a44816147f2565b92915050565b600060208284031215613a5c57600080fd5b6000613a6a848285016139e1565b91505092915050565b600060208284031215613a8557600080fd5b6000613a93848285016139f6565b91505092915050565b60008060408385031215613aaf57600080fd5b6000613abd858286016139e1565b9250506020613ace858286016139e1565b9150509250929050565b600080600060608486031215613aed57600080fd5b6000613afb868287016139e1565b9350506020613b0c868287016139e1565b9250506040613b1d86828701613a20565b9150509250925092565b60008060408385031215613b3a57600080fd5b6000613b48858286016139e1565b9250506020613b5985828601613a0b565b9150509250929050565b60008060408385031215613b7657600080fd5b6000613b84858286016139e1565b9250506020613b9585828601613a20565b9150509250929050565b600060208284031215613bb157600080fd5b6000613bbf84828501613a0b565b91505092915050565b600060208284031215613bda57600080fd5b6000613be884828501613a20565b91505092915050565b600080600060608486031215613c0657600080fd5b6000613c1486828701613a20565b9350506020613c2586828701613a20565b9250506040613c3686828701613a20565b9150509250925092565b600080600060608486031215613c5557600080fd5b6000613c6386828701613a35565b9350506020613c7486828701613a35565b9250506040613c8586828701613a35565b9150509250925092565b6000613c9b8383613ca7565b60208301905092915050565b613cb08161436c565b82525050565b613cbf8161436c565b82525050565b6000613cd082614212565b613cda8185614235565b9350613ce583614202565b8060005b83811015613d16578151613cfd8882613c8f565b9750613d0883614228565b925050600181019050613ce9565b5085935050505092915050565b613d2c8161437e565b82525050565b613d3b816143c1565b82525050565b613d4a816143e5565b82525050565b6000613d5b8261421d565b613d658185614246565b9350613d758185602086016143f7565b613d7e816144e9565b840191505092915050565b6000613d96602383614246565b9150613da1826144fa565b604082019050919050565b6000613db9603483614246565b9150613dc482614549565b604082019050919050565b6000613ddc602683614246565b9150613de782614598565b604082019050919050565b6000613dff602283614246565b9150613e0a826145e7565b604082019050919050565b6000613e22601b83614246565b9150613e2d82614636565b602082019050919050565b6000613e45602883614246565b9150613e508261465f565b604082019050919050565b6000613e68602183614246565b9150613e73826146ae565b604082019050919050565b6000613e8b602083614246565b9150613e96826146fd565b602082019050919050565b6000613eae602583614246565b9150613eb982614726565b604082019050919050565b6000613ed1602483614246565b9150613edc82614775565b604082019050919050565b613ef0816143aa565b82525050565b613eff816143b4565b82525050565b6000602082019050613f1a6000830184613cb6565b92915050565b6000604082019050613f356000830185613cb6565b613f426020830184613cb6565b9392505050565b600060c082019050613f5e6000830189613cb6565b613f6b6020830188613ee7565b613f786040830187613d41565b613f856060830186613d41565b613f926080830185613cb6565b613f9f60a0830184613ee7565b979650505050505050565b6000602082019050613fbf6000830184613d23565b92915050565b6000602082019050613fda6000830184613d32565b92915050565b60006020820190508181036000830152613ffa8184613d50565b905092915050565b6000602082019050818103600083015261401b81613d89565b9050919050565b6000602082019050818103600083015261403b81613dac565b9050919050565b6000602082019050818103600083015261405b81613dcf565b9050919050565b6000602082019050818103600083015261407b81613df2565b9050919050565b6000602082019050818103600083015261409b81613e15565b9050919050565b600060208201905081810360008301526140bb81613e38565b9050919050565b600060208201905081810360008301526140db81613e5b565b9050919050565b600060208201905081810360008301526140fb81613e7e565b9050919050565b6000602082019050818103600083015261411b81613ea1565b9050919050565b6000602082019050818103600083015261413b81613ec4565b9050919050565b60006020820190506141576000830184613ee7565b92915050565b60006040820190506141726000830185613ee7565b81810360208301526141848184613cc5565b90509392505050565b600060a0820190506141a26000830188613ee7565b6141af6020830187613d41565b81810360408301526141c18186613cc5565b90506141d06060830185613cb6565b6141dd6080830184613ee7565b9695505050505050565b60006020820190506141fc6000830184613ef6565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614262826143aa565b915061426d836143aa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142a2576142a161445c565b5b828201905092915050565b60006142b8826143aa565b91506142c3836143aa565b9250826142d3576142d261448b565b5b828204905092915050565b60006142e9826143aa565b91506142f4836143aa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561432d5761432c61445c565b5b828202905092915050565b6000614343826143aa565b915061434e836143aa565b9250828210156143615761436061445c565b5b828203905092915050565b60006143778261438a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006143cc826143d3565b9050919050565b60006143de8261438a565b9050919050565b60006143f0826143aa565b9050919050565b60005b838110156144155780820151818401526020810190506143fa565b83811115614424576000848401525b50505050565b6000600282049050600182168061444257607f821691505b60208210811415614456576144556144ba565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065757160008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6147cd8161436c565b81146147d857600080fd5b50565b6147e48161437e565b81146147ef57600080fd5b50565b6147fb816143aa565b811461480657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122092545603930b3ac3385abc293665a9f90024fb60cf5fc10555e0c82f031f5dfb64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c806370a0823111610144578063c2d4640e116100b6578063dd62ed3e1161007a578063dd62ed3e1461095f578063e207a92b1461099c578063f1d5f517146109c5578063f2fde38b146109ee578063f872858a14610a17578063fabf706314610a4257610272565b8063c2d4640e1461087a578063c49b9a80146108a3578063c78a789b146108cc578063c816841b14610909578063da00097d1461093457610272565b80638f03aad5116101085780638f03aad51461076c578063914eb66a1461079557806395d89b41146107ac578063a457c2d7146107d7578063a5d69d1f14610814578063a9059cbb1461083d57610272565b806370a08231146106855780637d1db4a5146106c25780637d7846ff146106ed578063807c2d9c146107165780638da5cb5b1461074157610272565b8063313ce567116101dd5780634cb80fd5116101a15780634cb80fd514610553578063526012e81461057c57806355324fa9146105b957806357e6adcb146105f65780635881f3ef1461061f578063667b511c1461065c57610272565b8063313ce5671461046c57806339509351146104975780633b97084a146104d45780633eaaf86b146104fd5780634a74bb021461052857610272565b806323b872dd1161022f57806323b872dd1461035e57806325519cf21461039b5780632563ae83146103c457806327c8f835146103ed5780632b112e49146104185780632cdae5cb1461044357610272565b806306fdde0314610277578063095ea7b3146102a25780631694505e146102df57806318160ddd1461030a5780631d865c301461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a7f565b6040516102999190613fe0565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190613b63565b610b11565b6040516102d69190613faa565b60405180910390f35b3480156102eb57600080fd5b506102f4610b2f565b6040516103019190613fc5565b60405180910390f35b34801561031657600080fd5b5061031f610b55565b60405161032c9190614142565b60405180910390f35b34801561034157600080fd5b5061035c60048036038101906103579190613bf1565b610b5f565b005b34801561036a57600080fd5b5061038560048036038101906103809190613ad8565b610c3f565b6040516103929190613faa565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190613bf1565b610d19565b005b3480156103d057600080fd5b506103eb60048036038101906103e69190613b9f565b610df9565b005b3480156103f957600080fd5b50610402610eab565b60405161040f9190613f05565b60405180910390f35b34801561042457600080fd5b5061042d610ecf565b60405161043a9190614142565b60405180910390f35b34801561044f57600080fd5b5061046a60048036038101906104659190613b27565b610f13565b005b34801561047857600080fd5b50610481611003565b60405161048e91906141e7565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b99190613b63565b61101a565b6040516104cb9190613faa565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190613bc8565b6110cd565b005b34801561050957600080fd5b5061051261116c565b60405161051f9190614142565b60405180910390f35b34801561053457600080fd5b5061053d611172565b60405161054a9190613faa565b60405180910390f35b34801561055f57600080fd5b5061057a60048036038101906105759190613a4a565b611185565b005b34801561058857600080fd5b506105a3600480360381019061059e9190613a4a565b61125e565b6040516105b09190613faa565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190613a4a565b61127e565b6040516105ed9190613faa565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613b27565b61129e565b005b34801561062b57600080fd5b5061064660048036038101906106419190613a4a565b61138e565b6040516106539190613f05565b60405180910390f35b34801561066857600080fd5b50610683600480360381019061067e9190613b27565b6118ec565b005b34801561069157600080fd5b506106ac60048036038101906106a79190613a4a565b6119dc565b6040516106b99190614142565b60405180910390f35b3480156106ce57600080fd5b506106d7611a25565b6040516106e49190614142565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f9190613a4a565b611a2b565b005b34801561072257600080fd5b5061072b611b04565b6040516107389190614142565b60405180910390f35b34801561074d57600080fd5b50610756611b0a565b6040516107639190613f05565b60405180910390f35b34801561077857600080fd5b50610793600480360381019061078e9190613bc8565b611b33565b005b3480156107a157600080fd5b506107aa611c1e565b005b3480156107b857600080fd5b506107c1611d71565b6040516107ce9190613fe0565b60405180910390f35b3480156107e357600080fd5b506107fe60048036038101906107f99190613b63565b611e03565b60405161080b9190613faa565b60405180910390f35b34801561082057600080fd5b5061083b60048036038101906108369190613b9f565b611ed0565b005b34801561084957600080fd5b50610864600480360381019061085f9190613b63565b611f82565b6040516108719190613faa565b60405180910390f35b34801561088657600080fd5b506108a1600480360381019061089c9190613bf1565b611fa1565b005b3480156108af57600080fd5b506108ca60048036038101906108c59190613b9f565b612081565b005b3480156108d857600080fd5b506108f360048036038101906108ee9190613a4a565b61216a565b6040516109009190613faa565b60405180910390f35b34801561091557600080fd5b5061091e61218a565b60405161092b9190613f05565b60405180910390f35b34801561094057600080fd5b506109496121b0565b6040516109569190613faa565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190613a9c565b6121c3565b6040516109939190614142565b60405180910390f35b3480156109a857600080fd5b506109c360048036038101906109be9190613a4a565b61224a565b005b3480156109d157600080fd5b506109ec60048036038101906109e79190613bc8565b61233a565b005b3480156109fa57600080fd5b50610a156004803603810190610a109190613a4a565b6123d9565b005b348015610a2357600080fd5b50610a2c61259b565b604051610a399190613faa565b60405180910390f35b348015610a4e57600080fd5b50610a696004803603810190610a649190613a4a565b6125ae565b604051610a769190613faa565b60405180910390f35b606060028054610a8e9061442a565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba9061442a565b8015610b075780601f10610adc57610100808354040283529160200191610b07565b820191906000526020600020905b815481529060010190602001808311610aea57829003601f168201915b5050505050905090565b6000610b25610b1e61262c565b8484612634565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610b6761262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610beb906140e2565b60405180910390fd5b82600f819055508160108190555080601181905550610c34601154610c26601054600f546125ce90919063ffffffff16565b6125ce90919063ffffffff16565b601681905550505050565b6000610c4c8484846127ff565b50610d0e84610c5961262c565b610d098560405180606001604052806028815260200161480a60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cbf61262c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de49092919063ffffffff16565b612634565b600190509392505050565b610d2161262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da5906140e2565b60405180910390fd5b82600c8190555081600d8190555080600e81905550610dee600e54610de0600d54600c546125ce90919063ffffffff16565b6125ce90919063ffffffff16565b601581905550505050565b610e0161262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e85906140e2565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610f0e610efd7f000000000000000000000000000000000000000000000000000000000000dead6119dc565b601854612e4890919063ffffffff16565b905090565b610f1b61262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f906140e2565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460009054906101000a900460ff16905090565b60006110c361102761262c565b846110be856007600061103861262c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ce90919063ffffffff16565b612634565b6001905092915050565b6110d561262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611162576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611159906140e2565b60405180910390fd5b80601b8190555050565b60185481565b601d60159054906101000a900460ff1681565b61118d61262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611211906140e2565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b6112a661262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a906140e2565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061139861262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c906140e2565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561147057600080fd5b505afa158015611484573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190613a73565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561150a57600080fd5b505afa15801561151e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115429190613a73565b6040518363ffffffff1660e01b815260040161155f929190613f20565b60206040518083038186803b15801561157757600080fd5b505afa15801561158b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115af9190613a73565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611770578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561162c57600080fd5b505afa158015611640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116649190613a73565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c657600080fd5b505afa1580156116da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fe9190613a73565b6040518363ffffffff1660e01b815260040161171b929190613f20565b602060405180830381600087803b15801561173557600080fd5b505af1158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d9190613a73565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b6118f461262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611981576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611978906140e2565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b611a3361262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab7906140e2565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611b3b61262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf906140e2565b60405180910390fd5b682423dbc92e6cae2400811115611c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0b90614022565b60405180910390fd5b8060198190555050565b611c2661262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa906140e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060038054611d809061442a565b80601f0160208091040260200160405190810160405280929190818152602001828054611dac9061442a565b8015611df95780601f10611dce57610100808354040283529160200191611df9565b820191906000526020600020905b815481529060010190602001808311611ddc57829003601f168201915b5050505050905090565b6000611ec6611e1061262c565b84611ec1856040518060600160405280602581526020016148326025913960076000611e3a61262c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de49092919063ffffffff16565b612634565b6001905092915050565b611ed861262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5c906140e2565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b6000611f96611f8f61262c565b84846127ff565b506001905092915050565b611fa961262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d906140e2565b60405180910390fd5b8260128190555081601381905550806014819055506120766014546120686013546012546125ce90919063ffffffff16565b6125ce90919063ffffffff16565b601781905550505050565b61208961262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d906140e2565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161215f9190613faa565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61225261262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d6906140e2565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61234261262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c6906140e2565b60405180910390fd5b80601a8190555050565b6123e161262c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461246e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612465906140e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d590614042565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d60179054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60008082846125dd9190614257565b905083811015612622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261990614082565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269b90614122565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270b90614062565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127f29190614142565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286790614102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d790614002565b60405180910390fd5b601d60149054906101000a900460ff161561290757612900848484612e92565b9050612ddd565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129ab5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129f6576019548211156129f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ec906140a2565b60405180910390fd5b5b6000612a01306119dc565b90506000601b548210159050808015612a275750601d60149054906101000a900460ff16155b8015612a7d5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a955750601d60159054906101000a900460ff165b15612abf57601d60169054906101000a900460ff1615612ab557601b5491505b612abe82613065565b5b612b48846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de49092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c2e5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c4257612c3d878787613256565b612c44565b845b9050601d60179054906101000a900460ff168015612cac5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cdb57601a54612ccf82612cc1896119dc565b6125ce90919063ffffffff16565b1115612cda57600080fd5b5b612d2d81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ce90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dcd9190614142565b60405180910390a3600193505050505b9392505050565b6000838311158290612e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e239190613fe0565b60405180910390fd5b5060008385612e3b9190614338565b9050809150509392505050565b6000612e8a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de4565b905092915050565b6000612f1d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de49092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fb282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ce90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130529190614142565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff02191690831515021790555060006130be60026130b06017546130a26012548761347d90919063ffffffff16565b6134f890919063ffffffff16565b6134f890919063ffffffff16565b905060006130d58284612e4890919063ffffffff16565b90506130e081613542565b6000479050600061311161310060026012546134f890919063ffffffff16565b601754612e4890919063ffffffff16565b9050600061314f6002613141846131336012548861347d90919063ffffffff16565b6134f890919063ffffffff16565b6134f890919063ffffffff16565b9050600061317a8361316c6014548761347d90919063ffffffff16565b6134f890919063ffffffff16565b905060006131a3826131958588612e4890919063ffffffff16565b612e4890919063ffffffff16565b905060008111156131db576131da600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261383f565b5b600082111561321157613210600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361383f565b5b6000831180156132215750600087115b1561323157613230878461388a565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156132de576132d760646132c96015548661347d90919063ffffffff16565b6134f890919063ffffffff16565b905061335c565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561335b57613358606461334a6016548661347d90919063ffffffff16565b6134f890919063ffffffff16565b90505b5b6000811115613460576133b781600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ce90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134579190614142565b60405180910390a35b6134738184612e4890919063ffffffff16565b9150509392505050565b60008083141561349057600090506134f2565b6000828461349e91906142de565b90508284826134ad91906142ad565b146134ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134e4906140c2565b60405180910390fd5b809150505b92915050565b600061353a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061397e565b905092915050565b6000600267ffffffffffffffff811115613585577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156135b35781602001602082028036833780820191505090505b50905030816000815181106135f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561369357600080fd5b505afa1580156136a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cb9190613a73565b81600181518110613705577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061376c30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612634565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016137d095949392919061418d565b600060405180830381600087803b1580156137ea57600080fd5b505af11580156137fe573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161383392919061415d565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613885573d6000803e3d6000fd5b505050565b6138b730601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612634565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613903611b0a565b426040518863ffffffff1660e01b815260040161392596959493929190613f49565b6060604051808303818588803b15801561393e57600080fd5b505af1158015613952573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906139779190613c40565b5050505050565b600080831182906139c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139bc9190613fe0565b60405180910390fd5b50600083856139d491906142ad565b9050809150509392505050565b6000813590506139f0816147c4565b92915050565b600081519050613a05816147c4565b92915050565b600081359050613a1a816147db565b92915050565b600081359050613a2f816147f2565b92915050565b600081519050613a44816147f2565b92915050565b600060208284031215613a5c57600080fd5b6000613a6a848285016139e1565b91505092915050565b600060208284031215613a8557600080fd5b6000613a93848285016139f6565b91505092915050565b60008060408385031215613aaf57600080fd5b6000613abd858286016139e1565b9250506020613ace858286016139e1565b9150509250929050565b600080600060608486031215613aed57600080fd5b6000613afb868287016139e1565b9350506020613b0c868287016139e1565b9250506040613b1d86828701613a20565b9150509250925092565b60008060408385031215613b3a57600080fd5b6000613b48858286016139e1565b9250506020613b5985828601613a0b565b9150509250929050565b60008060408385031215613b7657600080fd5b6000613b84858286016139e1565b9250506020613b9585828601613a20565b9150509250929050565b600060208284031215613bb157600080fd5b6000613bbf84828501613a0b565b91505092915050565b600060208284031215613bda57600080fd5b6000613be884828501613a20565b91505092915050565b600080600060608486031215613c0657600080fd5b6000613c1486828701613a20565b9350506020613c2586828701613a20565b9250506040613c3686828701613a20565b9150509250925092565b600080600060608486031215613c5557600080fd5b6000613c6386828701613a35565b9350506020613c7486828701613a35565b9250506040613c8586828701613a35565b9150509250925092565b6000613c9b8383613ca7565b60208301905092915050565b613cb08161436c565b82525050565b613cbf8161436c565b82525050565b6000613cd082614212565b613cda8185614235565b9350613ce583614202565b8060005b83811015613d16578151613cfd8882613c8f565b9750613d0883614228565b925050600181019050613ce9565b5085935050505092915050565b613d2c8161437e565b82525050565b613d3b816143c1565b82525050565b613d4a816143e5565b82525050565b6000613d5b8261421d565b613d658185614246565b9350613d758185602086016143f7565b613d7e816144e9565b840191505092915050565b6000613d96602383614246565b9150613da1826144fa565b604082019050919050565b6000613db9603483614246565b9150613dc482614549565b604082019050919050565b6000613ddc602683614246565b9150613de782614598565b604082019050919050565b6000613dff602283614246565b9150613e0a826145e7565b604082019050919050565b6000613e22601b83614246565b9150613e2d82614636565b602082019050919050565b6000613e45602883614246565b9150613e508261465f565b604082019050919050565b6000613e68602183614246565b9150613e73826146ae565b604082019050919050565b6000613e8b602083614246565b9150613e96826146fd565b602082019050919050565b6000613eae602583614246565b9150613eb982614726565b604082019050919050565b6000613ed1602483614246565b9150613edc82614775565b604082019050919050565b613ef0816143aa565b82525050565b613eff816143b4565b82525050565b6000602082019050613f1a6000830184613cb6565b92915050565b6000604082019050613f356000830185613cb6565b613f426020830184613cb6565b9392505050565b600060c082019050613f5e6000830189613cb6565b613f6b6020830188613ee7565b613f786040830187613d41565b613f856060830186613d41565b613f926080830185613cb6565b613f9f60a0830184613ee7565b979650505050505050565b6000602082019050613fbf6000830184613d23565b92915050565b6000602082019050613fda6000830184613d32565b92915050565b60006020820190508181036000830152613ffa8184613d50565b905092915050565b6000602082019050818103600083015261401b81613d89565b9050919050565b6000602082019050818103600083015261403b81613dac565b9050919050565b6000602082019050818103600083015261405b81613dcf565b9050919050565b6000602082019050818103600083015261407b81613df2565b9050919050565b6000602082019050818103600083015261409b81613e15565b9050919050565b600060208201905081810360008301526140bb81613e38565b9050919050565b600060208201905081810360008301526140db81613e5b565b9050919050565b600060208201905081810360008301526140fb81613e7e565b9050919050565b6000602082019050818103600083015261411b81613ea1565b9050919050565b6000602082019050818103600083015261413b81613ec4565b9050919050565b60006020820190506141576000830184613ee7565b92915050565b60006040820190506141726000830185613ee7565b81810360208301526141848184613cc5565b90509392505050565b600060a0820190506141a26000830188613ee7565b6141af6020830187613d41565b81810360408301526141c18186613cc5565b90506141d06060830185613cb6565b6141dd6080830184613ee7565b9695505050505050565b60006020820190506141fc6000830184613ef6565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614262826143aa565b915061426d836143aa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142a2576142a161445c565b5b828201905092915050565b60006142b8826143aa565b91506142c3836143aa565b9250826142d3576142d261448b565b5b828204905092915050565b60006142e9826143aa565b91506142f4836143aa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561432d5761432c61445c565b5b828202905092915050565b6000614343826143aa565b915061434e836143aa565b9250828210156143615761436061445c565b5b828203905092915050565b60006143778261438a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006143cc826143d3565b9050919050565b60006143de8261438a565b9050919050565b60006143f0826143aa565b9050919050565b60005b838110156144155780820151818401526020810190506143fa565b83811115614424576000848401525b50505050565b6000600282049050600182168061444257607f821691505b60208210811415614456576144556144ba565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c65742073686f756c64206265206c657373206f722065757160008201527f616c20746f20342520746f74616c537570706c79000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6147cd8161436c565b81146147d857600080fd5b50565b6147e48161437e565b81146147ef57600080fd5b50565b6147fb816143aa565b811461480657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122092545603930b3ac3385abc293665a9f90024fb60cf5fc10555e0c82f031f5dfb64736f6c63430008040033
Deployed Bytecode Sourcemap
14231:15048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17969:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19135:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15936:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18246:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20433:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23947:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20060:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21457:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14694:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22583:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19909:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18155:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18632:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21837:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15706:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16051:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21969:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14976:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15096:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21578:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22857:813;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19764:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18354:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15763:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22116:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15820:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21222:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5995:145;;;;;;;;;;;;;:::i;:::-;;18060:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18858:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22446:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23772:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20818:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22267:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15038:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15984:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16098:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18481:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19649:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21727:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6148:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16150:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14915:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17969:83;18006:13;18039:5;18032:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17969:83;:::o;19135:161::-;19210:4;19227:39;19236:12;:10;:12::i;:::-;19250:7;19259:6;19227:8;:39::i;:::-;19284:4;19277:11;;19135:161;;;;:::o;15936:41::-;;;;;;;;;;;;;:::o;18246:100::-;18299:7;18326:12;;18319:19;;18246:100;:::o;20433:373::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20583:15:::1;20562:18;:36;;;;20630:15;20609:18;:36;;;;20679:17;20656:20;:40;;;;20730:68;20777:20;;20730:42;20753:18;;20730;;:22;;:42;;;;:::i;:::-;:46;;:68;;;;:::i;:::-;20709:18;:89;;;;20433:373:::0;;;:::o;23947:313::-;24045:4;24062:36;24072:6;24080:9;24091:6;24062:9;:36::i;:::-;;24109:121;24118:6;24126:12;:10;:12::i;:::-;24140:89;24178:6;24140:89;;;;;;;;;;;;;;;;;:11;:19;24152:6;24140:19;;;;;;;;;;;;;;;:33;24160:12;:10;:12::i;:::-;24140:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;24109:8;:121::i;:::-;24248:4;24241:11;;23947:313;;;;;:::o;20060:365::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20208:15:::1;20188:17;:35;;;;20254:15;20234:17;:35;;;;20302:17;20280:19;:39;;;;20352:65;20397:19;;20352:40;20374:17;;20352;;:21;;:40;;;;:::i;:::-;:44;;:65;;;;:::i;:::-;20332:17;:85;;;;20060:365:::0;;;:::o;21457:113::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21554:8:::1;21535:16;;:27;;;;;;;;;;;;;;;;;;21457:113:::0;:::o;14694:81::-;;;:::o;22583:128::-;22636:7;22663:40;22680:22;22690:11;22680:9;:22::i;:::-;22663:12;;:16;;:40;;;;:::i;:::-;22656:47;;22583:128;:::o;19909:143::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20036:8:::1;20003:21;:30;20025:7;20003:30;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;19909:143:::0;;:::o;18155:83::-;18196:5;18221:9;;;;;;;;;;;18214:16;;18155:83;:::o;18632:218::-;18720:4;18737:83;18746:12;:10;:12::i;:::-;18760:7;18769:50;18808:10;18769:11;:25;18781:12;:10;:12::i;:::-;18769:25;;;;;;;;;;;;;;;:34;18795:7;18769:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18737:8;:83::i;:::-;18838:4;18831:11;;18632:218;;;;:::o;21837:124::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21945:8:::1;21919:23;:34;;;;21837:124:::0;:::o;15706:50::-;;;;:::o;16051:40::-;;;;;;;;;;;;;:::o;21969:139::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22089:10:::1;22056:22;;:44;;;;;;;;;;;;;;;;;;21969:139:::0;:::o;14976:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;15096:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;21578:141::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21705:6:::1;21672:22;:30;21695:6;21672:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21578:141:::0;;:::o;22857:813::-;22937:22;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22974:35:::1;23031:16;22974:74;;23097:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23079:53;;;23141:4;23148:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23079:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23062:110;;23214:1;23188:28;;:14;:28;;;23185:225;;;23302:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23284:74;;;23367:4;23374:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23284:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23267:131;;23185:225;23436:14;23422:11;;:28;;;;;;;;;;;;;;;;;;23502:16;23484:15;;:34;;;;;;;;;;;;;;;;;;23603:4;23556:22;:44;23587:11;;;;;;;;;;;23556:44;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;23658:4;23618:15;:37;23642:11;;;;;;;;;;;23618:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;5974:1;22857:813:::0;;;:::o;19764:133::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19883:6:::1;19854:18;:26;19873:6;19854:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19764:133:::0;;:::o;18354:119::-;18420:7;18447:9;:18;18457:7;18447:18;;;;;;;;;;;;;;;;18440:25;;18354:119;;;:::o;15763:50::-;;;;:::o;22116:143::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22240:10:::1;22205:24;;:46;;;;;;;;;;;;;;;;;;22116:143:::0;:::o;15820:47::-;;;;:::o;5770:79::-;5808:7;5835:6;;;;;;;;;;;5828:13;;5770:79;:::o;21222:227::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21326:20:::1;21310:11;:37;;21302:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;21430:11;21415:12;:26;;;;21222:227:::0;:::o;5995:145::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6099:1:::1;6062:40;;6083:6;::::0;::::1;;;;;;;;6062:40;;;;;;;;;;;;6130:1;6113:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5995:145::o:0;18060:87::-;18099:13;18132:7;18125:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18060:87;:::o;18858:269::-;18951:4;18968:129;18977:12;:10;:12::i;:::-;18991:7;19000:96;19039:15;19000:96;;;;;;;;;;;;;;;;;:11;:25;19012:12;:10;:12::i;:::-;19000:25;;;;;;;;;;;;;;;:34;19026:7;19000:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18968:8;:129::i;:::-;19115:4;19108:11;;18858:269;;;;:::o;22446:125::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22555:8:::1;22527:25;;:36;;;;;;;;;;;;;;;;;;22446:125:::0;:::o;23772:167::-;23850:4;23867:42;23877:12;:10;:12::i;:::-;23891:9;23902:6;23867:9;:42::i;:::-;;23927:4;23920:11;;23772:167;;;;:::o;20818:392::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20985:17:::1;20966:16;:36;;;;21032:17;21013:16;:36;;;;21081:19;21060:18;:40;;;;21140:62;21183:18;;21140:38;21161:16;;21140;;:20;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;21113:24;:89;;;;20818:392:::0;;;:::o;22267:171::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22368:8:::1;22344:21;;:32;;;;;;;;;;;;;;;;;;22392:38;22421:8;22392:38;;;;;;:::i;:::-;;;;;;;;22267:171:::0;:::o;15038:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15984:26::-;;;;;;;;;;;;;:::o;16098:45::-;;;;;;;;;;;;;:::o;18481:143::-;18562:7;18589:11;:18;18601:5;18589:18;;;;;;;;;;;;;;;:27;18608:7;18589:27;;;;;;;;;;;;;;;;18582:34;;18481:143;;;;:::o;19649:107::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19744:4:::1;19717:15;:24;19733:7;19717:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19649:107:::0;:::o;21727:102::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21813:8:::1;21799:10;:22;;;;21727:102:::0;:::o;6148:244::-;5914:12;:10;:12::i;:::-;5904:22;;:6;;;;;;;;;;:22;;;5896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6257:1:::1;6237:22;;:8;:22;;;;6229:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6347:8;6318:38;;6339:6;::::0;::::1;;;;;;;;6318:38;;;;;;;;;;;;6376:8;6367:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6148:244:::0;:::o;16150:35::-;;;;;;;;;;;;;:::o;14915:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;1172:181::-;1230:7;1250:9;1266:1;1262;:5;;;;:::i;:::-;1250:17;;1291:1;1286;:6;;1278:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1344:1;1337:8;;;1172:181;;;;:::o;104:115::-;157:15;200:10;185:26;;104:115;:::o;19304:337::-;19414:1;19397:19;;:5;:19;;;;19389:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19495:1;19476:21;;:7;:21;;;;19468:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19579:6;19549:11;:18;19561:5;19549:18;;;;;;;;;;;;;;;:27;19568:7;19549:27;;;;;;;;;;;;;;;:36;;;;19617:7;19601:32;;19610:5;19601:32;;;19626:6;19601:32;;;;;;:::i;:::-;;;;;;;;19304:337;;;:::o;24268:1727::-;24355:4;24400:1;24382:20;;:6;:20;;;;24374:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;24484:1;24463:23;;:9;:23;;;;24455:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24542:16;;;;;;;;;;;24539:1449;;;24592:41;24607:6;24615:9;24626:6;24592:14;:41::i;:::-;24585:48;;;;24539:1449;24689:18;:26;24708:6;24689:26;;;;;;;;;;;;;;;;;;;;;;;;;24688:27;:61;;;;;24720:18;:29;24739:9;24720:29;;;;;;;;;;;;;;;;;;;;;;;;;24719:30;24688:61;24685:176;;;24788:12;;24778:6;:22;;24770:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;24685:176;24889:28;24920:24;24938:4;24920:9;:24::i;:::-;24889:55;;24959:28;25014:23;;24990:20;:47;;24959:78;;25070:23;:44;;;;;25098:16;;;;;;;;;;;25097:17;25070:44;:72;;;;;25119:15;:23;25135:6;25119:23;;;;;;;;;;;;;;;;;;;;;;;;;25118:24;25070:72;:97;;;;;25146:21;;;;;;;;;;;25070:97;25066:308;;;25205:25;;;;;;;;;;;25202:97;;;25276:23;;25253:46;;25202:97;25318:36;25333:20;25318:14;:36::i;:::-;25066:308;25410:53;25432:6;25410:53;;;;;;;;;;;;;;;;;:9;:17;25420:6;25410:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25390:9;:17;25400:6;25390:17;;;;;;;;;;;;;;;:73;;;;25480:19;25503:21;:29;25525:6;25503:29;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;25536:21;:32;25558:9;25536:32;;;;;;;;;;;;;;;;;;;;;;;;;25503:65;25502:156;;25624:34;25632:6;25640:9;25651:6;25624:7;:34::i;:::-;25502:156;;;25615:6;25502:156;25480:178;;25678:16;;;;;;;;;;;:54;;;;;25699:22;:33;25722:9;25699:33;;;;;;;;;;;;;;;;;;;;;;;;;25698:34;25678:54;25675:136;;;25800:10;;25759:37;25784:11;25759:20;25769:9;25759;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;25751:60;;;;;;25675:136;25851:37;25876:11;25851:9;:20;25861:9;25851:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;25828:9;:20;25838:9;25828:20;;;;;;;;;;;;;;;:60;;;;25927:9;25910:40;;25919:6;25910:40;;;25938:11;25910:40;;;;;;:::i;:::-;;;;;;;;25972:4;25965:11;;;;;24268:1727;;;;;;:::o;1505:192::-;1591:7;1624:1;1619;:6;;1627:12;1611:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1651:9;1667:1;1663;:5;;;;:::i;:::-;1651:17;;1688:1;1681:8;;;1505:192;;;;;:::o;1361:136::-;1419:7;1446:43;1450:1;1453;1446:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1439:50;;1361:136;;;;:::o;26003:330::-;26096:4;26133:53;26155:6;26133:53;;;;;;;;;;;;;;;;;:9;:17;26143:6;26133:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;26113:9;:17;26123:6;26113:17;;;;;;;;;;;;;;;:73;;;;26220:32;26245:6;26220:9;:20;26230:9;26220:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;26197:9;:20;26207:9;26197:20;;;;;;;;;;;;;;;:55;;;;26285:9;26268:35;;26277:6;26268:35;;;26296:6;26268:35;;;;;;:::i;:::-;;;;;;;;26321:4;26314:11;;26003:330;;;;;:::o;26341:1094::-;16627:4;16608:16;;:23;;;;;;;;;;;;;;;;;;26423:19:::1;26445:66;26509:1;26445:59;26479:24;;26445:29;26457:16;;26445:7;:11;;:29;;;;:::i;:::-;:33;;:59;;;;:::i;:::-;:63;;:66;;;;:::i;:::-;26423:88;;26522:21;26546:24;26558:11;26546:7;:11;;:24;;;;:::i;:::-;26522:48;;26583:31;26600:13;26583:16;:31::i;:::-;26625:22;26650:21;26625:46;;26684:19;26706:53;26735:23;26756:1;26735:16;;:20;;:23;;;;:::i;:::-;26706:24;;:28;;:53;;;;:::i;:::-;26684:75;;26780:26;26809:60;26867:1;26809:53;26850:11;26809:36;26828:16;;26809:14;:18;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;26780:89;;26880:28;26911:55;26954:11;26911:38;26930:18;;26911:14;:18;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;26880:86;;26977:26;27006:64;27049:20;27006:38;27025:18;27006:14;:18;;:38;;;;:::i;:::-;:42;;:64;;;;:::i;:::-;26977:93;;27107:1;27086:18;:22;27083:104;;;27123:64;27144:22;;;;;;;;;;;27168:18;27123:20;:64::i;:::-;27083:104;27226:1;27203:20;:24;27200:110;;;27242:68;27263:24;;;;;;;;;;;27289:20;27242;:68::i;:::-;27200:110;27347:1;27326:18;:22;:41;;;;;27366:1;27352:11;:15;27326:41;27323:104;;;27382:45;27395:11;27408:18;27382:12;:45::i;:::-;27323:104;16642:1;;;;;;;16673:5:::0;16654:16;;:24;;;;;;;;;;;;;;;;;;26341:1094;:::o;28642:628::-;28728:7;28758:17;28778:1;28758:21;;28803:15;:23;28819:6;28803:23;;;;;;;;;;;;;;;;;;;;;;;;;28800:229;;;28855:38;28889:3;28855:29;28866:17;;28855:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;28843:50;;28800:229;;;28923:15;:26;28939:9;28923:26;;;;;;;;;;;;;;;;;;;;;;;;;28920:109;;;28978:39;29013:3;28978:30;28989:18;;28978:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;28966:51;;28920:109;28800:229;29064:1;29052:9;:13;29049:173;;;29109:39;29138:9;29109;:24;29127:4;29109:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;29082:9;:24;29100:4;29082:24;;;;;;;;;;;;;;;:66;;;;29193:4;29168:42;;29177:6;29168:42;;;29200:9;29168:42;;;;;;:::i;:::-;;;;;;;;29049:173;29241:21;29252:9;29241:6;:10;;:21;;;;:::i;:::-;29234:28;;;28642:628;;;;;:::o;1705:250::-;1763:7;1792:1;1787;:6;1783:47;;;1817:1;1810:8;;;;1783:47;1842:9;1858:1;1854;:5;;;;:::i;:::-;1842:17;;1887:1;1882;1878;:5;;;;:::i;:::-;:10;1870:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1946:1;1939:8;;;1705:250;;;;;:::o;1963:132::-;2021:7;2048:39;2052:1;2055;2048:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2041:46;;1963:132;;;;:::o;27447:666::-;27573:21;27611:1;27597:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27573:40;;27642:4;27624;27629:1;27624:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;27668:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27658:4;27663:1;27658:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;27703:62;27720:4;27735:15;;;;;;;;;;;27753:11;27703:8;:62::i;:::-;27804:15;;;;;;;;;;;:66;;;27885:11;27911:1;27955:4;27982;28018:15;27804:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28070:35;28087:11;28100:4;28070:35;;;;;;;:::i;:::-;;;;;;;;27447:666;;:::o;22719:126::-;22811:9;:18;;:26;22830:6;22811:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22719:126;;:::o;28121:513::-;28269:62;28286:4;28301:15;;;;;;;;;;;28319:11;28269:8;:62::i;:::-;28374:15;;;;;;;;;;;:31;;;28413:9;28446:4;28466:11;28492:1;28535;28578:7;:5;:7::i;:::-;28600:15;28374:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28121:513;;:::o;2103:278::-;2189:7;2221:1;2217;:5;2224:12;2209:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2248:9;2264:1;2260;:5;;;;:::i;:::-;2248:17;;2372:1;2365:8;;;2103:278;;;;;:::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;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;648:80;;;;:::o;734:262::-;793:6;842:2;830:9;821:7;817:23;813:32;810:2;;;858:1;855;848:12;810:2;901:1;926:53;971:7;962:6;951:9;947:22;926:53;:::i;:::-;916:63;;872:117;800:196;;;;:::o;1002:284::-;1072:6;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:64;1261:7;1252:6;1241:9;1237:22;1205:64;:::i;:::-;1195:74;;1151:128;1079:207;;;;:::o;1292:407::-;1360:6;1368;1417:2;1405:9;1396:7;1392:23;1388:32;1385:2;;;1433:1;1430;1423:12;1385:2;1476:1;1501:53;1546:7;1537:6;1526:9;1522:22;1501:53;:::i;:::-;1491:63;;1447:117;1603:2;1629:53;1674:7;1665:6;1654:9;1650:22;1629:53;:::i;:::-;1619:63;;1574:118;1375:324;;;;;:::o;1705:552::-;1782:6;1790;1798;1847:2;1835:9;1826:7;1822:23;1818:32;1815:2;;;1863:1;1860;1853:12;1815:2;1906:1;1931:53;1976:7;1967:6;1956:9;1952:22;1931:53;:::i;:::-;1921:63;;1877:117;2033:2;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2004:118;2161:2;2187:53;2232:7;2223:6;2212:9;2208:22;2187:53;:::i;:::-;2177:63;;2132:118;1805:452;;;;;:::o;2263:401::-;2328:6;2336;2385:2;2373:9;2364:7;2360:23;2356:32;2353:2;;;2401:1;2398;2391:12;2353:2;2444:1;2469:53;2514:7;2505:6;2494:9;2490:22;2469:53;:::i;:::-;2459:63;;2415:117;2571:2;2597:50;2639:7;2630:6;2619:9;2615:22;2597:50;:::i;:::-;2587:60;;2542:115;2343:321;;;;;:::o;2670:407::-;2738:6;2746;2795:2;2783:9;2774:7;2770:23;2766:32;2763:2;;;2811:1;2808;2801:12;2763:2;2854:1;2879:53;2924:7;2915:6;2904:9;2900:22;2879:53;:::i;:::-;2869:63;;2825:117;2981:2;3007:53;3052:7;3043:6;3032:9;3028:22;3007:53;:::i;:::-;2997:63;;2952:118;2753:324;;;;;:::o;3083:256::-;3139:6;3188:2;3176:9;3167:7;3163:23;3159:32;3156:2;;;3204:1;3201;3194:12;3156:2;3247:1;3272:50;3314:7;3305:6;3294:9;3290:22;3272:50;:::i;:::-;3262:60;;3218:114;3146:193;;;;:::o;3345:262::-;3404:6;3453:2;3441:9;3432:7;3428:23;3424:32;3421:2;;;3469:1;3466;3459:12;3421:2;3512:1;3537:53;3582:7;3573:6;3562:9;3558:22;3537:53;:::i;:::-;3527:63;;3483:117;3411:196;;;;:::o;3613:552::-;3690:6;3698;3706;3755:2;3743:9;3734:7;3730:23;3726:32;3723:2;;;3771:1;3768;3761:12;3723:2;3814:1;3839:53;3884:7;3875:6;3864:9;3860:22;3839:53;:::i;:::-;3829:63;;3785:117;3941:2;3967:53;4012:7;4003:6;3992:9;3988:22;3967:53;:::i;:::-;3957:63;;3912:118;4069:2;4095:53;4140:7;4131:6;4120:9;4116:22;4095:53;:::i;:::-;4085:63;;4040:118;3713:452;;;;;:::o;4171:596::-;4259:6;4267;4275;4324:2;4312:9;4303:7;4299:23;4295:32;4292:2;;;4340:1;4337;4330:12;4292:2;4383:1;4408:64;4464:7;4455:6;4444:9;4440:22;4408:64;:::i;:::-;4398:74;;4354:128;4521:2;4547:64;4603:7;4594:6;4583:9;4579:22;4547:64;:::i;:::-;4537:74;;4492:129;4660:2;4686:64;4742:7;4733:6;4722:9;4718:22;4686:64;:::i;:::-;4676:74;;4631:129;4282:485;;;;;:::o;4773:179::-;4842:10;4863:46;4905:3;4897:6;4863:46;:::i;:::-;4941:4;4936:3;4932:14;4918:28;;4853:99;;;;:::o;4958:108::-;5035:24;5053:5;5035:24;:::i;:::-;5030:3;5023:37;5013:53;;:::o;5072:118::-;5159:24;5177:5;5159:24;:::i;:::-;5154:3;5147:37;5137:53;;:::o;5226:732::-;5345:3;5374:54;5422:5;5374:54;:::i;:::-;5444:86;5523:6;5518:3;5444:86;:::i;:::-;5437:93;;5554:56;5604:5;5554:56;:::i;:::-;5633:7;5664:1;5649:284;5674:6;5671:1;5668:13;5649:284;;;5750:6;5744:13;5777:63;5836:3;5821:13;5777:63;:::i;:::-;5770:70;;5863:60;5916:6;5863:60;:::i;:::-;5853:70;;5709:224;5696:1;5693;5689:9;5684:14;;5649:284;;;5653:14;5949:3;5942:10;;5350:608;;;;;;;:::o;5964:109::-;6045:21;6060:5;6045:21;:::i;:::-;6040:3;6033:34;6023:50;;:::o;6079:185::-;6193:64;6251:5;6193:64;:::i;:::-;6188:3;6181:77;6171:93;;:::o;6270:147::-;6365:45;6404:5;6365:45;:::i;:::-;6360:3;6353:58;6343:74;;:::o;6423:364::-;6511:3;6539:39;6572:5;6539:39;:::i;:::-;6594:71;6658:6;6653:3;6594:71;:::i;:::-;6587:78;;6674:52;6719:6;6714:3;6707:4;6700:5;6696:16;6674:52;:::i;:::-;6751:29;6773:6;6751:29;:::i;:::-;6746:3;6742:39;6735:46;;6515:272;;;;;:::o;6793:366::-;6935:3;6956:67;7020:2;7015:3;6956:67;:::i;:::-;6949:74;;7032:93;7121:3;7032:93;:::i;:::-;7150:2;7145:3;7141:12;7134:19;;6939:220;;;:::o;7165:366::-;7307:3;7328:67;7392:2;7387:3;7328:67;:::i;:::-;7321:74;;7404:93;7493:3;7404:93;:::i;:::-;7522:2;7517:3;7513:12;7506:19;;7311:220;;;:::o;7537:366::-;7679:3;7700:67;7764:2;7759:3;7700:67;:::i;:::-;7693:74;;7776:93;7865:3;7776:93;:::i;:::-;7894:2;7889:3;7885:12;7878:19;;7683:220;;;:::o;7909:366::-;8051:3;8072:67;8136:2;8131:3;8072:67;:::i;:::-;8065:74;;8148:93;8237:3;8148:93;:::i;:::-;8266:2;8261:3;8257:12;8250:19;;8055:220;;;:::o;8281:366::-;8423:3;8444:67;8508:2;8503:3;8444:67;:::i;:::-;8437:74;;8520:93;8609:3;8520:93;:::i;:::-;8638:2;8633:3;8629:12;8622:19;;8427:220;;;:::o;8653:366::-;8795:3;8816:67;8880:2;8875:3;8816:67;:::i;:::-;8809:74;;8892:93;8981:3;8892:93;:::i;:::-;9010:2;9005:3;9001:12;8994:19;;8799:220;;;:::o;9025:366::-;9167:3;9188:67;9252:2;9247:3;9188:67;:::i;:::-;9181:74;;9264:93;9353:3;9264:93;:::i;:::-;9382:2;9377:3;9373:12;9366:19;;9171:220;;;:::o;9397:366::-;9539:3;9560:67;9624:2;9619:3;9560:67;:::i;:::-;9553:74;;9636:93;9725:3;9636:93;:::i;:::-;9754:2;9749:3;9745:12;9738:19;;9543:220;;;:::o;9769:366::-;9911:3;9932:67;9996:2;9991:3;9932:67;:::i;:::-;9925:74;;10008:93;10097:3;10008:93;:::i;:::-;10126:2;10121:3;10117:12;10110:19;;9915:220;;;:::o;10141:366::-;10283:3;10304:67;10368:2;10363:3;10304:67;:::i;:::-;10297:74;;10380:93;10469:3;10380:93;:::i;:::-;10498:2;10493:3;10489:12;10482:19;;10287:220;;;:::o;10513:118::-;10600:24;10618:5;10600:24;:::i;:::-;10595:3;10588:37;10578:53;;:::o;10637:112::-;10720:22;10736:5;10720:22;:::i;:::-;10715:3;10708:35;10698:51;;:::o;10755:222::-;10848:4;10886:2;10875:9;10871:18;10863:26;;10899:71;10967:1;10956:9;10952:17;10943:6;10899:71;:::i;:::-;10853:124;;;;:::o;10983:332::-;11104:4;11142:2;11131:9;11127:18;11119:26;;11155:71;11223:1;11212:9;11208:17;11199:6;11155:71;:::i;:::-;11236:72;11304:2;11293:9;11289:18;11280:6;11236:72;:::i;:::-;11109:206;;;;;:::o;11321:807::-;11570:4;11608:3;11597:9;11593:19;11585:27;;11622:71;11690:1;11679:9;11675:17;11666:6;11622:71;:::i;:::-;11703:72;11771:2;11760:9;11756:18;11747:6;11703:72;:::i;:::-;11785:80;11861:2;11850:9;11846:18;11837:6;11785:80;:::i;:::-;11875;11951:2;11940:9;11936:18;11927:6;11875:80;:::i;:::-;11965:73;12033:3;12022:9;12018:19;12009:6;11965:73;:::i;:::-;12048;12116:3;12105:9;12101:19;12092:6;12048:73;:::i;:::-;11575:553;;;;;;;;;:::o;12134:210::-;12221:4;12259:2;12248:9;12244:18;12236:26;;12272:65;12334:1;12323:9;12319:17;12310:6;12272:65;:::i;:::-;12226:118;;;;:::o;12350:276::-;12470:4;12508:2;12497:9;12493:18;12485:26;;12521:98;12616:1;12605:9;12601:17;12592:6;12521:98;:::i;:::-;12475:151;;;;:::o;12632:313::-;12745:4;12783:2;12772:9;12768:18;12760:26;;12832:9;12826:4;12822:20;12818:1;12807:9;12803:17;12796:47;12860:78;12933:4;12924:6;12860:78;:::i;:::-;12852:86;;12750:195;;;;:::o;12951:419::-;13117:4;13155:2;13144:9;13140:18;13132:26;;13204:9;13198:4;13194:20;13190:1;13179:9;13175:17;13168:47;13232:131;13358:4;13232:131;:::i;:::-;13224:139;;13122:248;;;:::o;13376:419::-;13542:4;13580:2;13569:9;13565:18;13557:26;;13629:9;13623:4;13619:20;13615:1;13604:9;13600:17;13593:47;13657:131;13783:4;13657:131;:::i;:::-;13649:139;;13547:248;;;:::o;13801:419::-;13967:4;14005:2;13994:9;13990:18;13982:26;;14054:9;14048:4;14044:20;14040:1;14029:9;14025:17;14018:47;14082:131;14208:4;14082:131;:::i;:::-;14074:139;;13972:248;;;:::o;14226:419::-;14392:4;14430:2;14419:9;14415:18;14407:26;;14479:9;14473:4;14469:20;14465:1;14454:9;14450:17;14443:47;14507:131;14633:4;14507:131;:::i;:::-;14499:139;;14397:248;;;:::o;14651:419::-;14817:4;14855:2;14844:9;14840:18;14832:26;;14904:9;14898:4;14894:20;14890:1;14879:9;14875:17;14868:47;14932:131;15058:4;14932:131;:::i;:::-;14924:139;;14822:248;;;:::o;15076:419::-;15242:4;15280:2;15269:9;15265:18;15257:26;;15329:9;15323:4;15319:20;15315:1;15304:9;15300:17;15293:47;15357:131;15483:4;15357:131;:::i;:::-;15349:139;;15247:248;;;:::o;15501:419::-;15667:4;15705:2;15694:9;15690:18;15682:26;;15754:9;15748:4;15744:20;15740:1;15729:9;15725:17;15718:47;15782:131;15908:4;15782:131;:::i;:::-;15774:139;;15672:248;;;:::o;15926:419::-;16092:4;16130:2;16119:9;16115:18;16107:26;;16179:9;16173:4;16169:20;16165:1;16154:9;16150:17;16143:47;16207:131;16333:4;16207:131;:::i;:::-;16199:139;;16097:248;;;:::o;16351:419::-;16517:4;16555:2;16544:9;16540:18;16532:26;;16604:9;16598:4;16594:20;16590:1;16579:9;16575:17;16568:47;16632:131;16758:4;16632:131;:::i;:::-;16624:139;;16522:248;;;:::o;16776:419::-;16942:4;16980:2;16969:9;16965:18;16957:26;;17029:9;17023:4;17019:20;17015:1;17004:9;17000:17;16993:47;17057:131;17183:4;17057:131;:::i;:::-;17049:139;;16947:248;;;:::o;17201:222::-;17294:4;17332:2;17321:9;17317:18;17309:26;;17345:71;17413:1;17402:9;17398:17;17389:6;17345:71;:::i;:::-;17299:124;;;;:::o;17429:483::-;17600:4;17638:2;17627:9;17623:18;17615:26;;17651:71;17719:1;17708:9;17704:17;17695:6;17651:71;:::i;:::-;17769:9;17763:4;17759:20;17754:2;17743:9;17739:18;17732:48;17797:108;17900:4;17891:6;17797:108;:::i;:::-;17789:116;;17605:307;;;;;:::o;17918:831::-;18181:4;18219:3;18208:9;18204:19;18196:27;;18233:71;18301:1;18290:9;18286:17;18277:6;18233:71;:::i;:::-;18314:80;18390:2;18379:9;18375:18;18366:6;18314:80;:::i;:::-;18441:9;18435:4;18431:20;18426:2;18415:9;18411:18;18404:48;18469:108;18572:4;18563:6;18469:108;:::i;:::-;18461:116;;18587:72;18655:2;18644:9;18640:18;18631:6;18587:72;:::i;:::-;18669:73;18737:3;18726:9;18722:19;18713:6;18669:73;:::i;:::-;18186:563;;;;;;;;:::o;18755:214::-;18844:4;18882:2;18871:9;18867:18;18859:26;;18895:67;18959:1;18948:9;18944:17;18935:6;18895:67;:::i;:::-;18849:120;;;;:::o;18975:132::-;19042:4;19065:3;19057:11;;19095:4;19090:3;19086:14;19078:22;;19047:60;;;:::o;19113:114::-;19180:6;19214:5;19208:12;19198:22;;19187:40;;;:::o;19233:99::-;19285:6;19319:5;19313:12;19303:22;;19292:40;;;:::o;19338:113::-;19408:4;19440;19435:3;19431:14;19423:22;;19413:38;;;:::o;19457:184::-;19556:11;19590:6;19585:3;19578:19;19630:4;19625:3;19621:14;19606:29;;19568:73;;;;:::o;19647:169::-;19731:11;19765:6;19760:3;19753:19;19805:4;19800:3;19796:14;19781:29;;19743:73;;;;:::o;19822:305::-;19862:3;19881:20;19899:1;19881:20;:::i;:::-;19876:25;;19915:20;19933:1;19915:20;:::i;:::-;19910:25;;20069:1;20001:66;19997:74;19994:1;19991:81;19988:2;;;20075:18;;:::i;:::-;19988:2;20119:1;20116;20112:9;20105:16;;19866:261;;;;:::o;20133:185::-;20173:1;20190:20;20208:1;20190:20;:::i;:::-;20185:25;;20224:20;20242:1;20224:20;:::i;:::-;20219:25;;20263:1;20253:2;;20268:18;;:::i;:::-;20253:2;20310:1;20307;20303:9;20298:14;;20175:143;;;;:::o;20324:348::-;20364:7;20387:20;20405:1;20387:20;:::i;:::-;20382:25;;20421:20;20439:1;20421:20;:::i;:::-;20416:25;;20609:1;20541:66;20537:74;20534:1;20531:81;20526:1;20519:9;20512:17;20508:105;20505:2;;;20616:18;;:::i;:::-;20505:2;20664:1;20661;20657:9;20646:20;;20372:300;;;;:::o;20678:191::-;20718:4;20738:20;20756:1;20738:20;:::i;:::-;20733:25;;20772:20;20790:1;20772:20;:::i;:::-;20767:25;;20811:1;20808;20805:8;20802:2;;;20816:18;;:::i;:::-;20802:2;20861:1;20858;20854:9;20846:17;;20723:146;;;;:::o;20875:96::-;20912:7;20941:24;20959:5;20941:24;:::i;:::-;20930:35;;20920:51;;;:::o;20977:90::-;21011:7;21054:5;21047:13;21040:21;21029:32;;21019:48;;;:::o;21073:126::-;21110:7;21150:42;21143:5;21139:54;21128:65;;21118:81;;;:::o;21205:77::-;21242:7;21271:5;21260:16;;21250:32;;;:::o;21288:86::-;21323:7;21363:4;21356:5;21352:16;21341:27;;21331:43;;;:::o;21380:180::-;21457:9;21490:64;21548:5;21490:64;:::i;:::-;21477:77;;21467:93;;;:::o;21566:140::-;21643:9;21676:24;21694:5;21676:24;:::i;:::-;21663:37;;21653:53;;;:::o;21712:121::-;21770:9;21803:24;21821:5;21803:24;:::i;:::-;21790:37;;21780:53;;;:::o;21839:307::-;21907:1;21917:113;21931:6;21928:1;21925:13;21917:113;;;22016:1;22011:3;22007:11;22001:18;21997:1;21992:3;21988:11;21981:39;21953:2;21950:1;21946:10;21941:15;;21917:113;;;22048:6;22045:1;22042:13;22039:2;;;22128:1;22119:6;22114:3;22110:16;22103:27;22039:2;21888:258;;;;:::o;22152:320::-;22196:6;22233:1;22227:4;22223:12;22213:22;;22280:1;22274:4;22270:12;22301:18;22291:2;;22357:4;22349:6;22345:17;22335:27;;22291:2;22419;22411:6;22408:14;22388:18;22385:38;22382:2;;;22438:18;;:::i;:::-;22382:2;22203:269;;;;:::o;22478:180::-;22526:77;22523:1;22516:88;22623:4;22620:1;22613:15;22647:4;22644:1;22637:15;22664:180;22712:77;22709:1;22702:88;22809:4;22806:1;22799:15;22833:4;22830:1;22823:15;22850:180;22898:77;22895:1;22888:88;22995:4;22992:1;22985:15;23019:4;23016:1;23009:15;23036:102;23077:6;23128:2;23124:7;23119:2;23112:5;23108:14;23104:28;23094:38;;23084:54;;;:::o;23144:222::-;23284:34;23280:1;23272:6;23268:14;23261:58;23353:5;23348:2;23340:6;23336:15;23329:30;23250:116;:::o;23372:239::-;23512:34;23508:1;23500:6;23496:14;23489:58;23581:22;23576:2;23568:6;23564:15;23557:47;23478:133;:::o;23617:225::-;23757:34;23753:1;23745:6;23741:14;23734:58;23826:8;23821:2;23813:6;23809:15;23802:33;23723:119;:::o;23848:221::-;23988:34;23984:1;23976:6;23972:14;23965:58;24057:4;24052:2;24044:6;24040:15;24033:29;23954:115;:::o;24075:177::-;24215:29;24211:1;24203:6;24199:14;24192:53;24181:71;:::o;24258:227::-;24398:34;24394:1;24386:6;24382:14;24375:58;24467:10;24462:2;24454:6;24450:15;24443:35;24364:121;:::o;24491:220::-;24631:34;24627:1;24619:6;24615:14;24608:58;24700:3;24695:2;24687:6;24683:15;24676:28;24597:114;:::o;24717:182::-;24857:34;24853:1;24845:6;24841:14;24834:58;24823:76;:::o;24905:224::-;25045:34;25041:1;25033:6;25029:14;25022:58;25114:7;25109:2;25101:6;25097:15;25090:32;25011:118;:::o;25135:223::-;25275:34;25271:1;25263:6;25259:14;25252:58;25344:6;25339:2;25331:6;25327:15;25320:31;25241:117;:::o;25364:122::-;25437:24;25455:5;25437:24;:::i;:::-;25430:5;25427:35;25417:2;;25476:1;25473;25466:12;25417:2;25407:79;:::o;25492:116::-;25562:21;25577:5;25562:21;:::i;:::-;25555:5;25552:32;25542:2;;25598:1;25595;25588:12;25542:2;25532:76;:::o;25614:122::-;25687:24;25705:5;25687:24;:::i;:::-;25680:5;25677:35;25667:2;;25726:1;25723;25716:12;25667:2;25657:79;:::o
Swarm Source
ipfs://92545603930b3ac3385abc293665a9f90024fb60cf5fc10555e0c82f031f5dfb
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.