Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000,000 IVAX
Holders
117
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
fsociety
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-23 */ pragma solidity 0.8.4; // SPDX-License-Identifier: Unlicensed interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface UniswapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface UniswapRouter { 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 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; } // Contracts and libraries 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; return c; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(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; } } contract fsociety is Ownable, ERC20 { using SafeMath for uint256; uint8 constant _decimals = 18; uint256 _totalSupply = 10_000_000_000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply; uint256 public _walletMax = _totalSupply; address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD; address ZERO_WALLET = 0x0000000000000000000000000000000000000000; address uniswapAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; string constant _name = "Ivarex Chain"; string constant _symbol = "IVAX"; bool public restrictWhales = true; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; uint256 public liquidityFee = 1; uint256 public marketingFee = 3; uint256 public totalFee = 4; uint256 public totalFeeIfSelling = 4; address public autoLiquidityReceiver; address public marketingWallet; UniswapRouter public router; address public pair; uint256 public launchedAt; bool public tradingOpen = false; bool public blacklistMode = false; mapping(address => bool) public isBlacklisted; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = _totalSupply * 4 / 2000; event AutoLiquify(uint256 amountETH, uint256 amountBOG); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { router = UniswapRouter(uniswapAddress); pair = UniswapFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; _allowances[address(this)][address(pair)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isFeeExempt[DEAD_WALLET] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD_WALLET] = true; autoLiquidityReceiver = 0x87132bEFB878fa1FAD4D1b44b4eb8f6Fbcb8f246; marketingWallet = 0x87132bEFB878fa1FAD4D1b44b4eb8f6Fbcb8f246; totalFee = liquidityFee.add(marketingFee); totalFeeIfSelling = totalFee; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) {return _name;} function symbol() external pure override returns (string memory) {return _symbol;} function decimals() external pure override returns (uint8) {return _decimals;} function totalSupply() external view override returns (uint256) {return _totalSupply;} function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];} function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET)); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } 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 transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);} if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen, "Trading not open yet"); } require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();} if (!launched() && recipient == pair) { require(_balances[sender] > 0, "Zero balance violated!"); launch(); } // Blacklist if (blacklistMode) { require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted"); } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if (!isTxLimitExempt[recipient] && restrictWhales) { require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!"); } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function marketingAndLiquidity() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingWallet).call{value : amountETHMarketing, gas : 30000}(""); tmpSuccess = false; if (amountToLiquify > 0) { router.addLiquidityETH{value : amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } // CONTRACT OWNER FUNCTIONS function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function tradingStatus(bool newStatus) public onlyOwner { tradingOpen = newStatus; } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setFees(uint256 newLiqFee, uint256 newmarketingFee) external onlyOwner { liquidityFee = newLiqFee; marketingFee = newmarketingFee; totalFee = liquidityFee.add(marketingFee); totalFeeIfSelling = totalFee; } function enable_blacklist(bool _status) public onlyOwner { blacklistMode = _status; } function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isBlacklisted[addresses[i]] = status; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newmarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a62000014919062000d6c565b6402540be40062000026919062000ea9565b60025560025460035560025460045561dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760146101000a81548160ff0219169083151502179055506001600c556003600d556004600e556004600f556000601560006101000a81548160ff0219169083151502179055506000601560016101000a81548160ff0219169083151502179055506001601760016101000a81548160ff0219169083151502179055506000601760026101000a81548160ff0219169083151502179055506107d06004600254620001be919062000ea9565b620001ca919062000cd9565b601855348015620001da57600080fd5b506000620001ed62000b0860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003cf57600080fd5b505afa158015620003e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040a919062000b8a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200048e57600080fd5b505afa158015620004a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c9919062000b8a565b306040518363ffffffff1660e01b8152600401620004e992919062000bff565b602060405180830381600087803b1580156200050457600080fd5b505af115801562000519573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053f919062000b8a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507387132befb878fa1fad4d1b44b4eb8f6fbcb8f246601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507387132befb878fa1fad4d1b44b4eb8f6fbcb8f246601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000a43600d54600c5462000b1060201b62001a311790919060201c565b600e81905550600e54600f81905550600254600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000afa919062000c4e565b60405180910390a362001003565b600033905090565b600080828462000b21919062000c7c565b90508381101562000b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b609062000c2c565b60405180910390fd5b8091505092915050565b60008151905062000b848162000fe9565b92915050565b60006020828403121562000b9d57600080fd5b600062000bad8482850162000b73565b91505092915050565b62000bc18162000f0a565b82525050565b600062000bd6601b8362000c6b565b915062000be38262000fc0565b602082019050919050565b62000bf98162000f3e565b82525050565b600060408201905062000c16600083018562000bb6565b62000c25602083018462000bb6565b9392505050565b6000602082019050818103600083015262000c478162000bc7565b9050919050565b600060208201905062000c65600083018462000bee565b92915050565b600082825260208201905092915050565b600062000c898262000f3e565b915062000c968362000f3e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000cce5762000ccd62000f55565b5b828201905092915050565b600062000ce68262000f3e565b915062000cf38362000f3e565b92508262000d065762000d0562000f84565b5b828204905092915050565b6000808291508390505b600185111562000d635780860481111562000d3b5762000d3a62000f55565b5b600185161562000d4b5780820291505b808102905062000d5b8562000fb3565b945062000d1b565b94509492505050565b600062000d798262000f3e565b915062000d868362000f48565b925062000db57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dbd565b905092915050565b60008262000dcf576001905062000ea2565b8162000ddf576000905062000ea2565b816001811462000df8576002811462000e035762000e39565b600191505062000ea2565b60ff84111562000e185762000e1762000f55565b5b8360020a91508482111562000e325762000e3162000f55565b5b5062000ea2565b5060208310610133831016604e8410600b841016171562000e735782820a90508381111562000e6d5762000e6c62000f55565b5b62000ea2565b62000e82848484600162000d11565b9250905081840481111562000e9c5762000e9b62000f55565b5b81810290505b9392505050565b600062000eb68262000f3e565b915062000ec38362000f3e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000eff5762000efe62000f55565b5b828202905092915050565b600062000f178262000f1e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000ff48162000f0a565b81146200100057600080fd5b50565b613b7380620010136000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610915578063f2fde38b1461093e578063f84ba65d14610967578063f887ea4014610990578063fe575a87146109bb578063ffb54a99146109f857610267565b8063bf56b3711461082c578063ca33e64c14610857578063ca987b0e14610882578063da00097d146108ad578063dd62ed3e146108d857610267565b80638da5cb5b116101085780638da5cb5b1461071a5780638e2eee841461074557806395d89b411461076e57806398118cb414610799578063a8aa1b31146107c4578063a9059cbb146107ef57610267565b80637d1db4a514610631578063807c2d9c1461065c578063893d20e814610687578063896648c1146106b25780638b42507f146106dd57610267565b8063313ce567116101dd5780635e562f3b116101a15780635e562f3b14610535578063658d4b7f1461055e5780636b67c4df1461058757806370a08231146105b2578063715018a6146105ef57806375f0a8741461060657610267565b8063313ce5671461043a5780633f4218e01461046557806344de2e4c146104a25780634a74bb02146104cd578063571ac8b0146104f857610267565b806318160ddd1161022457806318160ddd146103515780631df4ccfc1461037c578063220f6696146103a757806323b872dd146103d25780632b112e491461040f57610267565b80630445b6671461026c57806306fdde0314610297578063095ea7b3146102c25780630b78f9c0146102ff5780630d2959801461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610a23565b60405161028e9190613594565b60405180910390f35b3480156102a357600080fd5b506102ac610a29565b6040516102b99190613452565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612fa4565b610a66565b6040516102f6919061341c565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061308a565b610b58565b005b34801561033457600080fd5b5061034f600480360381019061034a9190613038565b610c25565b005b34801561035d57600080fd5b50610366610cd7565b6040516103739190613594565b60405180910390f35b34801561038857600080fd5b50610391610ce1565b60405161039e9190613594565b60405180910390f35b3480156103b357600080fd5b506103bc610ce7565b6040516103c9919061341c565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190612f19565b610cfa565b604051610406919061341c565b60405180910390f35b34801561041b57600080fd5b50610424610efa565b6040516104319190613594565b60405180910390f35b34801561044657600080fd5b5061044f610f7c565b60405161045c9190613632565b60405180910390f35b34801561047157600080fd5b5061048c60048036038101906104879190612e8b565b610f85565b604051610499919061341c565b60405180910390f35b3480156104ae57600080fd5b506104b7610fa5565b6040516104c4919061341c565b60405180910390f35b3480156104d957600080fd5b506104e2610fb8565b6040516104ef919061341c565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190612e8b565b610fcb565b60405161052c919061341c565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190613038565b610ffe565b005b34801561056a57600080fd5b5061058560048036038101906105809190612f68565b6110b0565b005b34801561059357600080fd5b5061059c6111a0565b6040516105a99190613594565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190612e8b565b6111a6565b6040516105e69190613594565b60405180910390f35b3480156105fb57600080fd5b506106046111ef565b005b34801561061257600080fd5b5061061b611342565b60405161062891906133a0565b60405180910390f35b34801561063d57600080fd5b50610646611368565b6040516106539190613594565b60405180910390f35b34801561066857600080fd5b5061067161136e565b60405161067e9190613594565b60405180910390f35b34801561069357600080fd5b5061069c611374565b6040516106a991906133a0565b60405180910390f35b3480156106be57600080fd5b506106c7611383565b6040516106d4919061341c565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190612e8b565b611396565b604051610711919061341c565b60405180910390f35b34801561072657600080fd5b5061072f6113b6565b60405161073c91906133a0565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190612fe0565b6113df565b005b34801561077a57600080fd5b5061078361153d565b6040516107909190613452565b60405180910390f35b3480156107a557600080fd5b506107ae61157a565b6040516107bb9190613594565b60405180910390f35b3480156107d057600080fd5b506107d9611580565b6040516107e691906133a0565b60405180910390f35b3480156107fb57600080fd5b5061081660048036038101906108119190612fa4565b6115a6565b604051610823919061341c565b60405180910390f35b34801561083857600080fd5b506108416115bb565b60405161084e9190613594565b60405180910390f35b34801561086357600080fd5b5061086c6115c1565b60405161087991906133a0565b60405180910390f35b34801561088e57600080fd5b506108976115e7565b6040516108a49190613594565b60405180910390f35b3480156108b957600080fd5b506108c26115ed565b6040516108cf919061341c565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa9190612edd565b611600565b60405161090c9190613594565b60405180910390f35b34801561092157600080fd5b5061093c60048036038101906109379190613061565b611687565b005b34801561094a57600080fd5b5061096560048036038101906109609190612e8b565b611726565b005b34801561097357600080fd5b5061098e60048036038101906109899190612f68565b6118e8565b005b34801561099c57600080fd5b506109a56119d8565b6040516109b29190613437565b60405180910390f35b3480156109c757600080fd5b506109e260048036038101906109dd9190612e8b565b6119fe565b6040516109ef919061341c565b60405180910390f35b348015610a0457600080fd5b50610a0d611a1e565b604051610a1a919061341c565b60405180910390f35b60185481565b60606040518060400160405280600c81526020017f49766172657820436861696e0000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b469190613594565b60405180910390a36001905092915050565b610b60611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be490613534565b60405180910390fd5b81600c8190555080600d81905550610c12600d54600c54611a3190919063ffffffff16565b600e81905550600e54600f819055505050565b610c2d611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190613534565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600254905090565b600e5481565b601760009054906101000a900460ff1681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ee657610e65826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ef1848484611afb565b90509392505050565b6000610f77610f2a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a6565b610f69610f58600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a6565b60025461231290919063ffffffff16565b61231290919063ffffffff16565b905090565b60006012905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600760149054906101000a900460ff1681565b601760019054906101000a900460ff1681565b6000610ff7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a66565b9050919050565b611006611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108a90613534565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b6110b8611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613534565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f7611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60045481565b600061137e6113b6565b905090565b601560019054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113e7611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90613534565b60405180910390fd5b60005b838390508110156115375781601660008686858181106114c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906114d59190612e8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061153090613880565b9050611477565b50505050565b60606040518060400160405280600481526020017f4956415800000000000000000000000000000000000000000000000000000000815250905090565b600c5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115b3338484611afb565b905092915050565b60145481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b601760029054906101000a900460ff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61168f611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390613534565b60405180910390fd5b8060048190555050565b61172e611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b290613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290613494565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f0611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613534565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900460ff1681565b6000808284611a4091906136ad565b905083811015611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c906134b4565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad69190613452565b60405180910390fd5b5060008385611aee919061378e565b9050809150509392505050565b6000601760009054906101000a900460ff1615611b2457611b1d84848461235c565b905061230b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bc85750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c1d57601560009054906101000a900460ff16611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c13906134f4565b60405180910390fd5b5b60035482111580611c775750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90613474565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d215750601760009054906101000a900460ff16155b8015611d395750601760019054906101000a900460ff165b8015611d865750601854600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611d9457611d9361252f565b5b611d9c612af2565b158015611df65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611e86576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e74906134d4565b60405180910390fd5b611e85612aff565b5b601560019054906101000a900460ff1615611f7f57601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f3f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7590613574565b60405180910390fd5b5b612008826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120b15750600760149054906101000a900460ff165b1561214d5760045461210b83600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b111561214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214390613554565b60405180910390fd5b5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121f35750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121fd5782612209565b612208858585612b08565b5b905061225d81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122fd9190613594565b60405180910390a360019150505b9392505050565b600061235483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a97565b905092915050565b60006123e7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061247c82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161251c9190613594565b60405180910390a3600190509392505050565b6001601760006101000a81548160ff0219169083151502179055506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006125cc60026125be600e546125b0600c5487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b612d2b90919063ffffffff16565b905060006125e3828461231290919063ffffffff16565b90506000600267ffffffffffffffff811115612628577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126565781602001602082028036833780820191505090505b5090503081600081518110612694577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561273657600080fd5b505afa15801561274a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276e9190612eb4565b816001815181106127a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128469594939291906135af565b600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b50505050600047905060006128a96128986002600c54612d2b90919063ffffffff16565b600e5461231290919063ffffffff16565b905060006128e760026128d9846128cb600c5488612cb090919063ffffffff16565b612d2b90919063ffffffff16565b612d2b90919063ffffffff16565b9050600061291283612904600d5487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516129609061338b565b600060405180830381858888f193505050503d806000811461299e576040519150601f19603f3d011682016040523d82523d6000602084013e6129a3565b606091505b50509050600090506000881115612acc57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612a3d969594939291906133bb565b6060604051808303818588803b158015612a5657600080fd5b505af1158015612a6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a8f91906130c6565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068389604051612ac3929190613609565b60405180910390a15b5050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000806014541415905090565b43601481905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b6857600e54612b6c565b600f545b90506000612b966064612b888487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b9050612bea81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c8a9190613594565b60405180910390a3612ca5818561231290919063ffffffff16565b925050509392505050565b600080831415612cc35760009050612d25565b60008284612cd19190613734565b9050828482612ce09190613703565b14612d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1790613514565b60405180910390fd5b809150505b92915050565b6000612d6d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d75565b905092915050565b60008083118290612dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db39190613452565b60405180910390fd5b5060008385612dcb9190613703565b9050809150509392505050565b600081359050612de781613af8565b92915050565b600081519050612dfc81613af8565b92915050565b60008083601f840112612e1457600080fd5b8235905067ffffffffffffffff811115612e2d57600080fd5b602083019150836020820283011115612e4557600080fd5b9250929050565b600081359050612e5b81613b0f565b92915050565b600081359050612e7081613b26565b92915050565b600081519050612e8581613b26565b92915050565b600060208284031215612e9d57600080fd5b6000612eab84828501612dd8565b91505092915050565b600060208284031215612ec657600080fd5b6000612ed484828501612ded565b91505092915050565b60008060408385031215612ef057600080fd5b6000612efe85828601612dd8565b9250506020612f0f85828601612dd8565b9150509250929050565b600080600060608486031215612f2e57600080fd5b6000612f3c86828701612dd8565b9350506020612f4d86828701612dd8565b9250506040612f5e86828701612e61565b9150509250925092565b60008060408385031215612f7b57600080fd5b6000612f8985828601612dd8565b9250506020612f9a85828601612e4c565b9150509250929050565b60008060408385031215612fb757600080fd5b6000612fc585828601612dd8565b9250506020612fd685828601612e61565b9150509250929050565b600080600060408486031215612ff557600080fd5b600084013567ffffffffffffffff81111561300f57600080fd5b61301b86828701612e02565b9350935050602061302e86828701612e4c565b9150509250925092565b60006020828403121561304a57600080fd5b600061305884828501612e4c565b91505092915050565b60006020828403121561307357600080fd5b600061308184828501612e61565b91505092915050565b6000806040838503121561309d57600080fd5b60006130ab85828601612e61565b92505060206130bc85828601612e61565b9150509250929050565b6000806000606084860312156130db57600080fd5b60006130e986828701612e76565b93505060206130fa86828701612e76565b925050604061310b86828701612e76565b9150509250925092565b6000613121838361312d565b60208301905092915050565b613136816137c2565b82525050565b613145816137c2565b82525050565b60006131568261365d565b6131608185613680565b935061316b8361364d565b8060005b8381101561319c5781516131838882613115565b975061318e83613673565b92505060018101905061316f565b5085935050505092915050565b6131b2816137d4565b82525050565b6131c181613817565b82525050565b6131d08161383b565b82525050565b60006131e182613668565b6131eb818561369c565b93506131fb81856020860161384d565b61320481613927565b840191505092915050565b600061321c60118361369c565b915061322782613938565b602082019050919050565b600061323f60268361369c565b915061324a82613961565b604082019050919050565b6000613262601b8361369c565b915061326d826139b0565b602082019050919050565b600061328560168361369c565b9150613290826139d9565b602082019050919050565b60006132a860148361369c565b91506132b382613a02565b602082019050919050565b60006132cb60218361369c565b91506132d682613a2b565b604082019050919050565b60006132ee60208361369c565b91506132f982613a7a565b602082019050919050565b6000613311600083613691565b915061331c82613aa3565b600082019050919050565b600061333460148361369c565b915061333f82613aa6565b602082019050919050565b6000613357600b8361369c565b915061336282613acf565b602082019050919050565b61337681613800565b82525050565b6133858161380a565b82525050565b600061339682613304565b9150819050919050565b60006020820190506133b5600083018461313c565b92915050565b600060c0820190506133d0600083018961313c565b6133dd602083018861336d565b6133ea60408301876131c7565b6133f760608301866131c7565b613404608083018561313c565b61341160a083018461336d565b979650505050505050565b600060208201905061343160008301846131a9565b92915050565b600060208201905061344c60008301846131b8565b92915050565b6000602082019050818103600083015261346c81846131d6565b905092915050565b6000602082019050818103600083015261348d8161320f565b9050919050565b600060208201905081810360008301526134ad81613232565b9050919050565b600060208201905081810360008301526134cd81613255565b9050919050565b600060208201905081810360008301526134ed81613278565b9050919050565b6000602082019050818103600083015261350d8161329b565b9050919050565b6000602082019050818103600083015261352d816132be565b9050919050565b6000602082019050818103600083015261354d816132e1565b9050919050565b6000602082019050818103600083015261356d81613327565b9050919050565b6000602082019050818103600083015261358d8161334a565b9050919050565b60006020820190506135a9600083018461336d565b92915050565b600060a0820190506135c4600083018861336d565b6135d160208301876131c7565b81810360408301526135e3818661314b565b90506135f2606083018561313c565b6135ff608083018461336d565b9695505050505050565b600060408201905061361e600083018561336d565b61362b602083018461336d565b9392505050565b6000602082019050613647600083018461337c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006136b882613800565b91506136c383613800565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136f8576136f76138c9565b5b828201905092915050565b600061370e82613800565b915061371983613800565b925082613729576137286138f8565b5b828204905092915050565b600061373f82613800565b915061374a83613800565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613783576137826138c9565b5b828202905092915050565b600061379982613800565b91506137a483613800565b9250828210156137b7576137b66138c9565b5b828203905092915050565b60006137cd826137e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061382282613829565b9050919050565b6000613834826137e0565b9050919050565b600061384682613800565b9050919050565b60005b8381101561386b578082015181840152602081019050613850565b8381111561387a576000848401525b50505050565b600061388b82613800565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138be576138bd6138c9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b613b01816137c2565b8114613b0c57600080fd5b50565b613b18816137d4565b8114613b2357600080fd5b50565b613b2f81613800565b8114613b3a57600080fd5b5056fea2646970667358221220d776e2dbc4a2805d64f5c6dcbe180627fbae025a01474c77539170eb72ed047364736f6c63430008040033
Deployed Bytecode
0x6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610915578063f2fde38b1461093e578063f84ba65d14610967578063f887ea4014610990578063fe575a87146109bb578063ffb54a99146109f857610267565b8063bf56b3711461082c578063ca33e64c14610857578063ca987b0e14610882578063da00097d146108ad578063dd62ed3e146108d857610267565b80638da5cb5b116101085780638da5cb5b1461071a5780638e2eee841461074557806395d89b411461076e57806398118cb414610799578063a8aa1b31146107c4578063a9059cbb146107ef57610267565b80637d1db4a514610631578063807c2d9c1461065c578063893d20e814610687578063896648c1146106b25780638b42507f146106dd57610267565b8063313ce567116101dd5780635e562f3b116101a15780635e562f3b14610535578063658d4b7f1461055e5780636b67c4df1461058757806370a08231146105b2578063715018a6146105ef57806375f0a8741461060657610267565b8063313ce5671461043a5780633f4218e01461046557806344de2e4c146104a25780634a74bb02146104cd578063571ac8b0146104f857610267565b806318160ddd1161022457806318160ddd146103515780631df4ccfc1461037c578063220f6696146103a757806323b872dd146103d25780632b112e491461040f57610267565b80630445b6671461026c57806306fdde0314610297578063095ea7b3146102c25780630b78f9c0146102ff5780630d2959801461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610a23565b60405161028e9190613594565b60405180910390f35b3480156102a357600080fd5b506102ac610a29565b6040516102b99190613452565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612fa4565b610a66565b6040516102f6919061341c565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061308a565b610b58565b005b34801561033457600080fd5b5061034f600480360381019061034a9190613038565b610c25565b005b34801561035d57600080fd5b50610366610cd7565b6040516103739190613594565b60405180910390f35b34801561038857600080fd5b50610391610ce1565b60405161039e9190613594565b60405180910390f35b3480156103b357600080fd5b506103bc610ce7565b6040516103c9919061341c565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190612f19565b610cfa565b604051610406919061341c565b60405180910390f35b34801561041b57600080fd5b50610424610efa565b6040516104319190613594565b60405180910390f35b34801561044657600080fd5b5061044f610f7c565b60405161045c9190613632565b60405180910390f35b34801561047157600080fd5b5061048c60048036038101906104879190612e8b565b610f85565b604051610499919061341c565b60405180910390f35b3480156104ae57600080fd5b506104b7610fa5565b6040516104c4919061341c565b60405180910390f35b3480156104d957600080fd5b506104e2610fb8565b6040516104ef919061341c565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190612e8b565b610fcb565b60405161052c919061341c565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190613038565b610ffe565b005b34801561056a57600080fd5b5061058560048036038101906105809190612f68565b6110b0565b005b34801561059357600080fd5b5061059c6111a0565b6040516105a99190613594565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190612e8b565b6111a6565b6040516105e69190613594565b60405180910390f35b3480156105fb57600080fd5b506106046111ef565b005b34801561061257600080fd5b5061061b611342565b60405161062891906133a0565b60405180910390f35b34801561063d57600080fd5b50610646611368565b6040516106539190613594565b60405180910390f35b34801561066857600080fd5b5061067161136e565b60405161067e9190613594565b60405180910390f35b34801561069357600080fd5b5061069c611374565b6040516106a991906133a0565b60405180910390f35b3480156106be57600080fd5b506106c7611383565b6040516106d4919061341c565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190612e8b565b611396565b604051610711919061341c565b60405180910390f35b34801561072657600080fd5b5061072f6113b6565b60405161073c91906133a0565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190612fe0565b6113df565b005b34801561077a57600080fd5b5061078361153d565b6040516107909190613452565b60405180910390f35b3480156107a557600080fd5b506107ae61157a565b6040516107bb9190613594565b60405180910390f35b3480156107d057600080fd5b506107d9611580565b6040516107e691906133a0565b60405180910390f35b3480156107fb57600080fd5b5061081660048036038101906108119190612fa4565b6115a6565b604051610823919061341c565b60405180910390f35b34801561083857600080fd5b506108416115bb565b60405161084e9190613594565b60405180910390f35b34801561086357600080fd5b5061086c6115c1565b60405161087991906133a0565b60405180910390f35b34801561088e57600080fd5b506108976115e7565b6040516108a49190613594565b60405180910390f35b3480156108b957600080fd5b506108c26115ed565b6040516108cf919061341c565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa9190612edd565b611600565b60405161090c9190613594565b60405180910390f35b34801561092157600080fd5b5061093c60048036038101906109379190613061565b611687565b005b34801561094a57600080fd5b5061096560048036038101906109609190612e8b565b611726565b005b34801561097357600080fd5b5061098e60048036038101906109899190612f68565b6118e8565b005b34801561099c57600080fd5b506109a56119d8565b6040516109b29190613437565b60405180910390f35b3480156109c757600080fd5b506109e260048036038101906109dd9190612e8b565b6119fe565b6040516109ef919061341c565b60405180910390f35b348015610a0457600080fd5b50610a0d611a1e565b604051610a1a919061341c565b60405180910390f35b60185481565b60606040518060400160405280600c81526020017f49766172657820436861696e0000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b469190613594565b60405180910390a36001905092915050565b610b60611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be490613534565b60405180910390fd5b81600c8190555080600d81905550610c12600d54600c54611a3190919063ffffffff16565b600e81905550600e54600f819055505050565b610c2d611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190613534565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600254905090565b600e5481565b601760009054906101000a900460ff1681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ee657610e65826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ef1848484611afb565b90509392505050565b6000610f77610f2a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a6565b610f69610f58600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a6565b60025461231290919063ffffffff16565b61231290919063ffffffff16565b905090565b60006012905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600760149054906101000a900460ff1681565b601760019054906101000a900460ff1681565b6000610ff7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a66565b9050919050565b611006611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108a90613534565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b6110b8611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613534565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f7611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60045481565b600061137e6113b6565b905090565b601560019054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113e7611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90613534565b60405180910390fd5b60005b838390508110156115375781601660008686858181106114c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906114d59190612e8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061153090613880565b9050611477565b50505050565b60606040518060400160405280600481526020017f4956415800000000000000000000000000000000000000000000000000000000815250905090565b600c5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115b3338484611afb565b905092915050565b60145481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b601760029054906101000a900460ff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61168f611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390613534565b60405180910390fd5b8060048190555050565b61172e611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b290613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290613494565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f0611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613534565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900460ff1681565b6000808284611a4091906136ad565b905083811015611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c906134b4565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad69190613452565b60405180910390fd5b5060008385611aee919061378e565b9050809150509392505050565b6000601760009054906101000a900460ff1615611b2457611b1d84848461235c565b905061230b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bc85750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c1d57601560009054906101000a900460ff16611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c13906134f4565b60405180910390fd5b5b60035482111580611c775750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90613474565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d215750601760009054906101000a900460ff16155b8015611d395750601760019054906101000a900460ff165b8015611d865750601854600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611d9457611d9361252f565b5b611d9c612af2565b158015611df65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611e86576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e74906134d4565b60405180910390fd5b611e85612aff565b5b601560019054906101000a900460ff1615611f7f57601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f3f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7590613574565b60405180910390fd5b5b612008826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120b15750600760149054906101000a900460ff165b1561214d5760045461210b83600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b111561214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214390613554565b60405180910390fd5b5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121f35750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121fd5782612209565b612208858585612b08565b5b905061225d81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122fd9190613594565b60405180910390a360019150505b9392505050565b600061235483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a97565b905092915050565b60006123e7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061247c82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161251c9190613594565b60405180910390a3600190509392505050565b6001601760006101000a81548160ff0219169083151502179055506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006125cc60026125be600e546125b0600c5487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b612d2b90919063ffffffff16565b905060006125e3828461231290919063ffffffff16565b90506000600267ffffffffffffffff811115612628577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126565781602001602082028036833780820191505090505b5090503081600081518110612694577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561273657600080fd5b505afa15801561274a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276e9190612eb4565b816001815181106127a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128469594939291906135af565b600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b50505050600047905060006128a96128986002600c54612d2b90919063ffffffff16565b600e5461231290919063ffffffff16565b905060006128e760026128d9846128cb600c5488612cb090919063ffffffff16565b612d2b90919063ffffffff16565b612d2b90919063ffffffff16565b9050600061291283612904600d5487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516129609061338b565b600060405180830381858888f193505050503d806000811461299e576040519150601f19603f3d011682016040523d82523d6000602084013e6129a3565b606091505b50509050600090506000881115612acc57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612a3d969594939291906133bb565b6060604051808303818588803b158015612a5657600080fd5b505af1158015612a6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a8f91906130c6565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068389604051612ac3929190613609565b60405180910390a15b5050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000806014541415905090565b43601481905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b6857600e54612b6c565b600f545b90506000612b966064612b888487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b9050612bea81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c8a9190613594565b60405180910390a3612ca5818561231290919063ffffffff16565b925050509392505050565b600080831415612cc35760009050612d25565b60008284612cd19190613734565b9050828482612ce09190613703565b14612d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1790613514565b60405180910390fd5b809150505b92915050565b6000612d6d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d75565b905092915050565b60008083118290612dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db39190613452565b60405180910390fd5b5060008385612dcb9190613703565b9050809150509392505050565b600081359050612de781613af8565b92915050565b600081519050612dfc81613af8565b92915050565b60008083601f840112612e1457600080fd5b8235905067ffffffffffffffff811115612e2d57600080fd5b602083019150836020820283011115612e4557600080fd5b9250929050565b600081359050612e5b81613b0f565b92915050565b600081359050612e7081613b26565b92915050565b600081519050612e8581613b26565b92915050565b600060208284031215612e9d57600080fd5b6000612eab84828501612dd8565b91505092915050565b600060208284031215612ec657600080fd5b6000612ed484828501612ded565b91505092915050565b60008060408385031215612ef057600080fd5b6000612efe85828601612dd8565b9250506020612f0f85828601612dd8565b9150509250929050565b600080600060608486031215612f2e57600080fd5b6000612f3c86828701612dd8565b9350506020612f4d86828701612dd8565b9250506040612f5e86828701612e61565b9150509250925092565b60008060408385031215612f7b57600080fd5b6000612f8985828601612dd8565b9250506020612f9a85828601612e4c565b9150509250929050565b60008060408385031215612fb757600080fd5b6000612fc585828601612dd8565b9250506020612fd685828601612e61565b9150509250929050565b600080600060408486031215612ff557600080fd5b600084013567ffffffffffffffff81111561300f57600080fd5b61301b86828701612e02565b9350935050602061302e86828701612e4c565b9150509250925092565b60006020828403121561304a57600080fd5b600061305884828501612e4c565b91505092915050565b60006020828403121561307357600080fd5b600061308184828501612e61565b91505092915050565b6000806040838503121561309d57600080fd5b60006130ab85828601612e61565b92505060206130bc85828601612e61565b9150509250929050565b6000806000606084860312156130db57600080fd5b60006130e986828701612e76565b93505060206130fa86828701612e76565b925050604061310b86828701612e76565b9150509250925092565b6000613121838361312d565b60208301905092915050565b613136816137c2565b82525050565b613145816137c2565b82525050565b60006131568261365d565b6131608185613680565b935061316b8361364d565b8060005b8381101561319c5781516131838882613115565b975061318e83613673565b92505060018101905061316f565b5085935050505092915050565b6131b2816137d4565b82525050565b6131c181613817565b82525050565b6131d08161383b565b82525050565b60006131e182613668565b6131eb818561369c565b93506131fb81856020860161384d565b61320481613927565b840191505092915050565b600061321c60118361369c565b915061322782613938565b602082019050919050565b600061323f60268361369c565b915061324a82613961565b604082019050919050565b6000613262601b8361369c565b915061326d826139b0565b602082019050919050565b600061328560168361369c565b9150613290826139d9565b602082019050919050565b60006132a860148361369c565b91506132b382613a02565b602082019050919050565b60006132cb60218361369c565b91506132d682613a2b565b604082019050919050565b60006132ee60208361369c565b91506132f982613a7a565b602082019050919050565b6000613311600083613691565b915061331c82613aa3565b600082019050919050565b600061333460148361369c565b915061333f82613aa6565b602082019050919050565b6000613357600b8361369c565b915061336282613acf565b602082019050919050565b61337681613800565b82525050565b6133858161380a565b82525050565b600061339682613304565b9150819050919050565b60006020820190506133b5600083018461313c565b92915050565b600060c0820190506133d0600083018961313c565b6133dd602083018861336d565b6133ea60408301876131c7565b6133f760608301866131c7565b613404608083018561313c565b61341160a083018461336d565b979650505050505050565b600060208201905061343160008301846131a9565b92915050565b600060208201905061344c60008301846131b8565b92915050565b6000602082019050818103600083015261346c81846131d6565b905092915050565b6000602082019050818103600083015261348d8161320f565b9050919050565b600060208201905081810360008301526134ad81613232565b9050919050565b600060208201905081810360008301526134cd81613255565b9050919050565b600060208201905081810360008301526134ed81613278565b9050919050565b6000602082019050818103600083015261350d8161329b565b9050919050565b6000602082019050818103600083015261352d816132be565b9050919050565b6000602082019050818103600083015261354d816132e1565b9050919050565b6000602082019050818103600083015261356d81613327565b9050919050565b6000602082019050818103600083015261358d8161334a565b9050919050565b60006020820190506135a9600083018461336d565b92915050565b600060a0820190506135c4600083018861336d565b6135d160208301876131c7565b81810360408301526135e3818661314b565b90506135f2606083018561313c565b6135ff608083018461336d565b9695505050505050565b600060408201905061361e600083018561336d565b61362b602083018461336d565b9392505050565b6000602082019050613647600083018461337c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006136b882613800565b91506136c383613800565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136f8576136f76138c9565b5b828201905092915050565b600061370e82613800565b915061371983613800565b925082613729576137286138f8565b5b828204905092915050565b600061373f82613800565b915061374a83613800565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613783576137826138c9565b5b828202905092915050565b600061379982613800565b91506137a483613800565b9250828210156137b7576137b66138c9565b5b828203905092915050565b60006137cd826137e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061382282613829565b9050919050565b6000613834826137e0565b9050919050565b600061384682613800565b9050919050565b60005b8381101561386b578082015181840152602081019050613850565b8381111561387a576000848401525b50505050565b600061388b82613800565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138be576138bd6138c9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b613b01816137c2565b8114613b0c57600080fd5b50565b613b18816137d4565b8114613b2357600080fd5b50565b613b2f81613800565b8114613b3a57600080fd5b5056fea2646970667358221220d776e2dbc4a2805d64f5c6dcbe180627fbae025a01474c77539170eb72ed047364736f6c63430008040033
Deployed Bytecode Sourcemap
4951:9530:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6396:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7609:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8465:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13884:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13516:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7871:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5873:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6260:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9672:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8301:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7785:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5689:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5535:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6295:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8689:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14153:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13622:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5833:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8051:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4544:148;;;;;;;;;;;;;:::i;:::-;;5995:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5131:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5180:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7965:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6166:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5739:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4330:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14266:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7695:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5795:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6068:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9170:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5952:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5907;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6342:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8162:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13407:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4700:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13749:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6034:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6206:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6128:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6396:54;;;;:::o;7609:78::-;7657:13;7680:5;;;;;;;;;;;;;;;;;7673:12;;7609:78;:::o;8465:216::-;8540:4;8592:6;8557:11;:23;8569:10;8557:23;;;;;;;;;;;;;;;:32;8581:7;8557:32;;;;;;;;;;;;;;;:41;;;;8635:7;8614:37;;8623:10;8614:37;;;8644:6;8614:37;;;;;;:::i;:::-;;;;;;;;8669:4;8662:11;;8465:216;;;;:::o;13884:257::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13990:9:::1;13975:12;:24;;;;14025:15;14010:12;:30;;;;14064;14081:12;;14064;;:16;;:30;;;;:::i;:::-;14053:8;:41;;;;14125:8;;14105:17;:28;;;;13884:257:::0;;:::o;13516:98::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13597:9:::1;13583:11;;:23;;;;;;;;;;;;;;;;;;13516:98:::0;:::o;7871:86::-;7926:7;7943:12;;7936:19;;7871:86;:::o;5873:27::-;;;;:::o;6260:28::-;;;;;;;;;;;;;:::o;9672:370::-;9772:4;9828:17;9793:11;:19;9805:6;9793:19;;;;;;;;;;;;;;;:31;9813:10;9793:31;;;;;;;;;;;;;;;;:52;9789:188;;9896:69;9932:6;9896:69;;;;;;;;;;;;;;;;;:11;:19;9908:6;9896:19;;;;;;;;;;;;;;;:31;9916:10;9896:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9862:11;:19;9874:6;9862:19;;;;;;;;;;;;;;;:31;9882:10;9862:31;;;;;;;;;;;;;;;:103;;;;9789:188;9994:40;10008:6;10016:9;10027:6;9994:13;:40::i;:::-;9987:47;;9672:370;;;;;:::o;8301:156::-;8354:7;8381:68;8426:22;8436:11;;;;;;;;;;;8426:9;:22::i;:::-;8381:40;8398:22;8408:11;;;;;;;;;;;8398:9;:22::i;:::-;8381:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;8374:75;;8301:156;:::o;7785:78::-;7837:5;5056:2;7845:16;;7785:78;:::o;5689:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5535:33::-;;;;;;;;;;;;;:::o;6295:40::-;;;;;;;;;;;;;:::o;8689:122::-;8744:4;8768:35;8776:7;8785:17;8768:7;:35::i;:::-;8761:42;;8689:122;;;:::o;14153:95::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14233:7:::1;14217:13;;:23;;;;;;;;;;;;;;;;;;14153:95:::0;:::o;13622:119::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13727:6:::1;13705:11;:19;13717:6;13705:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13622:119:::0;;:::o;5833:31::-;;;;:::o;8051:103::-;8117:7;8134:9;:18;8144:7;8134:18;;;;;;;;;;;;;;;;8127:25;;8051:103;;;:::o;4544:148::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4651:1:::1;4614:40;;4635:6;::::0;::::1;;;;;;;;4614:40;;;;;;;;;;;;4682:1;4665:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4544:148::o:0;5995:30::-;;;;;;;;;;;;;:::o;5131:42::-;;;;:::o;5180:40::-;;;;:::o;7965:78::-;8017:7;8034;:5;:7::i;:::-;8027:14;;7965:78;:::o;6166:33::-;;;;;;;;;;;;;:::o;5739:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4330:79::-;4368:7;4395:6;;;;;;;;;;;4388:13;;4330:79;:::o;14266:210::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14368:9:::1;14363:106;14383:9;;:16;;14379:1;:20;14363:106;;;14451:6;14421:13;:27;14435:9;;14445:1;14435:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14421:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;14401:3;;;;:::i;:::-;;;14363:106;;;;14266:210:::0;;;:::o;7695:82::-;7745:13;7768:7;;;;;;;;;;;;;;;;;7761:14;;7695:82;:::o;5795:31::-;;;;:::o;6068:19::-;;;;;;;;;;;;;:::o;9170:156::-;9250:4;9274:44;9288:10;9300:9;9311:6;9274:13;:44::i;:::-;9267:51;;9170:156;;;;:::o;6096:25::-;;;;:::o;5952:36::-;;;;;;;;;;;;;:::o;5907:::-;;;;:::o;6342:45::-;;;;;;;;;;;;;:::o;8162:131::-;8246:7;8263:11;:19;8275:6;8263:19;;;;;;;;;;;;;;;:28;8283:7;8263:28;;;;;;;;;;;;;;;;8256:35;;8162:131;;;;:::o;13407:101::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13492:8:::1;13479:10;:21;;;;13407:101:::0;:::o;4700:244::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4809:1:::1;4789:22;;:8;:22;;;;4781:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4899:8;4870:38;;4891:6;::::0;::::1;;;;;;;;4870:38;;;;;;;;;;;;4928:8;4919:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4700:244:::0;:::o;13749:127::-;4467:12;:10;:12::i;:::-;4457:22;;:6;;;;;;;;;;:22;;;4449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13862:6:::1;13836:15;:23;13852:6;13836:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13749:127:::0;;:::o;6034:27::-;;;;;;;;;;;;;:::o;6206:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6128:31::-;;;;;;;;;;;;;:::o;2542:179::-;2600:7;2620:9;2636:1;2632;:5;;;;:::i;:::-;2620:17;;2661:1;2656;:6;;2648:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2712:1;2705:8;;;2542:179;;;;:::o;3670:115::-;3723:15;3766:10;3751:26;;3670:115;:::o;2873:190::-;2959:7;2992:1;2987;:6;;2995:12;2979:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3019:9;3035:1;3031;:5;;;;:::i;:::-;3019:17;;3054:1;3047:8;;;2873:190;;;;;:::o;10050:1447::-;10142:4;10163:16;;;;;;;;;;;10159:73;;;10189:41;10204:6;10212:9;10223:6;10189:14;:41::i;:::-;10182:48;;;;10159:73;10246:14;:22;10261:6;10246:22;;;;;;;;;;;;;;;;;;;;;;;;;10245:23;:53;;;;;10273:14;:25;10288:9;10273:25;;;;;;;;;;;;;;;;;;;;;;;;;10272:26;10245:53;10242:128;;;10322:11;;;;;;;;;;;10314:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;10242:128;10400:12;;10390:6;:22;;:49;;;;10416:15;:23;10432:6;10416:23;;;;;;;;;;;;;;;;;;;;;;;;;10390:49;10382:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10490:4;;;;;;;;;;;10476:18;;:10;:18;;;;:39;;;;;10499:16;;;;;;;;;;;10498:17;10476:39;:64;;;;;10519:21;;;;;;;;;;;10476:64;:109;;;;;10572:13;;10544:9;:24;10562:4;10544:24;;;;;;;;;;;;;;;;:41;;10476:109;10472:141;;;10588:23;:21;:23::i;:::-;10472:141;10628:10;:8;:10::i;:::-;10627:11;:32;;;;;10655:4;;;;;;;;;;;10642:17;;:9;:17;;;10627:32;10623:144;;;10704:1;10684:9;:17;10694:6;10684:17;;;;;;;;;;;;;;;;:21;10676:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10747:8;:6;:8::i;:::-;10623:144;10809:13;;;;;;;;;;;10805:120;;;10848:13;:21;10862:6;10848:21;;;;;;;;;;;;;;;;;;;;;;;;;10847:22;:51;;;;;10874:13;:24;10888:9;10874:24;;;;;;;;;;;;;;;;;;;;;;;;;10873:25;10847:51;10839:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10805:120;10985:53;11007:6;10985:53;;;;;;;;;;;;;;;;;:9;:17;10995:6;10985:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10965:9;:17;10975:6;10965:17;;;;;;;;;;;;;;;:73;;;;11056:15;:26;11072:9;11056:26;;;;;;;;;;;;;;;;;;;;;;;;;11055:27;:45;;;;;11086:14;;;;;;;;;;;11055:45;11051:157;;;11161:10;;11125:32;11150:6;11125:9;:20;11135:9;11125:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;11117:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11051:157;11220:19;11243:11;:19;11255:6;11243:19;;;;;;;;;;;;;;;;;;;;;;;;;11242:20;:47;;;;;11267:11;:22;11279:9;11267:22;;;;;;;;;;;;;;;;;;;;;;;;;11266:23;11242:47;:96;;11332:6;11242:96;;;11292:37;11303:6;11311:9;11322:6;11292:10;:37::i;:::-;11242:96;11220:118;;11372:37;11397:11;11372:9;:20;11382:9;11372:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;11349:9;:20;11359:9;11349:20;;;;;;;;;;;;;;;:60;;;;11444:9;11427:40;;11436:6;11427:40;;;11455:11;11427:40;;;;;;:::i;:::-;;;;;;;;11485:4;11478:11;;;10050:1447;;;;;;:::o;2729:136::-;2787:7;2814:43;2818:1;2821;2814:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2807:50;;2729:136;;;;:::o;9334:330::-;9427:4;9464:53;9486:6;9464:53;;;;;;;;;;;;;;;;;:9;:17;9474:6;9464:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9444:9;:17;9454:6;9444:17;;;;;;;;;;;;;;;:73;;;;9551:32;9576:6;9551:9;:20;9561:9;9551:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9528:9;:20;9538:9;9528:20;;;;;;;;;;;;;;;:55;;;;9616:9;9599:35;;9608:6;9599:35;;;9627:6;9599:35;;;;;;:::i;:::-;;;;;;;;9652:4;9645:11;;9334:330;;;;;:::o;11945:1419::-;6574:4;6555:16;;:23;;;;;;;;;;;;;;;;;;12010::::1;12036:9;:24;12054:4;12036:24;;;;;;;;;;;;;;;;12010:50;;12071:23;12097:54;12149:1;12097:47;12135:8;;12097:33;12117:12;;12097:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;12071:80;;12162:20;12185:36;12205:15;12185;:19;;:36;;;;:::i;:::-;12162:59;;12234:21;12272:1;12258:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12234:40;;12303:4;12285;12290:1;12285:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12329:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12319:4;12324:1;12319:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12355:6;;;;;;;;;;;:57;;;12427:12;12454:1;12470:4;12497;12517:15;12355:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12556:17;12576:21;12556:41;;12610:19;12632:33;12645:19;12662:1;12645:12;;:16;;:19;;;;:::i;:::-;12632:8;;:12;;:33;;;;:::i;:::-;12610:55;;12678:26;12707:51;12756:1;12707:44;12739:11;12707:27;12721:12;;12707:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12678:80;;12769:26;12798:44;12830:11;12798:27;12812:12;;12798:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;12769:73;;12856:15;12884;;;;;;;;;;;12876:29;;12914:18;12940:5;12876:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12855:95;;;12974:5;12961:18;;13014:1;12996:15;:19;12992:365;;;13032:6;;;;;;;;;;;:22;;;13063:18;13109:4;13133:15;13167:1;13187::::0;13207:21:::1;;;;;;;;;;;13247:15;13032:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13297:48;13309:18;13329:15;13297:48;;;;;;;:::i;:::-;;;;;;;;12992:365;6589:1;;;;;;;;;6620:5:::0;6601:16;;:24;;;;;;;;;;;;;;;;;;11945:1419::o;8819:90::-;8862:4;8900:1;8886:10;;:15;;8879:22;;8819:90;:::o;8917:71::-;8968:12;8955:10;:25;;;;8917:71::o;11505:432::-;11594:7;11614:21;11646:9;11638:17;;:4;;;;;;;;;;;:17;;;:48;;11678:8;;11638:48;;;11658:17;;11638:48;11614:72;;11697:17;11717:34;11747:3;11717:25;11728:13;11717:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;11697:54;;11791:39;11820:9;11791;:24;11809:4;11791:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11764:9;:24;11782:4;11764:24;;;;;;;;;;;;;;;:66;;;;11871:4;11846:42;;11855:6;11846:42;;;11878:9;11846:42;;;;;;:::i;:::-;;;;;;;;11908:21;11919:9;11908:6;:10;;:21;;;;:::i;:::-;11901:28;;;;11505:432;;;;;:::o;3071:222::-;3129:7;3158:1;3153;:6;3149:23;;;3169:1;3162:8;;;;3149:23;3182:9;3198:1;3194;:5;;;;:::i;:::-;3182:17;;3227:1;3222;3218;:5;;;;:::i;:::-;:10;3210:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3284:1;3277:8;;;3071:222;;;;;:::o;3301:132::-;3359:7;3386:39;3390:1;3393;3386:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3379:46;;3301:132;;;;:::o;3441:189::-;3527:7;3559:1;3555;:5;3562:12;3547:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3586:9;3602:1;3598;:5;;;;:::i;:::-;3586:17;;3621:1;3614:8;;;3441:189;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:367::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;469:1;466;459:12;418:2;505:6;492:20;482:30;;535:18;527:6;524:30;521:2;;;567:1;564;557:12;521:2;604:4;596:6;592:17;580:29;;658:3;650:4;642:6;638:17;628:8;624:32;621:41;618:2;;;675:1;672;665:12;618:2;408:277;;;;;:::o;691:133::-;734:5;772:6;759:20;750:29;;788:30;812:5;788:30;:::i;:::-;740:84;;;;:::o;830:139::-;876:5;914:6;901:20;892:29;;930:33;957:5;930:33;:::i;:::-;882:87;;;;:::o;975:143::-;1032:5;1063:6;1057:13;1048:22;;1079:33;1106:5;1079:33;:::i;:::-;1038:80;;;;:::o;1124:262::-;1183:6;1232:2;1220:9;1211:7;1207:23;1203:32;1200:2;;;1248:1;1245;1238:12;1200:2;1291:1;1316:53;1361:7;1352:6;1341:9;1337:22;1316:53;:::i;:::-;1306:63;;1262:117;1190:196;;;;:::o;1392:284::-;1462:6;1511:2;1499:9;1490:7;1486:23;1482:32;1479:2;;;1527:1;1524;1517:12;1479:2;1570:1;1595:64;1651:7;1642:6;1631:9;1627:22;1595:64;:::i;:::-;1585:74;;1541:128;1469:207;;;;:::o;1682:407::-;1750:6;1758;1807:2;1795:9;1786:7;1782:23;1778:32;1775:2;;;1823:1;1820;1813:12;1775:2;1866:1;1891:53;1936:7;1927:6;1916:9;1912:22;1891:53;:::i;:::-;1881:63;;1837:117;1993:2;2019:53;2064:7;2055:6;2044:9;2040:22;2019:53;:::i;:::-;2009:63;;1964:118;1765:324;;;;;:::o;2095:552::-;2172:6;2180;2188;2237:2;2225:9;2216:7;2212:23;2208:32;2205:2;;;2253:1;2250;2243:12;2205:2;2296:1;2321:53;2366:7;2357:6;2346:9;2342:22;2321:53;:::i;:::-;2311:63;;2267:117;2423:2;2449:53;2494:7;2485:6;2474:9;2470:22;2449:53;:::i;:::-;2439:63;;2394:118;2551:2;2577:53;2622:7;2613:6;2602:9;2598:22;2577:53;:::i;:::-;2567:63;;2522:118;2195:452;;;;;:::o;2653:401::-;2718:6;2726;2775:2;2763:9;2754:7;2750:23;2746:32;2743:2;;;2791:1;2788;2781:12;2743:2;2834:1;2859:53;2904:7;2895:6;2884:9;2880:22;2859:53;:::i;:::-;2849:63;;2805:117;2961:2;2987:50;3029:7;3020:6;3009:9;3005:22;2987:50;:::i;:::-;2977:60;;2932:115;2733:321;;;;;:::o;3060:407::-;3128:6;3136;3185:2;3173:9;3164:7;3160:23;3156:32;3153:2;;;3201:1;3198;3191:12;3153:2;3244:1;3269:53;3314:7;3305:6;3294:9;3290:22;3269:53;:::i;:::-;3259:63;;3215:117;3371:2;3397:53;3442:7;3433:6;3422:9;3418:22;3397:53;:::i;:::-;3387:63;;3342:118;3143:324;;;;;:::o;3473:564::-;3565:6;3573;3581;3630:2;3618:9;3609:7;3605:23;3601:32;3598:2;;;3646:1;3643;3636:12;3598:2;3717:1;3706:9;3702:17;3689:31;3747:18;3739:6;3736:30;3733:2;;;3779:1;3776;3769:12;3733:2;3815:80;3887:7;3878:6;3867:9;3863:22;3815:80;:::i;:::-;3797:98;;;;3660:245;3944:2;3970:50;4012:7;4003:6;3992:9;3988:22;3970:50;:::i;:::-;3960:60;;3915:115;3588:449;;;;;:::o;4043:256::-;4099:6;4148:2;4136:9;4127:7;4123:23;4119:32;4116:2;;;4164:1;4161;4154:12;4116:2;4207:1;4232:50;4274:7;4265:6;4254:9;4250:22;4232:50;:::i;:::-;4222:60;;4178:114;4106:193;;;;:::o;4305:262::-;4364:6;4413:2;4401:9;4392:7;4388:23;4384:32;4381:2;;;4429:1;4426;4419:12;4381:2;4472:1;4497:53;4542:7;4533:6;4522:9;4518:22;4497:53;:::i;:::-;4487:63;;4443:117;4371:196;;;;:::o;4573:407::-;4641:6;4649;4698:2;4686:9;4677:7;4673:23;4669:32;4666:2;;;4714:1;4711;4704:12;4666:2;4757:1;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4728:117;4884:2;4910:53;4955:7;4946:6;4935:9;4931:22;4910:53;:::i;:::-;4900:63;;4855:118;4656:324;;;;;:::o;4986:596::-;5074:6;5082;5090;5139:2;5127:9;5118:7;5114:23;5110:32;5107:2;;;5155:1;5152;5145:12;5107:2;5198:1;5223:64;5279:7;5270:6;5259:9;5255:22;5223:64;:::i;:::-;5213:74;;5169:128;5336:2;5362:64;5418:7;5409:6;5398:9;5394:22;5362:64;:::i;:::-;5352:74;;5307:129;5475:2;5501:64;5557:7;5548:6;5537:9;5533:22;5501:64;:::i;:::-;5491:74;;5446:129;5097:485;;;;;:::o;5588:179::-;5657:10;5678:46;5720:3;5712:6;5678:46;:::i;:::-;5756:4;5751:3;5747:14;5733:28;;5668:99;;;;:::o;5773:108::-;5850:24;5868:5;5850:24;:::i;:::-;5845:3;5838:37;5828:53;;:::o;5887:118::-;5974:24;5992:5;5974:24;:::i;:::-;5969:3;5962:37;5952:53;;:::o;6041:732::-;6160:3;6189:54;6237:5;6189:54;:::i;:::-;6259:86;6338:6;6333:3;6259:86;:::i;:::-;6252:93;;6369:56;6419:5;6369:56;:::i;:::-;6448:7;6479:1;6464:284;6489:6;6486:1;6483:13;6464:284;;;6565:6;6559:13;6592:63;6651:3;6636:13;6592:63;:::i;:::-;6585:70;;6678:60;6731:6;6678:60;:::i;:::-;6668:70;;6524:224;6511:1;6508;6504:9;6499:14;;6464:284;;;6468:14;6764:3;6757:10;;6165:608;;;;;;;:::o;6779:109::-;6860:21;6875:5;6860:21;:::i;:::-;6855:3;6848:34;6838:50;;:::o;6894:173::-;7002:58;7054:5;7002:58;:::i;:::-;6997:3;6990:71;6980:87;;:::o;7073:147::-;7168:45;7207:5;7168:45;:::i;:::-;7163:3;7156:58;7146:74;;:::o;7226:364::-;7314:3;7342:39;7375:5;7342:39;:::i;:::-;7397:71;7461:6;7456:3;7397:71;:::i;:::-;7390:78;;7477:52;7522:6;7517:3;7510:4;7503:5;7499:16;7477:52;:::i;:::-;7554:29;7576:6;7554:29;:::i;:::-;7549:3;7545:39;7538:46;;7318:272;;;;;:::o;7596:366::-;7738:3;7759:67;7823:2;7818:3;7759:67;:::i;:::-;7752:74;;7835:93;7924:3;7835:93;:::i;:::-;7953:2;7948:3;7944:12;7937:19;;7742:220;;;:::o;7968:366::-;8110:3;8131:67;8195:2;8190:3;8131:67;:::i;:::-;8124:74;;8207:93;8296:3;8207:93;:::i;:::-;8325:2;8320:3;8316:12;8309:19;;8114:220;;;:::o;8340:366::-;8482:3;8503:67;8567:2;8562:3;8503:67;:::i;:::-;8496:74;;8579:93;8668:3;8579:93;:::i;:::-;8697:2;8692:3;8688:12;8681:19;;8486:220;;;:::o;8712:366::-;8854:3;8875:67;8939:2;8934:3;8875:67;:::i;:::-;8868:74;;8951:93;9040:3;8951:93;:::i;:::-;9069:2;9064:3;9060:12;9053:19;;8858:220;;;:::o;9084:366::-;9226:3;9247:67;9311:2;9306:3;9247:67;:::i;:::-;9240:74;;9323:93;9412:3;9323:93;:::i;:::-;9441:2;9436:3;9432:12;9425:19;;9230:220;;;:::o;9456:366::-;9598:3;9619:67;9683:2;9678:3;9619:67;:::i;:::-;9612:74;;9695:93;9784:3;9695:93;:::i;:::-;9813:2;9808:3;9804:12;9797:19;;9602:220;;;:::o;9828:366::-;9970:3;9991:67;10055:2;10050:3;9991:67;:::i;:::-;9984:74;;10067:93;10156:3;10067:93;:::i;:::-;10185:2;10180:3;10176:12;10169:19;;9974:220;;;:::o;10200:398::-;10359:3;10380:83;10461:1;10456:3;10380:83;:::i;:::-;10373:90;;10472:93;10561:3;10472:93;:::i;:::-;10590:1;10585:3;10581:11;10574:18;;10363:235;;;:::o;10604:366::-;10746:3;10767:67;10831:2;10826:3;10767:67;:::i;:::-;10760:74;;10843:93;10932:3;10843:93;:::i;:::-;10961:2;10956:3;10952:12;10945:19;;10750:220;;;:::o;10976:366::-;11118:3;11139:67;11203:2;11198:3;11139:67;:::i;:::-;11132:74;;11215:93;11304:3;11215:93;:::i;:::-;11333:2;11328:3;11324:12;11317:19;;11122:220;;;:::o;11348:118::-;11435:24;11453:5;11435:24;:::i;:::-;11430:3;11423:37;11413:53;;:::o;11472:112::-;11555:22;11571:5;11555:22;:::i;:::-;11550:3;11543:35;11533:51;;:::o;11590:379::-;11774:3;11796:147;11939:3;11796:147;:::i;:::-;11789:154;;11960:3;11953:10;;11778:191;;;:::o;11975:222::-;12068:4;12106:2;12095:9;12091:18;12083:26;;12119:71;12187:1;12176:9;12172:17;12163:6;12119:71;:::i;:::-;12073:124;;;;:::o;12203:807::-;12452:4;12490:3;12479:9;12475:19;12467:27;;12504:71;12572:1;12561:9;12557:17;12548:6;12504:71;:::i;:::-;12585:72;12653:2;12642:9;12638:18;12629:6;12585:72;:::i;:::-;12667:80;12743:2;12732:9;12728:18;12719:6;12667:80;:::i;:::-;12757;12833:2;12822:9;12818:18;12809:6;12757:80;:::i;:::-;12847:73;12915:3;12904:9;12900:19;12891:6;12847:73;:::i;:::-;12930;12998:3;12987:9;12983:19;12974:6;12930:73;:::i;:::-;12457:553;;;;;;;;;:::o;13016:210::-;13103:4;13141:2;13130:9;13126:18;13118:26;;13154:65;13216:1;13205:9;13201:17;13192:6;13154:65;:::i;:::-;13108:118;;;;:::o;13232:264::-;13346:4;13384:2;13373:9;13369:18;13361:26;;13397:92;13486:1;13475:9;13471:17;13462:6;13397:92;:::i;:::-;13351:145;;;;:::o;13502:313::-;13615:4;13653:2;13642:9;13638:18;13630:26;;13702:9;13696:4;13692:20;13688:1;13677:9;13673:17;13666:47;13730:78;13803:4;13794:6;13730:78;:::i;:::-;13722:86;;13620:195;;;;:::o;13821:419::-;13987:4;14025:2;14014:9;14010:18;14002:26;;14074:9;14068:4;14064:20;14060:1;14049:9;14045:17;14038:47;14102:131;14228:4;14102:131;:::i;:::-;14094:139;;13992:248;;;:::o;14246:419::-;14412:4;14450:2;14439:9;14435:18;14427:26;;14499:9;14493:4;14489:20;14485:1;14474:9;14470:17;14463:47;14527:131;14653:4;14527:131;:::i;:::-;14519:139;;14417:248;;;:::o;14671:419::-;14837:4;14875:2;14864:9;14860:18;14852:26;;14924:9;14918:4;14914:20;14910:1;14899:9;14895:17;14888:47;14952:131;15078:4;14952:131;:::i;:::-;14944:139;;14842:248;;;:::o;15096:419::-;15262:4;15300:2;15289:9;15285:18;15277:26;;15349:9;15343:4;15339:20;15335:1;15324:9;15320:17;15313:47;15377:131;15503:4;15377:131;:::i;:::-;15369:139;;15267:248;;;:::o;15521:419::-;15687:4;15725:2;15714:9;15710:18;15702:26;;15774:9;15768:4;15764:20;15760:1;15749:9;15745:17;15738:47;15802:131;15928:4;15802:131;:::i;:::-;15794:139;;15692:248;;;:::o;15946:419::-;16112:4;16150:2;16139:9;16135:18;16127:26;;16199:9;16193:4;16189:20;16185:1;16174:9;16170:17;16163:47;16227:131;16353:4;16227:131;:::i;:::-;16219:139;;16117:248;;;:::o;16371:419::-;16537:4;16575:2;16564:9;16560:18;16552:26;;16624:9;16618:4;16614:20;16610:1;16599:9;16595:17;16588:47;16652:131;16778:4;16652:131;:::i;:::-;16644:139;;16542:248;;;:::o;16796:419::-;16962:4;17000:2;16989:9;16985:18;16977:26;;17049:9;17043:4;17039:20;17035:1;17024:9;17020:17;17013:47;17077:131;17203:4;17077:131;:::i;:::-;17069:139;;16967:248;;;:::o;17221:419::-;17387:4;17425:2;17414:9;17410:18;17402:26;;17474:9;17468:4;17464:20;17460:1;17449:9;17445:17;17438:47;17502:131;17628:4;17502:131;:::i;:::-;17494:139;;17392:248;;;:::o;17646:222::-;17739:4;17777:2;17766:9;17762:18;17754:26;;17790:71;17858:1;17847:9;17843:17;17834:6;17790:71;:::i;:::-;17744:124;;;;:::o;17874:831::-;18137:4;18175:3;18164:9;18160:19;18152:27;;18189:71;18257:1;18246:9;18242:17;18233:6;18189:71;:::i;:::-;18270:80;18346:2;18335:9;18331:18;18322:6;18270:80;:::i;:::-;18397:9;18391:4;18387:20;18382:2;18371:9;18367:18;18360:48;18425:108;18528:4;18519:6;18425:108;:::i;:::-;18417:116;;18543:72;18611:2;18600:9;18596:18;18587:6;18543:72;:::i;:::-;18625:73;18693:3;18682:9;18678:19;18669:6;18625:73;:::i;:::-;18142:563;;;;;;;;:::o;18711:332::-;18832:4;18870:2;18859:9;18855:18;18847:26;;18883:71;18951:1;18940:9;18936:17;18927:6;18883:71;:::i;:::-;18964:72;19032:2;19021:9;19017:18;19008:6;18964:72;:::i;:::-;18837:206;;;;;:::o;19049:214::-;19138:4;19176:2;19165:9;19161:18;19153:26;;19189:67;19253:1;19242:9;19238:17;19229:6;19189:67;:::i;:::-;19143:120;;;;:::o;19269:132::-;19336:4;19359:3;19351:11;;19389:4;19384:3;19380:14;19372:22;;19341:60;;;:::o;19407:114::-;19474:6;19508:5;19502:12;19492:22;;19481:40;;;:::o;19527:99::-;19579:6;19613:5;19607:12;19597:22;;19586:40;;;:::o;19632:113::-;19702:4;19734;19729:3;19725:14;19717:22;;19707:38;;;:::o;19751:184::-;19850:11;19884:6;19879:3;19872:19;19924:4;19919:3;19915:14;19900:29;;19862:73;;;;:::o;19941:147::-;20042:11;20079:3;20064:18;;20054:34;;;;:::o;20094:169::-;20178:11;20212:6;20207:3;20200:19;20252:4;20247:3;20243:14;20228:29;;20190:73;;;;:::o;20269:305::-;20309:3;20328:20;20346:1;20328:20;:::i;:::-;20323:25;;20362:20;20380:1;20362:20;:::i;:::-;20357:25;;20516:1;20448:66;20444:74;20441:1;20438:81;20435:2;;;20522:18;;:::i;:::-;20435:2;20566:1;20563;20559:9;20552:16;;20313:261;;;;:::o;20580:185::-;20620:1;20637:20;20655:1;20637:20;:::i;:::-;20632:25;;20671:20;20689:1;20671:20;:::i;:::-;20666:25;;20710:1;20700:2;;20715:18;;:::i;:::-;20700:2;20757:1;20754;20750:9;20745:14;;20622:143;;;;:::o;20771:348::-;20811:7;20834:20;20852:1;20834:20;:::i;:::-;20829:25;;20868:20;20886:1;20868:20;:::i;:::-;20863:25;;21056:1;20988:66;20984:74;20981:1;20978:81;20973:1;20966:9;20959:17;20955:105;20952:2;;;21063:18;;:::i;:::-;20952:2;21111:1;21108;21104:9;21093:20;;20819:300;;;;:::o;21125:191::-;21165:4;21185:20;21203:1;21185:20;:::i;:::-;21180:25;;21219:20;21237:1;21219:20;:::i;:::-;21214:25;;21258:1;21255;21252:8;21249:2;;;21263:18;;:::i;:::-;21249:2;21308:1;21305;21301:9;21293:17;;21170:146;;;;:::o;21322:96::-;21359:7;21388:24;21406:5;21388:24;:::i;:::-;21377:35;;21367:51;;;:::o;21424:90::-;21458:7;21501:5;21494:13;21487:21;21476:32;;21466:48;;;:::o;21520:126::-;21557:7;21597:42;21590:5;21586:54;21575:65;;21565:81;;;:::o;21652:77::-;21689:7;21718:5;21707:16;;21697:32;;;:::o;21735:86::-;21770:7;21810:4;21803:5;21799:16;21788:27;;21778:43;;;:::o;21827:168::-;21898:9;21931:58;21983:5;21931:58;:::i;:::-;21918:71;;21908:87;;;:::o;22001:134::-;22072:9;22105:24;22123:5;22105:24;:::i;:::-;22092:37;;22082:53;;;:::o;22141:121::-;22199:9;22232:24;22250:5;22232:24;:::i;:::-;22219:37;;22209:53;;;:::o;22268:307::-;22336:1;22346:113;22360:6;22357:1;22354:13;22346:113;;;22445:1;22440:3;22436:11;22430:18;22426:1;22421:3;22417:11;22410:39;22382:2;22379:1;22375:10;22370:15;;22346:113;;;22477:6;22474:1;22471:13;22468:2;;;22557:1;22548:6;22543:3;22539:16;22532:27;22468:2;22317:258;;;;:::o;22581:233::-;22620:3;22643:24;22661:5;22643:24;:::i;:::-;22634:33;;22689:66;22682:5;22679:77;22676:2;;;22759:18;;:::i;:::-;22676:2;22806:1;22799:5;22795:13;22788:20;;22624:190;;;:::o;22820:180::-;22868:77;22865:1;22858:88;22965:4;22962:1;22955:15;22989:4;22986:1;22979:15;23006:180;23054:77;23051:1;23044:88;23151:4;23148:1;23141:15;23175:4;23172:1;23165:15;23192:102;23233:6;23284:2;23280:7;23275:2;23268:5;23264:14;23260:28;23250:38;;23240:54;;;:::o;23300:167::-;23440:19;23436:1;23428:6;23424:14;23417:43;23406:61;:::o;23473:225::-;23613:34;23609:1;23601:6;23597:14;23590:58;23682:8;23677:2;23669:6;23665:15;23658:33;23579:119;:::o;23704:177::-;23844:29;23840:1;23832:6;23828:14;23821:53;23810:71;:::o;23887:172::-;24027:24;24023:1;24015:6;24011:14;24004:48;23993:66;:::o;24065:170::-;24205:22;24201:1;24193:6;24189:14;24182:46;24171:64;:::o;24241:220::-;24381:34;24377:1;24369:6;24365:14;24358:58;24450:3;24445:2;24437:6;24433:15;24426:28;24347:114;:::o;24467:182::-;24607:34;24603:1;24595:6;24591:14;24584:58;24573:76;:::o;24655:114::-;24761:8;:::o;24775:170::-;24915:22;24911:1;24903:6;24899:14;24892:46;24881:64;:::o;24951:161::-;25091:13;25087:1;25079:6;25075:14;25068:37;25057:55;:::o;25118:122::-;25191:24;25209:5;25191:24;:::i;:::-;25184:5;25181:35;25171:2;;25230:1;25227;25220:12;25171:2;25161:79;:::o;25246:116::-;25316:21;25331:5;25316:21;:::i;:::-;25309:5;25306:32;25296:2;;25352:1;25349;25342:12;25296:2;25286:76;:::o;25368:122::-;25441:24;25459:5;25441:24;:::i;:::-;25434:5;25431:35;25421:2;;25480:1;25477;25470:12;25421:2;25411:79;:::o
Swarm Source
ipfs://d776e2dbc4a2805d64f5c6dcbe180627fbae025a01474c77539170eb72ed0473
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.