ERC-20
Overview
Max Total Supply
1,000,000,000 BTHE
Holders
31
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.446650625870711743 BTHEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BabyProtocol
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-15 */ /** *Submitted for verification at Etherscan.io on 2022-10-11 */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.17; /** $BTHE - Baby The Protocol ⚫️ The baby is here to support his daddy The Protocol ($THE) with buybacks and burns. Moreover, the baby earns you reflections in $THE. Taxes: 3/3 2% to buybacks and burns. 1% reflections in $THE https://t.me/babytheprot **/ /** * Standard SafeMath, stripped down to just add/sub/mul/div */ 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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * ERC20 standard interface. */ interface IERC20 { 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); } abstract contract Auth { address internal owner; constructor(address _owner) { owner = _owner; } /** * Function modifier to require caller to be contract deployer */ modifier onlyOwner() { require(isOwner(msg.sender), "!Owner"); _; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { 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; } interface IReflectionsContract { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; function getDividends(address shareholder) external; } contract ReflectionsContract is IReflectionsContract { using SafeMath for uint256; address _token; address public THETOKEN; IDEXRouter router; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 30 minutes; uint256 public minDistribution = 0 * (10 ** 9); uint256 public currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor () { _token = msg.sender; router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // uniswap router THETOKEN = 0x0cbA60Ca5eF4D42f92A5070A8fEDD13BE93E2861; } receive() external payable { deposit(); } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() public payable override { uint256 balanceBefore = IERC20(THETOKEN).balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(THETOKEN); // takes the current balance of WETH on the contract and transfers to THETOKEN router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = IERC20(THETOKEN).balanceOf(address(this)).sub(balanceBefore); // amount = amount of new THETOKEN just converted. add that to the totalDividends totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) public view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); IERC20(THETOKEN).transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function getDividends(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } } contract BabyProtocol is IERC20, Auth { using SafeMath for uint256; address public THETOKEN = 0x0cbA60Ca5eF4D42f92A5070A8fEDD13BE93E2861; //THETOKEN COIN string private constant _name = "Baby The Protocol"; string private constant _symbol = "BTHE"; uint8 private constant _decimals = 18; uint256 private _totalSupply = 1000000000 * (10 ** _decimals); mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping (address => uint256) private cooldown; address private WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; bool public antiBot = true; mapping (address => bool) private bots; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isDividendExempt; uint256 public launchedAt; address public lpWallet = DEAD; uint256 public buyFee = 3; uint256 public sellFee = 3; uint256 public toReflections = 35; uint256 public toLiquidity = 0; uint256 public toMarketing = 65; uint256 public allocationSum = 100; IDEXRouter public router; address public pair; address public factory; address private tokenOwner; address public teamWallet = payable(0x96760c36957C8837ae70daD7DEf24f34507Ed165); // add address here bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public tradingOpen = false; ReflectionsContract public babytheprotocol; uint256 public babyGas = 0; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } uint256 public maxTx = _totalSupply.div(100); uint256 public maxWallet = _totalSupply.div(50); uint256 public swapThreshold = _totalSupply.div(400); constructor ( address _owner ) Auth(_owner) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; babytheprotocol = new ReflectionsContract(); isFeeExempt[_owner] = true; isFeeExempt[teamWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[teamWallet] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function setBots(address[] memory bots_) external onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } //once enabled, cannot be reversed function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { buyFee = newBuyFee; sellFee = newSellFee; require(buyFee <= 10, "too high"); require(sellFee <= 10, "too high"); } function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner { toReflections = newRewardFee; toLiquidity = newLpFee; toMarketing = newMarketingFee; } function changeTxLimit(uint256 newLimit) external onlyOwner { maxTx = newLimit; } function changeWalletLimit(uint256 newLimit) external onlyOwner { maxWallet = newLimit; } function changeIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setteamWallet(address payable newteamWallet) external onlyOwner { teamWallet = payable(newteamWallet); } function setOwnerWallet(address payable newOwnerWallet) external onlyOwner { tokenOwner = newOwnerWallet; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner { babytheprotocol.setDistributionCriteria(newMinPeriod, newMinDistribution); } function delBot(address notbot) external onlyOwner { bots[notbot] = false; } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ babytheprotocol.setShare(holder, 0); }else{ babytheprotocol.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function changeXenaTheWarriorGas(uint256 newGas) external onlyOwner { babyGas = newGas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } 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 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 transfer(address recipient, uint256 amount) external override returns (bool) { return _transfer(msg.sender, recipient, amount); } 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 _transfer(sender, recipient, amount); } function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) { if (sender!= owner && recipient!= owner) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive require(!bots[sender] && !bots[recipient]); if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); } require(amount <= maxTx || isTxLimitExempt[sender], "tx"); if(!isTxLimitExempt[recipient] && antiBot) { require(_balances[recipient].add(amount) <= maxWallet, "wallet"); } if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); // Dividend tracker if(!isDividendExempt[sender]) { try babytheprotocol.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try babytheprotocol.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? sellFee : buyFee; 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 swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); approve(address(this), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, lpWallet, block.timestamp ); } function swapBack() internal lockTheSwap { uint256 tokenBalance = _balances[address(this)]; uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2); uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity); swapTokensForEth(amountToSwap); uint256 totalEthBalance = address(this).balance; uint256 ethForTHETOKEN = totalEthBalance.mul(toReflections).div(100); uint256 ethForTeam = totalEthBalance.mul(toMarketing).div(100); uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2); if (totalEthBalance > 0){ payable(teamWallet).transfer(ethForTeam); } try babytheprotocol.deposit{value: ethForTHETOKEN}() {} catch {} if (tokensForLiquidity > 0){ addLiquidity(tokensForLiquidity, ethForLiquidity); } } function manualSwapBack() external onlyOwner { swapBack(); } function clearStuckEth() external onlyOwner { uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0){ payable(teamWallet).transfer(contractETHBalance); } } function manualProcessGas(uint256 manualGas) external onlyOwner { babytheprotocol.process(manualGas); } function checkPendingReflections(address shareholder) external view returns (uint256) { return babytheprotocol.getUnpaidEarnings(shareholder); } function getRewards() external { babytheprotocol.getDividends(msg.sender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"THETOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","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":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"babyGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"babytheprotocol","outputs":[{"internalType":"contract ReflectionsContract","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeXenaTheWarriorGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"getRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","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":"account","type":"address"}],"name":"isOwner","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":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newteamWallet","type":"address"}],"name":"setteamWallet","outputs":[],"stateMutability":"nonpayable","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":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052730cba60ca5ef4d42f92a5070a8fedd13be93e2861600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000069919062000dd1565b633b9aca006200007a919062000e22565b60025561dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600f55600360105560236011556000601255604160135560646014557396760c36957c8837ae70dad7def24f34507ed165601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff0219169083151502179055506000601b556200024b606460025462000b6f60201b6200212e1790919060201c565b601c556200026b603260025462000b6f60201b6200212e1790919060201c565b601d556200028c61019060025462000b6f60201b6200212e1790919060201c565b601e553480156200029c57600080fd5b50604051620077fc380380620077fc8339818101604052810190620002c2919062000ed7565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ed919062000ed7565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200049b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c1919062000ed7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200051f92919062000f1a565b6020604051808303816000875af11580156200053f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000565919062000ed7565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550604051620006769062000c29565b604051809103906000f08015801562000693573d6000803e3d6000fd5b50601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600254600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000b60919062000f58565b60405180910390a3506200109a565b600062000bb983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000bc160201b60201c565b905092915050565b6000808311829062000c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c0291906200100f565b60405180910390fd5b506000838562000c1c919062001062565b9050809150509392505050565b61200980620057f383390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cc55780860481111562000c9d5762000c9c62000c37565b5b600185161562000cad5780820291505b808102905062000cbd8562000c66565b945062000c7d565b94509492505050565b60008262000ce0576001905062000db3565b8162000cf0576000905062000db3565b816001811462000d09576002811462000d145762000d4a565b600191505062000db3565b60ff84111562000d295762000d2862000c37565b5b8360020a91508482111562000d435762000d4262000c37565b5b5062000db3565b5060208310610133831016604e8410600b841016171562000d845782820a90508381111562000d7e5762000d7d62000c37565b5b62000db3565b62000d93848484600162000c73565b9250905081840481111562000dad5762000dac62000c37565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000dde8262000dba565b915062000deb8362000dc4565b925062000e1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cce565b905092915050565b600062000e2f8262000dba565b915062000e3c8362000dba565b925082820262000e4c8162000dba565b9150828204841483151762000e665762000e6562000c37565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e9f8262000e72565b9050919050565b62000eb18162000e92565b811462000ebd57600080fd5b50565b60008151905062000ed18162000ea6565b92915050565b60006020828403121562000ef05762000eef62000e6d565b5b600062000f008482850162000ec0565b91505092915050565b62000f148162000e92565b82525050565b600060408201905062000f31600083018562000f09565b62000f40602083018462000f09565b9392505050565b62000f528162000dba565b82525050565b600060208201905062000f6f600083018462000f47565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000fb157808201518184015260208101905062000f94565b60008484015250505050565b6000601f19601f8301169050919050565b600062000fdb8262000f75565b62000fe7818562000f80565b935062000ff981856020860162000f91565b620010048162000fbd565b840191505092915050565b600060208201905081810360008301526200102b818462000fce565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200106f8262000dba565b91506200107c8362000dba565b9250826200108f576200108e62001033565b5b828204905092915050565b61474980620010aa6000396000f3fe6080604052600436106103855760003560e01c80637437681e116101d1578063bb542ef011610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610cfb578063f8b45b0514610d26578063fabe628314610d51578063ffb54a9914610d7a5761038c565b8063dd62ed3e14610c41578063e9a5c77614610c7e578063f2fde38b14610ca9578063f708a64f14610cd25761038c565b8063c8d1293d116100dc578063c8d1293d14610bab578063c9567bf914610bd6578063caa5581b14610bed578063d920334e14610c185761038c565b8063bb542ef014610b2c578063bf56b37114610b55578063c45a015514610b805761038c565b8063893d20e81161016f578063a3a2e89e11610149578063a3a2e89e14610a72578063a8aa1b3114610a9b578063a9059cbb14610ac6578063b515566a14610b035761038c565b8063893d20e8146109df5780638b42507f14610a0a57806395d89b4114610a475761038c565b80637db1342c116101ab5780637db1342c1461094b5780637dfcbe3414610974578063819340311461099f57806389291a8f146109c85761038c565b80637437681e146108b857806375df1305146108e357806377359aa71461090e5761038c565b80633dab5269116102b65780635423aa241161025457806366eb37851161022357806366eb37851461080e5780636b6a17b4146108255780636dac5ded1461085057806370a082311461087b5761038c565b80635423aa2414610752578063571ac8b01461077b57806359927044146107b85780636303516c146107e35761038c565b8063454343771161029057806345434377146106a857806345bb0a11146106d357806347062402146106fc5780634a74bb02146107275761038c565b80633dab5269146106055780633f4218e01461062e5780634355855a1461066b5761038c565b80632b112e49116103235780632dbea2e1116102fd5780632dbea2e11461054b5780632f54bf6e1461057457806330ca34ee146105b1578063313ce567146105da5761038c565b80632b112e49146104cc5780632b14ca56146104f75780632d48e896146105225761038c565b8063095ea7b31161035f578063095ea7b3146103fe57806318160ddd1461043b57806323b872dd14610466578063273123b7146104a35761038c565b80630445b667146103915780630572b0cc146103bc57806306fdde03146103d35761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610da5565b6040516103b391906137d5565b60405180910390f35b3480156103c857600080fd5b506103d1610dab565b005b3480156103df57600080fd5b506103e8610e3a565b6040516103f59190613880565b60405180910390f35b34801561040a57600080fd5b5061042560048036038101906104209190613940565b610e77565b604051610432919061399b565b60405180910390f35b34801561044757600080fd5b50610450610f69565b60405161045d91906137d5565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906139b6565b610f73565b60405161049a919061399b565b60405180910390f35b3480156104af57600080fd5b506104ca60048036038101906104c59190613a09565b611173565b005b3480156104d857600080fd5b506104e1611216565b6040516104ee91906137d5565b60405180910390f35b34801561050357600080fd5b5061050c611298565b60405161051991906137d5565b60405180910390f35b34801561052e57600080fd5b5061054960048036038101906105449190613a36565b61129e565b005b34801561055757600080fd5b50610572600480360381019061056d9190613a76565b611379565b005b34801561058057600080fd5b5061059b60048036038101906105969190613a09565b6113db565b6040516105a8919061399b565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190613a36565b611434565b005b3480156105e657600080fd5b506105ef61151a565b6040516105fc9190613ae5565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190613b2c565b611523565b005b34801561063a57600080fd5b5061065560048036038101906106509190613a09565b611590565b604051610662919061399b565b60405180910390f35b34801561067757600080fd5b50610692600480360381019061068d9190613a09565b6115b0565b60405161069f919061399b565b60405180910390f35b3480156106b457600080fd5b506106bd6115d0565b6040516106ca91906137d5565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190613baa565b6115d6565b005b34801561070857600080fd5b50610711611662565b60405161071e91906137d5565b60405180910390f35b34801561073357600080fd5b5061073c611668565b604051610749919061399b565b60405180910390f35b34801561075e57600080fd5b5061077960048036038101906107749190613bd7565b61167b565b005b34801561078757600080fd5b506107a2600480360381019061079d9190613a09565b6116cd565b6040516107af919061399b565b60405180910390f35b3480156107c457600080fd5b506107cd611700565b6040516107da9190613c13565b60405180910390f35b3480156107ef57600080fd5b506107f8611726565b6040516108059190613c13565b60405180910390f35b34801561081a57600080fd5b5061082361174c565b005b34801561083157600080fd5b5061083a61179e565b60405161084791906137d5565b60405180910390f35b34801561085c57600080fd5b506108656117a4565b6040516108729190613c8d565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d9190613a09565b6117ca565b6040516108af91906137d5565b60405180910390f35b3480156108c457600080fd5b506108cd611813565b6040516108da91906137d5565b60405180910390f35b3480156108ef57600080fd5b506108f8611819565b60405161090591906137d5565b60405180910390f35b34801561091a57600080fd5b5061093560048036038101906109309190613a09565b61181f565b60405161094291906137d5565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d9190613bd7565b6118c4565b005b34801561098057600080fd5b50610989611916565b604051610996919061399b565b60405180910390f35b3480156109ab57600080fd5b506109c660048036038101906109c19190613bd7565b611929565b005b3480156109d457600080fd5b506109dd611a01565b005b3480156109eb57600080fd5b506109f4611ac4565b604051610a019190613c13565b60405180910390f35b348015610a1657600080fd5b50610a316004803603810190610a2c9190613a09565b611aed565b604051610a3e919061399b565b60405180910390f35b348015610a5357600080fd5b50610a5c611b0d565b604051610a699190613880565b60405180910390f35b348015610a7e57600080fd5b50610a996004803603810190610a949190613ca8565b611b4a565b005b348015610aa757600080fd5b50610ab0611bed565b604051610abd9190613c13565b60405180910390f35b348015610ad257600080fd5b50610aed6004803603810190610ae89190613940565b611c13565b604051610afa919061399b565b60405180910390f35b348015610b0f57600080fd5b50610b2a6004803603810190610b259190613e30565b611c28565b005b348015610b3857600080fd5b50610b536004803603810190610b4e9190613baa565b611d05565b005b348015610b6157600080fd5b50610b6a611d91565b604051610b7791906137d5565b60405180910390f35b348015610b8c57600080fd5b50610b95611d97565b604051610ba29190613c13565b60405180910390f35b348015610bb757600080fd5b50610bc0611dbd565b604051610bcd91906137d5565b60405180910390f35b348015610be257600080fd5b50610beb611dc3565b005b348015610bf957600080fd5b50610c02611e2f565b604051610c0f91906137d5565b60405180910390f35b348015610c2457600080fd5b50610c3f6004803603810190610c3a9190613bd7565b611e35565b005b348015610c4d57600080fd5b50610c686004803603810190610c639190613e79565b611e87565b604051610c7591906137d5565b60405180910390f35b348015610c8a57600080fd5b50610c93611f0e565b604051610ca09190613c13565b60405180910390f35b348015610cb557600080fd5b50610cd06004803603810190610ccb9190613baa565b611f34565b005b348015610cde57600080fd5b50610cf96004803603810190610cf49190613ca8565b611ff6565b005b348015610d0757600080fd5b50610d1061204c565b604051610d1d9190613eec565b60405180910390f35b348015610d3257600080fd5b50610d3b612072565b604051610d4891906137d5565b60405180910390f35b348015610d5d57600080fd5b50610d786004803603810190610d739190613ca8565b612078565b005b348015610d8657600080fd5b50610d8f61211b565b604051610d9c919061399b565b60405180910390f35b601e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634634d81c336040518263ffffffff1660e01b8152600401610e069190613c13565b600060405180830381600087803b158015610e2057600080fd5b505af1158015610e34573d6000803e3d6000fd5b50505050565b60606040518060400160405280601181526020017f42616279205468652050726f746f636f6c000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f5791906137d5565b60405180910390a36001905092915050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461115f576110de826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61116a8484846121dc565b90509392505050565b61117c336113db565b6111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613f53565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611293611246600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ca565b611285611274600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ca565b600254612aee90919063ffffffff16565b612aee90919063ffffffff16565b905090565b60105481565b6112a7336113db565b6112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613f53565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611343929190613f73565b600060405180830381600087803b15801561135d57600080fd5b505af1158015611371573d6000803e3d6000fd5b505050505050565b611382336113db565b6113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b890613f53565b60405180910390fd5b826011819055508160128190555080601381905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61143d336113db565b61147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613f53565b60405180910390fd5b81600f8190555080601081905550600a600f5411156114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c790613fe8565b60405180910390fd5b600a6010541115611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90613fe8565b60405180910390fd5b5050565b60006012905090565b61152c336113db565b61156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290613f53565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601e819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b60145481565b6115df336113db565b61161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613f53565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b601960159054906101000a900460ff1681565b611684336113db565b6116c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ba90613f53565b60405180910390fd5b80601b8190555050565b60006116f9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e77565b9050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611755336113db565b611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b90613f53565b60405180910390fd5b61179c612b38565b565b601b5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601c5481565b60135481565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161187c9190613c13565b602060405180830381865afa158015611899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd919061401d565b9050919050565b6118cd336113db565b61190c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190390613f53565b60405180910390fd5b80601d8190555050565b600860149054906101000a900460ff1681565b611932336113db565b611971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196890613f53565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b81526004016119cc91906137d5565b600060405180830381600087803b1580156119e657600080fd5b505af11580156119fa573d6000803e3d6000fd5b5050505050565b611a0a336113db565b611a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4090613f53565b60405180910390fd5b60004790506000811115611ac157601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611abf573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f4254484500000000000000000000000000000000000000000000000000000000815250905090565b611b53336113db565b611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8990613f53565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c203384846121dc565b905092915050565b611c31336113db565b611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790613f53565b60405180910390fd5b60005b8151811015611d0157600160096000848481518110611c9557611c9461404a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611cf9906140a8565b915050611c73565b5050565b611d0e336113db565b611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4490613f53565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b611dcc336113db565b611e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0290613f53565b60405180910390fd5b43600d819055506001601960166101000a81548160ff021916908315150217905550565b60115481565b611e3e336113db565b611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7490613f53565b60405180910390fd5b80601c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f3d336113db565b611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390613f53565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611feb9190614111565b60405180910390a150565b611fff336113db565b61203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613f53565b60405180910390fd5b6120488282612dba565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b612081336113db565b6120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b790613f53565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960169054906101000a900460ff1681565b600061217083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613012565b905092915050565b60008383111582906121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b79190613880565b60405180910390fd5b50600083856121cf919061412c565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612287575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122dc57601960169054906101000a900460ff166122db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d2906141ac565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123805750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61238957600080fd5b601960149054906101000a900460ff16156123b0576123a9848484613075565b9050612ae7565b601c548211158061240a5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090614218565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124af5750600860149054906101000a900460ff165b1561254b57601d5461250983600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b111561254a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254190614284565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156125b65750601960149054906101000a900460ff16155b80156125ce5750601960159054906101000a900460ff165b801561261b5750601e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561262957612628612b38565b5b6126b2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561279b5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6127a557826127b1565b6127b08585856132a6565b5b905061280581600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661296257601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016129359291906142a4565b600060405180830381600087803b15801561294f57600080fd5b505af1925050508015612960575060015b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a7c57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a4f9291906142a4565b600060405180830381600087803b158015612a6957600080fd5b505af1925050508015612a7a575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ad991906137d5565b60405180910390a360019150505b9392505050565b6000612b3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612178565b905092915050565b6001601960146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612bd46002612bc66064612bb86012548761344e90919063ffffffff16565b61212e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612beb8284612aee90919063ffffffff16565b9050612bf6816134c8565b60004790506000612c256064612c176011548561344e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612c516064612c436013548661344e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612c906002612c826064612c746012548961344e90919063ffffffff16565b61212e90919063ffffffff16565b61212e90919063ffffffff16565b90506000841115612d0557601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612d03573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612d6f57600080fd5b505af193505050508015612d81575060015b506000861115612d9657612d9586826136e9565b5b505050505050506000601960146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612e445750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612e4d57600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612f3f57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612f08929190614308565b600060405180830381600087803b158015612f2257600080fd5b505af1158015612f36573d6000803e3d6000fd5b5050505061300e565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fdb9291906142a4565b600060405180830381600087803b158015612ff557600080fd5b505af1158015613009573d6000803e3d6000fd5b505050505b5050565b60008083118290613059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130509190613880565b60405180910390fd5b50600083856130689190614360565b9050809150509392505050565b6000613100826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061319582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161323591906137d5565b60405180910390a3600190509392505050565b60008082846132579190614391565b90508381101561329c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329390614411565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461330657600f5461330a565b6010545b905060006133346064613326848761344e90919063ffffffff16565b61212e90919063ffffffff16565b905061338881600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161342891906137d5565b60405180910390a36134438185612aee90919063ffffffff16565b925050509392505050565b600080830361346057600090506134c2565b6000828461346e9190614431565b905082848261347d9190614360565b146134bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b4906144e5565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156134e5576134e4613ced565b5b6040519080825280602002602001820160405280156135135781602001602082028036833780820191505090505b509050308160008151811061352b5761352a61404a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135f6919061451a565b8160018151811061360a5761360961404a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061364e3083610e77565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136b3959493929190614605565b600060405180830381600087803b1580156136cd57600080fd5b505af11580156136e1573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137729695949392919061465f565b60606040518083038185885af1158015613790573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137b591906146c0565b5050505050565b6000819050919050565b6137cf816137bc565b82525050565b60006020820190506137ea60008301846137c6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561382a57808201518184015260208101905061380f565b60008484015250505050565b6000601f19601f8301169050919050565b6000613852826137f0565b61385c81856137fb565b935061386c81856020860161380c565b61387581613836565b840191505092915050565b6000602082019050818103600083015261389a8184613847565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138e1826138b6565b9050919050565b6138f1816138d6565b81146138fc57600080fd5b50565b60008135905061390e816138e8565b92915050565b61391d816137bc565b811461392857600080fd5b50565b60008135905061393a81613914565b92915050565b60008060408385031215613957576139566138ac565b5b6000613965858286016138ff565b92505060206139768582860161392b565b9150509250929050565b60008115159050919050565b61399581613980565b82525050565b60006020820190506139b0600083018461398c565b92915050565b6000806000606084860312156139cf576139ce6138ac565b5b60006139dd868287016138ff565b93505060206139ee868287016138ff565b92505060406139ff8682870161392b565b9150509250925092565b600060208284031215613a1f57613a1e6138ac565b5b6000613a2d848285016138ff565b91505092915050565b60008060408385031215613a4d57613a4c6138ac565b5b6000613a5b8582860161392b565b9250506020613a6c8582860161392b565b9150509250929050565b600080600060608486031215613a8f57613a8e6138ac565b5b6000613a9d8682870161392b565b9350506020613aae8682870161392b565b9250506040613abf8682870161392b565b9150509250925092565b600060ff82169050919050565b613adf81613ac9565b82525050565b6000602082019050613afa6000830184613ad6565b92915050565b613b0981613980565b8114613b1457600080fd5b50565b600081359050613b2681613b00565b92915050565b60008060408385031215613b4357613b426138ac565b5b6000613b5185828601613b17565b9250506020613b628582860161392b565b9150509250929050565b6000613b77826138b6565b9050919050565b613b8781613b6c565b8114613b9257600080fd5b50565b600081359050613ba481613b7e565b92915050565b600060208284031215613bc057613bbf6138ac565b5b6000613bce84828501613b95565b91505092915050565b600060208284031215613bed57613bec6138ac565b5b6000613bfb8482850161392b565b91505092915050565b613c0d816138d6565b82525050565b6000602082019050613c286000830184613c04565b92915050565b6000819050919050565b6000613c53613c4e613c49846138b6565b613c2e565b6138b6565b9050919050565b6000613c6582613c38565b9050919050565b6000613c7782613c5a565b9050919050565b613c8781613c6c565b82525050565b6000602082019050613ca26000830184613c7e565b92915050565b60008060408385031215613cbf57613cbe6138ac565b5b6000613ccd858286016138ff565b9250506020613cde85828601613b17565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d2582613836565b810181811067ffffffffffffffff82111715613d4457613d43613ced565b5b80604052505050565b6000613d576138a2565b9050613d638282613d1c565b919050565b600067ffffffffffffffff821115613d8357613d82613ced565b5b602082029050602081019050919050565b600080fd5b6000613dac613da784613d68565b613d4d565b90508083825260208201905060208402830185811115613dcf57613dce613d94565b5b835b81811015613df85780613de488826138ff565b845260208401935050602081019050613dd1565b5050509392505050565b600082601f830112613e1757613e16613ce8565b5b8135613e27848260208601613d99565b91505092915050565b600060208284031215613e4657613e456138ac565b5b600082013567ffffffffffffffff811115613e6457613e636138b1565b5b613e7084828501613e02565b91505092915050565b60008060408385031215613e9057613e8f6138ac565b5b6000613e9e858286016138ff565b9250506020613eaf858286016138ff565b9150509250929050565b6000613ec482613c38565b9050919050565b6000613ed682613eb9565b9050919050565b613ee681613ecb565b82525050565b6000602082019050613f016000830184613edd565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613f3d6006836137fb565b9150613f4882613f07565b602082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b6000604082019050613f8860008301856137c6565b613f9560208301846137c6565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000613fd26008836137fb565b9150613fdd82613f9c565b602082019050919050565b6000602082019050818103600083015261400181613fc5565b9050919050565b60008151905061401781613914565b92915050565b600060208284031215614033576140326138ac565b5b600061404184828501614008565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140b3826137bc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140e5576140e4614079565b5b600182019050919050565b60006140fb82613eb9565b9050919050565b61410b816140f0565b82525050565b60006020820190506141266000830184614102565b92915050565b6000614137826137bc565b9150614142836137bc565b925082820390508181111561415a57614159614079565b5b92915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b60006141966017836137fb565b91506141a182614160565b602082019050919050565b600060208201905081810360008301526141c581614189565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b60006142026002836137fb565b915061420d826141cc565b602082019050919050565b60006020820190508181036000830152614231816141f5565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b600061426e6006836137fb565b915061427982614238565b602082019050919050565b6000602082019050818103600083015261429d81614261565b9050919050565b60006040820190506142b96000830185613c04565b6142c660208301846137c6565b9392505050565b6000819050919050565b60006142f26142ed6142e8846142cd565b613c2e565b6137bc565b9050919050565b614302816142d7565b82525050565b600060408201905061431d6000830185613c04565b61432a60208301846142f9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061436b826137bc565b9150614376836137bc565b92508261438657614385614331565b5b828204905092915050565b600061439c826137bc565b91506143a7836137bc565b92508282019050808211156143bf576143be614079565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143fb601b836137fb565b9150614406826143c5565b602082019050919050565b6000602082019050818103600083015261442a816143ee565b9050919050565b600061443c826137bc565b9150614447836137bc565b9250828202614455816137bc565b9150828204841483151761446c5761446b614079565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144cf6021836137fb565b91506144da82614473565b604082019050919050565b600060208201905081810360008301526144fe816144c2565b9050919050565b600081519050614514816138e8565b92915050565b6000602082840312156145305761452f6138ac565b5b600061453e84828501614505565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61457c816138d6565b82525050565b600061458e8383614573565b60208301905092915050565b6000602082019050919050565b60006145b282614547565b6145bc8185614552565b93506145c783614563565b8060005b838110156145f85781516145df8882614582565b97506145ea8361459a565b9250506001810190506145cb565b5085935050505092915050565b600060a08201905061461a60008301886137c6565b61462760208301876142f9565b818103604083015261463981866145a7565b90506146486060830185613c04565b61465560808301846137c6565b9695505050505050565b600060c0820190506146746000830189613c04565b61468160208301886137c6565b61468e60408301876142f9565b61469b60608301866142f9565b6146a86080830185613c04565b6146b560a08301846137c6565b979650505050505050565b6000806000606084860312156146d9576146d86138ac565b5b60006146e786828701614008565b93505060206146f886828701614008565b925050604061470986828701614008565b915050925092509256fea2646970667358221220d399664b53674d702dbf27bfc37a292118550642c0dba870484fbd03c09dea6764736f6c6343000811003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730cba60ca5ef4d42f92a5070a8fedd13be93e2861600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ee1806101286000396000f3fe6080604052600436106101025760003560e01c80638c21cd5211610095578063e2d2e21911610064578063e2d2e2191461032b578063e9a5c77614610356578063efca2eed14610381578063ffb2c479146103ac578063ffd49c84146103d557610111565b80638c21cd521461027a578063997664d7146102b7578063ce7c2ac2146102e2578063d0e30db01461032157610111565b80632d48e896116100d15780632d48e896146101d25780633a98ef39146101fb5780634634d81c146102265780634fab0ae81461024f57610111565b806311ce023d1461011657806314b6ca961461014157806326987b601461016a57806328fd31981461019557610111565b366101115761010f610400565b005b600080fd5b34801561012257600080fd5b5061012b6107e8565b604051610138919061167d565b60405180910390f35b34801561014d57600080fd5b5061016860048036038101906101639190611727565b6107ee565b005b34801561017657600080fd5b5061017f610aad565b60405161018c919061167d565b60405180910390f35b3480156101a157600080fd5b506101bc60048036038101906101b79190611767565b610ab3565b6040516101c9919061167d565b60405180910390f35b3480156101de57600080fd5b506101f960048036038101906101f49190611794565b610bcc565b005b34801561020757600080fd5b50610210610c36565b60405161021d919061167d565b60405180910390f35b34801561023257600080fd5b5061024d60048036038101906102489190611767565b610c3c565b005b34801561025b57600080fd5b50610264610ca0565b604051610271919061167d565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c9190611767565b610ca6565b6040516102ae91906117ef565b60405180910390f35b3480156102c357600080fd5b506102cc610d13565b6040516102d9919061167d565b60405180910390f35b3480156102ee57600080fd5b5061030960048036038101906103049190611767565b610d19565b6040516103189392919061180a565b60405180910390f35b610329610400565b005b34801561033757600080fd5b50610340610d43565b60405161034d919061167d565b60405180910390f35b34801561036257600080fd5b5061036b610d49565b6040516103789190611850565b60405180910390f35b34801561038d57600080fd5b50610396610d6f565b6040516103a3919061167d565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce919061186b565b610d75565b005b3480156103e157600080fd5b506103ea610eb0565b6040516103f7919061167d565b60405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161045d9190611850565b602060405180830381865afa15801561047a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049e91906118ad565b90506000600267ffffffffffffffff8111156104bd576104bc6118da565b5b6040519080825280602002602001820160405280156104eb5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f919061191e565b816000815181106105935761059261194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106106045761060361194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b81526004016106a19493929190611a7d565b6000604051808303818588803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b5050505050600061078383600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107349190611850565b602060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906118ad565b610eb690919063ffffffff16565b905061079a81600854610f0090919063ffffffff16565b6008819055506107dd6107cc6007546107be84600b54610f5e90919063ffffffff16565b610fd890919063ffffffff16565b600a54610f0090919063ffffffff16565b600a81905550505050565b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084657600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561089b5761089a82611022565b5b6000811180156108ed57506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b15610900576108fb826112b5565b610962565b60008114801561095257506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156109615761096082611364565b5b5b6109cb816109bd600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754610eb690919063ffffffff16565b610f0090919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610a63600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600e5481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403610b075760009050610bc7565b6000610b54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610baf57600092505050610bc7565b610bc28183610eb690919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2457600080fd5b81600c8190555080600d819055505050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9457600080fd5b610c9d81611022565b50565b600d5481565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cf69190611af8565b108015610d0c5750600d54610d0a83610ab3565b115b9050919050565b60085481565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6000600380549050905060008103610d8d5750610ead565b60008060005a90505b8482108015610da457508383105b15610ea85783600e5410610dbb576000600e819055505b610e046003600e5481548110610dd457610dd361194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ca6565b15610e5357610e526003600e5481548110610e2257610e2161194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611022565b5b610e78610e695a83610eb690919063ffffffff16565b83610f0090919063ffffffff16565b91505a9050600e6000815480929190610e9090611b2c565b91905055508280610ea090611b2c565b935050610d96565b505050505b50565b600c5481565b6000610ef883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061159d565b905092915050565b6000808284610f0f9190611af8565b905083811015610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611bd1565b60405180910390fd5b8091505092915050565b6000808303610f705760009050610fd2565b60008284610f7e9190611bf1565b9050828482610f8d9190611c62565b14610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490611d05565b60405180910390fd5b809150505b92915050565b600061101a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611601565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403156112b257600061107882610ab3565b905060008111156112b05761109881600954610f0090919063ffffffff16565b600981905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016110fb929190611d25565b6020604051808303816000875af115801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190611d7a565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d881600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610f0090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611269600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360016003805490506113789190611da7565b815481106113895761138861194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106114075761140661194b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490506114a79190611da7565b815481106114b8576114b761194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600380548061153357611532611ddb565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000611596600b54611588600a5485610f5e90919063ffffffff16565b610fd890919063ffffffff16565b9050919050565b60008383111582906115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc9190611e89565b60405180910390fd5b50600083856115f49190611da7565b9050809150509392505050565b60008083118290611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f9190611e89565b60405180910390fd5b50600083856116579190611c62565b9050809150509392505050565b6000819050919050565b61167781611664565b82525050565b6000602082019050611692600083018461166e565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116c88261169d565b9050919050565b6116d8816116bd565b81146116e357600080fd5b50565b6000813590506116f5816116cf565b92915050565b61170481611664565b811461170f57600080fd5b50565b600081359050611721816116fb565b92915050565b6000806040838503121561173e5761173d611698565b5b600061174c858286016116e6565b925050602061175d85828601611712565b9150509250929050565b60006020828403121561177d5761177c611698565b5b600061178b848285016116e6565b91505092915050565b600080604083850312156117ab576117aa611698565b5b60006117b985828601611712565b92505060206117ca85828601611712565b9150509250929050565b60008115159050919050565b6117e9816117d4565b82525050565b600060208201905061180460008301846117e0565b92915050565b600060608201905061181f600083018661166e565b61182c602083018561166e565b611839604083018461166e565b949350505050565b61184a816116bd565b82525050565b60006020820190506118656000830184611841565b92915050565b60006020828403121561188157611880611698565b5b600061188f84828501611712565b91505092915050565b6000815190506118a7816116fb565b92915050565b6000602082840312156118c3576118c2611698565b5b60006118d184828501611898565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611918816116cf565b92915050565b60006020828403121561193457611933611698565b5b600061194284828501611909565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b60006119a96119a461199f8461197a565b611984565b611664565b9050919050565b6119b98161198e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6119f4816116bd565b82525050565b6000611a0683836119eb565b60208301905092915050565b6000602082019050919050565b6000611a2a826119bf565b611a3481856119ca565b9350611a3f836119db565b8060005b83811015611a70578151611a5788826119fa565b9750611a6283611a12565b925050600181019050611a43565b5085935050505092915050565b6000608082019050611a9260008301876119b0565b8181036020830152611aa48186611a1f565b9050611ab36040830185611841565b611ac0606083018461166e565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b0382611664565b9150611b0e83611664565b9250828201905080821115611b2657611b25611ac9565b5b92915050565b6000611b3782611664565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b6957611b68611ac9565b5b600182019050919050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611bbb601b83611b74565b9150611bc682611b85565b602082019050919050565b60006020820190508181036000830152611bea81611bae565b9050919050565b6000611bfc82611664565b9150611c0783611664565b9250828202611c1581611664565b91508282048414831517611c2c57611c2b611ac9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611c6d82611664565b9150611c7883611664565b925082611c8857611c87611c33565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cef602183611b74565b9150611cfa82611c93565b604082019050919050565b60006020820190508181036000830152611d1e81611ce2565b9050919050565b6000604082019050611d3a6000830185611841565b611d47602083018461166e565b9392505050565b611d57816117d4565b8114611d6257600080fd5b50565b600081519050611d7481611d4e565b92915050565b600060208284031215611d9057611d8f611698565b5b6000611d9e84828501611d65565b91505092915050565b6000611db282611664565b9150611dbd83611664565b9250828203905081811115611dd557611dd4611ac9565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081519050919050565b60005b83811015611e33578082015181840152602081019050611e18565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e5b82611e0a565b611e658185611b74565b9350611e75818560208601611e15565b611e7e81611e3f565b840191505092915050565b60006020820190508181036000830152611ea38184611e50565b90509291505056fea2646970667358221220349f14ed693eed377958f6c7bfe0530f161e09cf147ca326853dd35469cad30b64736f6c63430008110033000000000000000000000000b82f66c633be065357815a44ff3e0d7d5008d5e0
Deployed Bytecode
0x6080604052600436106103855760003560e01c80637437681e116101d1578063bb542ef011610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610cfb578063f8b45b0514610d26578063fabe628314610d51578063ffb54a9914610d7a5761038c565b8063dd62ed3e14610c41578063e9a5c77614610c7e578063f2fde38b14610ca9578063f708a64f14610cd25761038c565b8063c8d1293d116100dc578063c8d1293d14610bab578063c9567bf914610bd6578063caa5581b14610bed578063d920334e14610c185761038c565b8063bb542ef014610b2c578063bf56b37114610b55578063c45a015514610b805761038c565b8063893d20e81161016f578063a3a2e89e11610149578063a3a2e89e14610a72578063a8aa1b3114610a9b578063a9059cbb14610ac6578063b515566a14610b035761038c565b8063893d20e8146109df5780638b42507f14610a0a57806395d89b4114610a475761038c565b80637db1342c116101ab5780637db1342c1461094b5780637dfcbe3414610974578063819340311461099f57806389291a8f146109c85761038c565b80637437681e146108b857806375df1305146108e357806377359aa71461090e5761038c565b80633dab5269116102b65780635423aa241161025457806366eb37851161022357806366eb37851461080e5780636b6a17b4146108255780636dac5ded1461085057806370a082311461087b5761038c565b80635423aa2414610752578063571ac8b01461077b57806359927044146107b85780636303516c146107e35761038c565b8063454343771161029057806345434377146106a857806345bb0a11146106d357806347062402146106fc5780634a74bb02146107275761038c565b80633dab5269146106055780633f4218e01461062e5780634355855a1461066b5761038c565b80632b112e49116103235780632dbea2e1116102fd5780632dbea2e11461054b5780632f54bf6e1461057457806330ca34ee146105b1578063313ce567146105da5761038c565b80632b112e49146104cc5780632b14ca56146104f75780632d48e896146105225761038c565b8063095ea7b31161035f578063095ea7b3146103fe57806318160ddd1461043b57806323b872dd14610466578063273123b7146104a35761038c565b80630445b667146103915780630572b0cc146103bc57806306fdde03146103d35761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610da5565b6040516103b391906137d5565b60405180910390f35b3480156103c857600080fd5b506103d1610dab565b005b3480156103df57600080fd5b506103e8610e3a565b6040516103f59190613880565b60405180910390f35b34801561040a57600080fd5b5061042560048036038101906104209190613940565b610e77565b604051610432919061399b565b60405180910390f35b34801561044757600080fd5b50610450610f69565b60405161045d91906137d5565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906139b6565b610f73565b60405161049a919061399b565b60405180910390f35b3480156104af57600080fd5b506104ca60048036038101906104c59190613a09565b611173565b005b3480156104d857600080fd5b506104e1611216565b6040516104ee91906137d5565b60405180910390f35b34801561050357600080fd5b5061050c611298565b60405161051991906137d5565b60405180910390f35b34801561052e57600080fd5b5061054960048036038101906105449190613a36565b61129e565b005b34801561055757600080fd5b50610572600480360381019061056d9190613a76565b611379565b005b34801561058057600080fd5b5061059b60048036038101906105969190613a09565b6113db565b6040516105a8919061399b565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190613a36565b611434565b005b3480156105e657600080fd5b506105ef61151a565b6040516105fc9190613ae5565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190613b2c565b611523565b005b34801561063a57600080fd5b5061065560048036038101906106509190613a09565b611590565b604051610662919061399b565b60405180910390f35b34801561067757600080fd5b50610692600480360381019061068d9190613a09565b6115b0565b60405161069f919061399b565b60405180910390f35b3480156106b457600080fd5b506106bd6115d0565b6040516106ca91906137d5565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190613baa565b6115d6565b005b34801561070857600080fd5b50610711611662565b60405161071e91906137d5565b60405180910390f35b34801561073357600080fd5b5061073c611668565b604051610749919061399b565b60405180910390f35b34801561075e57600080fd5b5061077960048036038101906107749190613bd7565b61167b565b005b34801561078757600080fd5b506107a2600480360381019061079d9190613a09565b6116cd565b6040516107af919061399b565b60405180910390f35b3480156107c457600080fd5b506107cd611700565b6040516107da9190613c13565b60405180910390f35b3480156107ef57600080fd5b506107f8611726565b6040516108059190613c13565b60405180910390f35b34801561081a57600080fd5b5061082361174c565b005b34801561083157600080fd5b5061083a61179e565b60405161084791906137d5565b60405180910390f35b34801561085c57600080fd5b506108656117a4565b6040516108729190613c8d565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d9190613a09565b6117ca565b6040516108af91906137d5565b60405180910390f35b3480156108c457600080fd5b506108cd611813565b6040516108da91906137d5565b60405180910390f35b3480156108ef57600080fd5b506108f8611819565b60405161090591906137d5565b60405180910390f35b34801561091a57600080fd5b5061093560048036038101906109309190613a09565b61181f565b60405161094291906137d5565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d9190613bd7565b6118c4565b005b34801561098057600080fd5b50610989611916565b604051610996919061399b565b60405180910390f35b3480156109ab57600080fd5b506109c660048036038101906109c19190613bd7565b611929565b005b3480156109d457600080fd5b506109dd611a01565b005b3480156109eb57600080fd5b506109f4611ac4565b604051610a019190613c13565b60405180910390f35b348015610a1657600080fd5b50610a316004803603810190610a2c9190613a09565b611aed565b604051610a3e919061399b565b60405180910390f35b348015610a5357600080fd5b50610a5c611b0d565b604051610a699190613880565b60405180910390f35b348015610a7e57600080fd5b50610a996004803603810190610a949190613ca8565b611b4a565b005b348015610aa757600080fd5b50610ab0611bed565b604051610abd9190613c13565b60405180910390f35b348015610ad257600080fd5b50610aed6004803603810190610ae89190613940565b611c13565b604051610afa919061399b565b60405180910390f35b348015610b0f57600080fd5b50610b2a6004803603810190610b259190613e30565b611c28565b005b348015610b3857600080fd5b50610b536004803603810190610b4e9190613baa565b611d05565b005b348015610b6157600080fd5b50610b6a611d91565b604051610b7791906137d5565b60405180910390f35b348015610b8c57600080fd5b50610b95611d97565b604051610ba29190613c13565b60405180910390f35b348015610bb757600080fd5b50610bc0611dbd565b604051610bcd91906137d5565b60405180910390f35b348015610be257600080fd5b50610beb611dc3565b005b348015610bf957600080fd5b50610c02611e2f565b604051610c0f91906137d5565b60405180910390f35b348015610c2457600080fd5b50610c3f6004803603810190610c3a9190613bd7565b611e35565b005b348015610c4d57600080fd5b50610c686004803603810190610c639190613e79565b611e87565b604051610c7591906137d5565b60405180910390f35b348015610c8a57600080fd5b50610c93611f0e565b604051610ca09190613c13565b60405180910390f35b348015610cb557600080fd5b50610cd06004803603810190610ccb9190613baa565b611f34565b005b348015610cde57600080fd5b50610cf96004803603810190610cf49190613ca8565b611ff6565b005b348015610d0757600080fd5b50610d1061204c565b604051610d1d9190613eec565b60405180910390f35b348015610d3257600080fd5b50610d3b612072565b604051610d4891906137d5565b60405180910390f35b348015610d5d57600080fd5b50610d786004803603810190610d739190613ca8565b612078565b005b348015610d8657600080fd5b50610d8f61211b565b604051610d9c919061399b565b60405180910390f35b601e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634634d81c336040518263ffffffff1660e01b8152600401610e069190613c13565b600060405180830381600087803b158015610e2057600080fd5b505af1158015610e34573d6000803e3d6000fd5b50505050565b60606040518060400160405280601181526020017f42616279205468652050726f746f636f6c000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f5791906137d5565b60405180910390a36001905092915050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461115f576110de826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61116a8484846121dc565b90509392505050565b61117c336113db565b6111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613f53565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611293611246600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ca565b611285611274600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ca565b600254612aee90919063ffffffff16565b612aee90919063ffffffff16565b905090565b60105481565b6112a7336113db565b6112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613f53565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611343929190613f73565b600060405180830381600087803b15801561135d57600080fd5b505af1158015611371573d6000803e3d6000fd5b505050505050565b611382336113db565b6113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b890613f53565b60405180910390fd5b826011819055508160128190555080601381905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61143d336113db565b61147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613f53565b60405180910390fd5b81600f8190555080601081905550600a600f5411156114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c790613fe8565b60405180910390fd5b600a6010541115611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90613fe8565b60405180910390fd5b5050565b60006012905090565b61152c336113db565b61156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290613f53565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601e819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b60145481565b6115df336113db565b61161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613f53565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b601960159054906101000a900460ff1681565b611684336113db565b6116c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ba90613f53565b60405180910390fd5b80601b8190555050565b60006116f9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e77565b9050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611755336113db565b611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b90613f53565b60405180910390fd5b61179c612b38565b565b601b5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601c5481565b60135481565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161187c9190613c13565b602060405180830381865afa158015611899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd919061401d565b9050919050565b6118cd336113db565b61190c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190390613f53565b60405180910390fd5b80601d8190555050565b600860149054906101000a900460ff1681565b611932336113db565b611971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196890613f53565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b81526004016119cc91906137d5565b600060405180830381600087803b1580156119e657600080fd5b505af11580156119fa573d6000803e3d6000fd5b5050505050565b611a0a336113db565b611a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4090613f53565b60405180910390fd5b60004790506000811115611ac157601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611abf573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f4254484500000000000000000000000000000000000000000000000000000000815250905090565b611b53336113db565b611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8990613f53565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c203384846121dc565b905092915050565b611c31336113db565b611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790613f53565b60405180910390fd5b60005b8151811015611d0157600160096000848481518110611c9557611c9461404a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611cf9906140a8565b915050611c73565b5050565b611d0e336113db565b611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4490613f53565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b611dcc336113db565b611e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0290613f53565b60405180910390fd5b43600d819055506001601960166101000a81548160ff021916908315150217905550565b60115481565b611e3e336113db565b611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7490613f53565b60405180910390fd5b80601c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f3d336113db565b611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390613f53565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611feb9190614111565b60405180910390a150565b611fff336113db565b61203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613f53565b60405180910390fd5b6120488282612dba565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b612081336113db565b6120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b790613f53565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960169054906101000a900460ff1681565b600061217083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613012565b905092915050565b60008383111582906121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b79190613880565b60405180910390fd5b50600083856121cf919061412c565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612287575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122dc57601960169054906101000a900460ff166122db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d2906141ac565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123805750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61238957600080fd5b601960149054906101000a900460ff16156123b0576123a9848484613075565b9050612ae7565b601c548211158061240a5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090614218565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124af5750600860149054906101000a900460ff165b1561254b57601d5461250983600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b111561254a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254190614284565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156125b65750601960149054906101000a900460ff16155b80156125ce5750601960159054906101000a900460ff165b801561261b5750601e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561262957612628612b38565b5b6126b2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561279b5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6127a557826127b1565b6127b08585856132a6565b5b905061280581600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661296257601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016129359291906142a4565b600060405180830381600087803b15801561294f57600080fd5b505af1925050508015612960575060015b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a7c57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a4f9291906142a4565b600060405180830381600087803b158015612a6957600080fd5b505af1925050508015612a7a575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ad991906137d5565b60405180910390a360019150505b9392505050565b6000612b3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612178565b905092915050565b6001601960146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612bd46002612bc66064612bb86012548761344e90919063ffffffff16565b61212e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612beb8284612aee90919063ffffffff16565b9050612bf6816134c8565b60004790506000612c256064612c176011548561344e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612c516064612c436013548661344e90919063ffffffff16565b61212e90919063ffffffff16565b90506000612c906002612c826064612c746012548961344e90919063ffffffff16565b61212e90919063ffffffff16565b61212e90919063ffffffff16565b90506000841115612d0557601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612d03573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612d6f57600080fd5b505af193505050508015612d81575060015b506000861115612d9657612d9586826136e9565b5b505050505050506000601960146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612e445750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612e4d57600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612f3f57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612f08929190614308565b600060405180830381600087803b158015612f2257600080fd5b505af1158015612f36573d6000803e3d6000fd5b5050505061300e565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612fdb9291906142a4565b600060405180830381600087803b158015612ff557600080fd5b505af1158015613009573d6000803e3d6000fd5b505050505b5050565b60008083118290613059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130509190613880565b60405180910390fd5b50600083856130689190614360565b9050809150509392505050565b6000613100826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121789092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061319582600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161323591906137d5565b60405180910390a3600190509392505050565b60008082846132579190614391565b90508381101561329c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329390614411565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461330657600f5461330a565b6010545b905060006133346064613326848761344e90919063ffffffff16565b61212e90919063ffffffff16565b905061338881600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461324890919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161342891906137d5565b60405180910390a36134438185612aee90919063ffffffff16565b925050509392505050565b600080830361346057600090506134c2565b6000828461346e9190614431565b905082848261347d9190614360565b146134bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b4906144e5565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156134e5576134e4613ced565b5b6040519080825280602002602001820160405280156135135781602001602082028036833780820191505090505b509050308160008151811061352b5761352a61404a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135f6919061451a565b8160018151811061360a5761360961404a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061364e3083610e77565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136b3959493929190614605565b600060405180830381600087803b1580156136cd57600080fd5b505af11580156136e1573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137729695949392919061465f565b60606040518083038185885af1158015613790573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137b591906146c0565b5050505050565b6000819050919050565b6137cf816137bc565b82525050565b60006020820190506137ea60008301846137c6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561382a57808201518184015260208101905061380f565b60008484015250505050565b6000601f19601f8301169050919050565b6000613852826137f0565b61385c81856137fb565b935061386c81856020860161380c565b61387581613836565b840191505092915050565b6000602082019050818103600083015261389a8184613847565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138e1826138b6565b9050919050565b6138f1816138d6565b81146138fc57600080fd5b50565b60008135905061390e816138e8565b92915050565b61391d816137bc565b811461392857600080fd5b50565b60008135905061393a81613914565b92915050565b60008060408385031215613957576139566138ac565b5b6000613965858286016138ff565b92505060206139768582860161392b565b9150509250929050565b60008115159050919050565b61399581613980565b82525050565b60006020820190506139b0600083018461398c565b92915050565b6000806000606084860312156139cf576139ce6138ac565b5b60006139dd868287016138ff565b93505060206139ee868287016138ff565b92505060406139ff8682870161392b565b9150509250925092565b600060208284031215613a1f57613a1e6138ac565b5b6000613a2d848285016138ff565b91505092915050565b60008060408385031215613a4d57613a4c6138ac565b5b6000613a5b8582860161392b565b9250506020613a6c8582860161392b565b9150509250929050565b600080600060608486031215613a8f57613a8e6138ac565b5b6000613a9d8682870161392b565b9350506020613aae8682870161392b565b9250506040613abf8682870161392b565b9150509250925092565b600060ff82169050919050565b613adf81613ac9565b82525050565b6000602082019050613afa6000830184613ad6565b92915050565b613b0981613980565b8114613b1457600080fd5b50565b600081359050613b2681613b00565b92915050565b60008060408385031215613b4357613b426138ac565b5b6000613b5185828601613b17565b9250506020613b628582860161392b565b9150509250929050565b6000613b77826138b6565b9050919050565b613b8781613b6c565b8114613b9257600080fd5b50565b600081359050613ba481613b7e565b92915050565b600060208284031215613bc057613bbf6138ac565b5b6000613bce84828501613b95565b91505092915050565b600060208284031215613bed57613bec6138ac565b5b6000613bfb8482850161392b565b91505092915050565b613c0d816138d6565b82525050565b6000602082019050613c286000830184613c04565b92915050565b6000819050919050565b6000613c53613c4e613c49846138b6565b613c2e565b6138b6565b9050919050565b6000613c6582613c38565b9050919050565b6000613c7782613c5a565b9050919050565b613c8781613c6c565b82525050565b6000602082019050613ca26000830184613c7e565b92915050565b60008060408385031215613cbf57613cbe6138ac565b5b6000613ccd858286016138ff565b9250506020613cde85828601613b17565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d2582613836565b810181811067ffffffffffffffff82111715613d4457613d43613ced565b5b80604052505050565b6000613d576138a2565b9050613d638282613d1c565b919050565b600067ffffffffffffffff821115613d8357613d82613ced565b5b602082029050602081019050919050565b600080fd5b6000613dac613da784613d68565b613d4d565b90508083825260208201905060208402830185811115613dcf57613dce613d94565b5b835b81811015613df85780613de488826138ff565b845260208401935050602081019050613dd1565b5050509392505050565b600082601f830112613e1757613e16613ce8565b5b8135613e27848260208601613d99565b91505092915050565b600060208284031215613e4657613e456138ac565b5b600082013567ffffffffffffffff811115613e6457613e636138b1565b5b613e7084828501613e02565b91505092915050565b60008060408385031215613e9057613e8f6138ac565b5b6000613e9e858286016138ff565b9250506020613eaf858286016138ff565b9150509250929050565b6000613ec482613c38565b9050919050565b6000613ed682613eb9565b9050919050565b613ee681613ecb565b82525050565b6000602082019050613f016000830184613edd565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613f3d6006836137fb565b9150613f4882613f07565b602082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b6000604082019050613f8860008301856137c6565b613f9560208301846137c6565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000613fd26008836137fb565b9150613fdd82613f9c565b602082019050919050565b6000602082019050818103600083015261400181613fc5565b9050919050565b60008151905061401781613914565b92915050565b600060208284031215614033576140326138ac565b5b600061404184828501614008565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140b3826137bc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140e5576140e4614079565b5b600182019050919050565b60006140fb82613eb9565b9050919050565b61410b816140f0565b82525050565b60006020820190506141266000830184614102565b92915050565b6000614137826137bc565b9150614142836137bc565b925082820390508181111561415a57614159614079565b5b92915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b60006141966017836137fb565b91506141a182614160565b602082019050919050565b600060208201905081810360008301526141c581614189565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b60006142026002836137fb565b915061420d826141cc565b602082019050919050565b60006020820190508181036000830152614231816141f5565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b600061426e6006836137fb565b915061427982614238565b602082019050919050565b6000602082019050818103600083015261429d81614261565b9050919050565b60006040820190506142b96000830185613c04565b6142c660208301846137c6565b9392505050565b6000819050919050565b60006142f26142ed6142e8846142cd565b613c2e565b6137bc565b9050919050565b614302816142d7565b82525050565b600060408201905061431d6000830185613c04565b61432a60208301846142f9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061436b826137bc565b9150614376836137bc565b92508261438657614385614331565b5b828204905092915050565b600061439c826137bc565b91506143a7836137bc565b92508282019050808211156143bf576143be614079565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143fb601b836137fb565b9150614406826143c5565b602082019050919050565b6000602082019050818103600083015261442a816143ee565b9050919050565b600061443c826137bc565b9150614447836137bc565b9250828202614455816137bc565b9150828204841483151761446c5761446b614079565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144cf6021836137fb565b91506144da82614473565b604082019050919050565b600060208201905081810360008301526144fe816144c2565b9050919050565b600081519050614514816138e8565b92915050565b6000602082840312156145305761452f6138ac565b5b600061453e84828501614505565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61457c816138d6565b82525050565b600061458e8383614573565b60208301905092915050565b6000602082019050919050565b60006145b282614547565b6145bc8185614552565b93506145c783614563565b8060005b838110156145f85781516145df8882614582565b97506145ea8361459a565b9250506001810190506145cb565b5085935050505092915050565b600060a08201905061461a60008301886137c6565b61462760208301876142f9565b818103604083015261463981866145a7565b90506146486060830185613c04565b61465560808301846137c6565b9695505050505050565b600060c0820190506146746000830189613c04565b61468160208301886137c6565b61468e60408301876142f9565b61469b60608301866142f9565b6146a86080830185613c04565b6146b560a08301846137c6565b979650505050505050565b6000806000606084860312156146d9576146d86138ac565b5b60006146e786828701614008565b93505060206146f886828701614008565b925050604061470986828701614008565b915050925092509256fea2646970667358221220d399664b53674d702dbf27bfc37a292118550642c0dba870484fbd03c09dea6764736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b82f66c633be065357815a44ff3e0d7d5008d5e0
-----Decoded View---------------
Arg [0] : _owner (address): 0xb82f66c633Be065357815a44FF3E0D7D5008D5E0
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b82f66c633be065357815a44ff3e0d7d5008d5e0
Deployed Bytecode Sourcemap
11148:12071:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13079:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23126:90;;;;;;;;;;;;;:::i;:::-;;17281:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17707:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17011:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18221:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16148:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16861:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12231:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15938:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14728:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3096:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14471:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17105:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15731:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11964:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12070:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12383:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15462:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12199:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12681:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16739:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17931:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12545:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12160:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22511:74;;;;;;;;;;;;;:::i;:::-;;12821:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12772:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17451:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12974:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12343:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22960:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15072:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11883:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22835:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22593:234;;;;;;;;;;;;;:::i;:::-;;17367:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12015:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17191:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15188:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12457:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18061:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14124:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15597:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12128:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12483:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12306:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14342:115;;;;;;;;;;;;;:::i;:::-;;12266:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14969:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17562:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11228:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3207:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16599:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12426:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13025:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15318:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12728:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13079:52;;;;:::o;23126:90::-;23168:15;;;;;;;;;;;:28;;;23197:10;23168:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23126:90::o;17281:80::-;17329:13;17353:5;;;;;;;;;;;;;;;;;17346:12;;17281:80;:::o;17707:216::-;17782:4;17834:6;17799:11;:23;17811:10;17799:23;;;;;;;;;;;;;;;:32;17823:7;17799:32;;;;;;;;;;;;;;;:41;;;;17877:7;17856:37;;17865:10;17856:37;;;17886:6;17856:37;;;;;;:::i;:::-;;;;;;;;17911:4;17904:11;;17707:216;;;;:::o;17011:88::-;17066:7;17084:12;;17077:19;;17011:88;:::o;18221:366::-;18321:4;18376:17;18341:11;:19;18353:6;18341:19;;;;;;;;;;;;;;;:31;18361:10;18341:31;;;;;;;;;;;;;;;;:52;18338:186;;18443:69;18479:6;18443:69;;;;;;;;;;;;;;;;;:11;:19;18455:6;18443:19;;;;;;;;;;;;;;;:31;18463:10;18443:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;18409:11;:19;18421:6;18409:19;;;;;;;;;;;;;;;:31;18429:10;18409:31;;;;;;;;;;;;;;;:103;;;;18338:186;18543:36;18553:6;18561:9;18572:6;18543:9;:36::i;:::-;18536:43;;18221:366;;;;;:::o;16148:90::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16225:5:::1;16210:4;:12;16215:6;16210:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16148:90:::0;:::o;16861:142::-;16914:7;16941:54;16979:15;16989:4;;;;;;;;;;;16979:9;:15::i;:::-;16941:33;16958:15;16968:4;;;;;;;;;;;16958:9;:15::i;:::-;16941:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16934:61;;16861:142;:::o;12231:26::-;;;;:::o;15938:202::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16051:15:::1;;;;;;;;;;;:39;;;16091:12;16105:18;16051:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15938:202:::0;;:::o;14728:233::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14868:12:::1;14852:13;:28;;;;14905:8;14891:11;:22;;;;14938:15;14924:11;:29;;;;14728:233:::0;;;:::o;3096:103::-;3151:4;3186:5;;;;;;;;;;;3175:16;;:7;:16;;;3168:23;;3096:103;;;:::o;14471:244::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14576:9:::1;14567:6;:18;;;;14606:10;14596:7;:20;;;;14647:2;14637:6;;:12;;14629:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;14692:2;14681:7;;:13;;14673:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;14471:244:::0;;:::o;17105:80::-;17157:5;11461:2;17166:16;;17105:80;:::o;15731:199::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15865:14:::1;15840:21;;:39;;;;;;;;;;;;;;;;;;15906:16;15890:13;:32;;;;15731:199:::0;;:::o;11964:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12070:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12383:34::-;;;;:::o;15462:127::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15567:13:::1;15546:10;;:35;;;;;;;;;;;;;;;;;;15462:127:::0;:::o;12199:25::-;;;;:::o;12681:40::-;;;;;;;;;;;;;:::o;16739:103::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16828:6:::1;16818:7;:16;;;;16739:103:::0;:::o;17931:122::-;17986:4;18010:35;18018:7;18027:17;18010:7;:35::i;:::-;18003:42;;17931:122;;;:::o;12545:79::-;;;;;;;;;;;;;:::o;12160:30::-;;;;;;;;;;;;;:::o;22511:74::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22567:10:::1;:8;:10::i;:::-;22511:74::o:0;12821:26::-;;;;:::o;12772:42::-;;;;;;;;;;;;;:::o;17451:105::-;17517:7;17535:9;:18;17545:7;17535:18;;;;;;;;;;;;;;;;17528:25;;17451:105;;;:::o;12974:44::-;;;;:::o;12343:31::-;;;;:::o;22960:158::-;23037:7;23064:15;;;;;;;;;;;:33;;;23098:11;23064:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23057:53;;22960:158;;;:::o;15072:104::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15160:8:::1;15147:9;:21;;;;15072:104:::0;:::o;11883:26::-;;;;;;;;;;;;;:::o;22835:117::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22910:15:::1;;;;;;;;;;;:23;;;22934:9;22910:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22835:117:::0;:::o;22593:234::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22648:26:::1;22677:21;22648:50;;22733:1;22712:18;:22;22709:111;;;22768:10;;;;;;;;;;;22760:28;;:48;22789:18;22760:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22709:111;22637:190;22593:234::o:0;17367:78::-;17419:7;17437:5;;;;;;;;;;;17430:12;;17367:78;:::o;12015:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;17191:84::-;17241:13;17265:7;;;;;;;;;;;;;;;;;17258:14;;17191:84;:::o;15188:122::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15296:6:::1;15274:11;:19;15286:6;15274:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15188:122:::0;;:::o;12457:19::-;;;;;;;;;;;;;:::o;18061:152::-;18141:4;18165:40;18175:10;18187:9;18198:6;18165:9;:40::i;:::-;18158:47;;18061:152;;;;:::o;14124:166::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14200:6:::1;14195:88;14216:5;:12;14212:1;:16;14195:88;;;14267:4;14250;:14;14255:5;14261:1;14255:8;;;;;;;;:::i;:::-;;;;;;;;14250:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14230:3;;;;;:::i;:::-;;;;14195:88;;;;14124:166:::0;:::o;15597:121::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15696:14:::1;15683:10;;:27;;;;;;;;;;;;;;;;;;15597:121:::0;:::o;12128:25::-;;;;:::o;12483:22::-;;;;;;;;;;;;;:::o;12306:30::-;;;;:::o;14342:115::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14408:12:::1;14395:10;:25;;;;14445:4;14431:11;;:18;;;;;;;;;;;;;;;;;;14342:115::o:0;12266:33::-;;;;:::o;14969:95::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15048:8:::1;15040:5;:16;;;;14969:95:::0;:::o;17562:133::-;17646:7;17664:11;:19;17676:6;17664:19;;;;;;;;;;;;;;;:28;17684:7;17664:28;;;;;;;;;;;;;;;;17657:35;;17562:133;;;;:::o;11228:68::-;;;;;;;;;;;;;:::o;3207:136::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3291:3:::1;3283:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3310:25;3331:3;3310:25;;;;;;:::i;:::-;;;;;;;;3207:136:::0;:::o;16599:132::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16687:36:::1;16708:6;16716;16687:20;:36::i;:::-;16599:132:::0;;:::o;12426:24::-;;;;;;;;;;;;;:::o;13025:47::-;;;;:::o;15318:136::-;2995:19;3003:10;2995:7;:19::i;:::-;2987:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15440:6:::1;15414:15;:23;15430:6;15414:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15318:136:::0;;:::o;12728:31::-;;;;;;;;;;;;;:::o;1295:132::-;1353:7;1380:39;1384:1;1387;1380:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1373:46;;1295:132;;;;:::o;841:192::-;927:7;960:1;955;:6;;963:12;947:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;987:9;1003:1;999;:5;;;;:::i;:::-;987:17;;1024:1;1017:8;;;841:192;;;;;:::o;18595:1428::-;18683:4;18713:5;;;;;;;;;;;18704:14;;:6;:14;;;;:35;;;;;18734:5;;;;;;;;;;18722:17;;:9;:17;;;;18704:35;18700:88;;;18749:11;;;;;;;;;;;18741:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18700:88;18850:4;:12;18855:6;18850:12;;;;;;;;;;;;;;;;;;;;;;;;;18849:13;:33;;;;;18867:4;:15;18872:9;18867:15;;;;;;;;;;;;;;;;;;;;;;;;;18866:16;18849:33;18841:42;;;;;;18899:16;;;;;;;;;;;18896:73;;;18925:41;18940:6;18948:9;18959:6;18925:14;:41::i;:::-;18918:48;;;;18896:73;18999:5;;18989:6;:15;;:42;;;;19008:15;:23;19024:6;19008:23;;;;;;;;;;;;;;;;;;;;;;;;;18989:42;18981:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;19055:15;:26;19071:9;19055:26;;;;;;;;;;;;;;;;;;;;;;;;;19054:27;:38;;;;;19085:7;;;;;;;;;;;19054:38;19051:143;;;19162:9;;19126:32;19151:6;19126:9;:20;19136:9;19126:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:45;;19118:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19051:143;19223:4;;;;;;;;;;;19209:18;;:10;:18;;;;:39;;;;;19232:16;;;;;;;;;;;19231:17;19209:39;:64;;;;;19252:21;;;;;;;;;;;19209:64;:109;;;;;19305:13;;19277:9;:24;19295:4;19277:24;;;;;;;;;;;;;;;;:41;;19209:109;19206:128;;;19321:10;:8;:10::i;:::-;19206:128;19366:53;19388:6;19366:53;;;;;;;;;;;;;;;;;:9;:17;19376:6;19366:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19346:9;:17;19356:6;19346:17;;;;;;;;;;;;;;;:73;;;;19440:19;19463:11;:19;19475:6;19463:19;;;;;;;;;;;;;;;;;;;;;;;;;19462:20;:47;;;;;19487:11;:22;19499:9;19487:22;;;;;;;;;;;;;;;;;;;;;;;;;19486:23;19462:47;:93;;19549:6;19462:93;;;19512:34;19520:6;19528:9;19539:6;19512:7;:34::i;:::-;19462:93;19440:115;;19589:37;19614:11;19589:9;:20;19599:9;19589:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;19566:9;:20;19576:9;19566:20;;;;;;;;;;;;;;;:60;;;;19672:16;:24;19689:6;19672:24;;;;;;;;;;;;;;;;;;;;;;;;;19668:123;;19717:15;;;;;;;;;;;:24;;;19742:6;19750:9;:17;19760:6;19750:17;;;;;;;;;;;;;;;;19717:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19713:67;19668:123;19807:16;:27;19824:9;19807:27;;;;;;;;;;;;;;;;;;;;;;;;;19803:133;;19855:15;;;;;;;;;;;:24;;;19880:9;19891;:20;19901:9;19891:20;;;;;;;;;;;;;;;;19855:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19851:73;19803:133;19970:9;19953:40;;19962:6;19953:40;;;19981:11;19953:40;;;;;;:::i;:::-;;;;;;;;20011:4;20004:11;;;18595:1428;;;;;;:::o;699:136::-;757:7;784:43;788:1;791;784:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;777:50;;699:136;;;;:::o;21573:930::-;12907:4;12888:16;;:23;;;;;;;;;;;;;;;;;;21631:20:::1;21654:9;:24;21672:4;21654:24;;;;;;;;;;;;;;;;21631:47;;21690:26;21719:45;21762:1;21719:38;21753:3;21719:29;21736:11;;21719:12;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;:42;;:45;;;;:::i;:::-;21690:74;;21780:20;21803:36;21820:18;21803:12;:16;;:36;;;;:::i;:::-;21780:59;;21852:30;21869:12;21852:16;:30::i;:::-;21895:23;21921:21;21895:47;;21953:22;21978:43;22017:3;21978:34;21998:13;;21978:15;:19;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;21953:68;;22032:18;22053:41;22090:3;22053:32;22073:11;;22053:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;22032:62;;22105:23;22131:48;22177:1;22131:41;22168:3;22131:32;22151:11;;22131:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;:45;;:48;;;;:::i;:::-;22105:74;;22220:1;22202:15;:19;22198:91;;;22245:10;;;;;;;;;;;22237:28;;:40;22266:10;22237:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22198:91;22313:15;;;;;;;;;;;:23;;;22344:14;22313:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22309:64:::0;22418:1:::1;22397:18;:22;22393:103;;;22435:49;22448:18;22468:15;22435:12;:49::i;:::-;22393:103;21614:889;;;;;;;12953:5:::0;12934:16;;:24;;;;;;;;;;;;;;;;;;21573:930::o;16246:345::-;16351:4;16333:23;;:6;:23;;;;:41;;;;;16370:4;;;;;;;;;;;16360:14;;:6;:14;;;;16333:41;16325:50;;;;;;16413:6;16386:16;:24;16403:6;16386:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16433:6;16430:154;;;16455:15;;;;;;;;;;;:24;;;16480:6;16488:1;16455:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16430:154;;;16521:15;;;;;;;;;;;:24;;;16546:6;16554:9;:17;16564:6;16554:17;;;;;;;;;;;;;;;;16521:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16430:154;16246:345;;:::o;1433:::-;1519:7;1618:1;1614;:5;1621:12;1606:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1645:9;1661:1;1657;:5;;;;:::i;:::-;1645:17;;1769:1;1762:8;;;1433:345;;;;;:::o;20035:330::-;20128:4;20165:53;20187:6;20165:53;;;;;;;;;;;;;;;;;:9;:17;20175:6;20165:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;20145:9;:17;20155:6;20145:17;;;;;;;;;;;;;;;:73;;;;20252:32;20277:6;20252:9;:20;20262:9;20252:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20229:9;:20;20239:9;20229:20;;;;;;;;;;;;;;;:55;;;;20317:9;20300:35;;20309:6;20300:35;;;20328:6;20300:35;;;;;;:::i;:::-;;;;;;;;20353:4;20346:11;;20035:330;;;;;:::o;512:181::-;570:7;590:9;606:1;602;:5;;;;:::i;:::-;590:17;;631:1;626;:6;;618:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;684:1;677:8;;;512:181;;;;:::o;20379:427::-;20465:7;20495:21;20527:9;20519:17;;:4;;;;;;;;;;;:17;;;:36;;20549:6;;20519:36;;;20539:7;;20519:36;20495:60;;20566:17;20586:34;20616:3;20586:25;20597:13;20586:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;20566:54;;20660:39;20689:9;20660;:24;20678:4;20660:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20633:9;:24;20651:4;20633:24;;;;;;;;;;;;;;;:66;;;;20740:4;20715:42;;20724:6;20715:42;;;20747:9;20715:42;;;;;;:::i;:::-;;;;;;;;20777:21;20788:9;20777:6;:10;;:21;;;;:::i;:::-;20770:28;;;;20379:427;;;;;:::o;1039:250::-;1097:7;1126:1;1121;:6;1117:47;;1151:1;1144:8;;;;1117:47;1176:9;1192:1;1188;:5;;;;:::i;:::-;1176:17;;1221:1;1216;1212;:5;;;;:::i;:::-;:10;1204:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1280:1;1273:8;;;1039:250;;;;;:::o;20818:460::-;20886:21;20924:1;20910:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20886:40;;20955:4;20937;20942:1;20937:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20981:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20971:4;20976:1;20971:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21007:35;21023:4;21030:11;21007:7;:35::i;:::-;;21055:6;;;;;;;;;;;:57;;;21127:11;21153:1;21197:4;21224;21244:15;21055:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20873:405;20818:460;:::o;21286:279::-;21367:6;;;;;;;;;;;:22;;;21397:9;21430:4;21450:11;21476:1;21492;21508:8;;;;;;;;;;;21531:15;21367:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21286:279;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:474::-;4826:6;4834;4883:2;4871:9;4862:7;4858:23;4854:32;4851:119;;;4889:79;;:::i;:::-;4851:119;5009:1;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4980:117;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4758:474;;;;;:::o;5238:619::-;5315:6;5323;5331;5380:2;5368:9;5359:7;5355:23;5351:32;5348:119;;;5386:79;;:::i;:::-;5348:119;5506:1;5531:53;5576:7;5567:6;5556:9;5552:22;5531:53;:::i;:::-;5521:63;;5477:117;5633:2;5659:53;5704:7;5695:6;5684:9;5680:22;5659:53;:::i;:::-;5649:63;;5604:118;5761:2;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5732:118;5238:619;;;;;:::o;5863:86::-;5898:7;5938:4;5931:5;5927:16;5916:27;;5863:86;;;:::o;5955:112::-;6038:22;6054:5;6038:22;:::i;:::-;6033:3;6026:35;5955:112;;:::o;6073:214::-;6162:4;6200:2;6189:9;6185:18;6177:26;;6213:67;6277:1;6266:9;6262:17;6253:6;6213:67;:::i;:::-;6073:214;;;;:::o;6293:116::-;6363:21;6378:5;6363:21;:::i;:::-;6356:5;6353:32;6343:60;;6399:1;6396;6389:12;6343:60;6293:116;:::o;6415:133::-;6458:5;6496:6;6483:20;6474:29;;6512:30;6536:5;6512:30;:::i;:::-;6415:133;;;;:::o;6554:468::-;6619:6;6627;6676:2;6664:9;6655:7;6651:23;6647:32;6644:119;;;6682:79;;:::i;:::-;6644:119;6802:1;6827:50;6869:7;6860:6;6849:9;6845:22;6827:50;:::i;:::-;6817:60;;6773:114;6926:2;6952:53;6997:7;6988:6;6977:9;6973:22;6952:53;:::i;:::-;6942:63;;6897:118;6554:468;;;;;:::o;7028:104::-;7073:7;7102:24;7120:5;7102:24;:::i;:::-;7091:35;;7028:104;;;:::o;7138:138::-;7219:32;7245:5;7219:32;:::i;:::-;7212:5;7209:43;7199:71;;7266:1;7263;7256:12;7199:71;7138:138;:::o;7282:155::-;7336:5;7374:6;7361:20;7352:29;;7390:41;7425:5;7390:41;:::i;:::-;7282:155;;;;:::o;7443:345::-;7510:6;7559:2;7547:9;7538:7;7534:23;7530:32;7527:119;;;7565:79;;:::i;:::-;7527:119;7685:1;7710:61;7763:7;7754:6;7743:9;7739:22;7710:61;:::i;:::-;7700:71;;7656:125;7443:345;;;;:::o;7794:329::-;7853:6;7902:2;7890:9;7881:7;7877:23;7873:32;7870:119;;;7908:79;;:::i;:::-;7870:119;8028:1;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7999:117;7794:329;;;;:::o;8129:118::-;8216:24;8234:5;8216:24;:::i;:::-;8211:3;8204:37;8129:118;;:::o;8253:222::-;8346:4;8384:2;8373:9;8369:18;8361:26;;8397:71;8465:1;8454:9;8450:17;8441:6;8397:71;:::i;:::-;8253:222;;;;:::o;8481:60::-;8509:3;8530:5;8523:12;;8481:60;;;:::o;8547:142::-;8597:9;8630:53;8648:34;8657:24;8675:5;8657:24;:::i;:::-;8648:34;:::i;:::-;8630:53;:::i;:::-;8617:66;;8547:142;;;:::o;8695:134::-;8753:9;8786:37;8817:5;8786:37;:::i;:::-;8773:50;;8695:134;;;:::o;8835:170::-;8921:9;8954:45;8993:5;8954:45;:::i;:::-;8941:58;;8835:170;;;:::o;9011:203::-;9134:73;9201:5;9134:73;:::i;:::-;9129:3;9122:86;9011:203;;:::o;9220:294::-;9349:4;9387:2;9376:9;9372:18;9364:26;;9400:107;9504:1;9493:9;9489:17;9480:6;9400:107;:::i;:::-;9220:294;;;;:::o;9520:468::-;9585:6;9593;9642:2;9630:9;9621:7;9617:23;9613:32;9610:119;;;9648:79;;:::i;:::-;9610:119;9768:1;9793:53;9838:7;9829:6;9818:9;9814:22;9793:53;:::i;:::-;9783:63;;9739:117;9895:2;9921:50;9963:7;9954:6;9943:9;9939:22;9921:50;:::i;:::-;9911:60;;9866:115;9520:468;;;;;:::o;9994:117::-;10103:1;10100;10093:12;10117:180;10165:77;10162:1;10155:88;10262:4;10259:1;10252:15;10286:4;10283:1;10276:15;10303:281;10386:27;10408:4;10386:27;:::i;:::-;10378:6;10374:40;10516:6;10504:10;10501:22;10480:18;10468:10;10465:34;10462:62;10459:88;;;10527:18;;:::i;:::-;10459:88;10567:10;10563:2;10556:22;10346:238;10303:281;;:::o;10590:129::-;10624:6;10651:20;;:::i;:::-;10641:30;;10680:33;10708:4;10700:6;10680:33;:::i;:::-;10590:129;;;:::o;10725:311::-;10802:4;10892:18;10884:6;10881:30;10878:56;;;10914:18;;:::i;:::-;10878:56;10964:4;10956:6;10952:17;10944:25;;11024:4;11018;11014:15;11006:23;;10725:311;;;:::o;11042:117::-;11151:1;11148;11141:12;11182:710;11278:5;11303:81;11319:64;11376:6;11319:64;:::i;:::-;11303:81;:::i;:::-;11294:90;;11404:5;11433:6;11426:5;11419:21;11467:4;11460:5;11456:16;11449:23;;11520:4;11512:6;11508:17;11500:6;11496:30;11549:3;11541:6;11538:15;11535:122;;;11568:79;;:::i;:::-;11535:122;11683:6;11666:220;11700:6;11695:3;11692:15;11666:220;;;11775:3;11804:37;11837:3;11825:10;11804:37;:::i;:::-;11799:3;11792:50;11871:4;11866:3;11862:14;11855:21;;11742:144;11726:4;11721:3;11717:14;11710:21;;11666:220;;;11670:21;11284:608;;11182:710;;;;;:::o;11915:370::-;11986:5;12035:3;12028:4;12020:6;12016:17;12012:27;12002:122;;12043:79;;:::i;:::-;12002:122;12160:6;12147:20;12185:94;12275:3;12267:6;12260:4;12252:6;12248:17;12185:94;:::i;:::-;12176:103;;11992:293;11915:370;;;;:::o;12291:539::-;12375:6;12424:2;12412:9;12403:7;12399:23;12395:32;12392:119;;;12430:79;;:::i;:::-;12392:119;12578:1;12567:9;12563:17;12550:31;12608:18;12600:6;12597:30;12594:117;;;12630:79;;:::i;:::-;12594:117;12735:78;12805:7;12796:6;12785:9;12781:22;12735:78;:::i;:::-;12725:88;;12521:302;12291:539;;;;:::o;12836:474::-;12904:6;12912;12961:2;12949:9;12940:7;12936:23;12932:32;12929:119;;;12967:79;;:::i;:::-;12929:119;13087:1;13112:53;13157:7;13148:6;13137:9;13133:22;13112:53;:::i;:::-;13102:63;;13058:117;13214:2;13240:53;13285:7;13276:6;13265:9;13261:22;13240:53;:::i;:::-;13230:63;;13185:118;12836:474;;;;;:::o;13316:126::-;13366:9;13399:37;13430:5;13399:37;:::i;:::-;13386:50;;13316:126;;;:::o;13448:144::-;13516:9;13549:37;13580:5;13549:37;:::i;:::-;13536:50;;13448:144;;;:::o;13598:167::-;13703:55;13752:5;13703:55;:::i;:::-;13698:3;13691:68;13598:167;;:::o;13771:258::-;13882:4;13920:2;13909:9;13905:18;13897:26;;13933:89;14019:1;14008:9;14004:17;13995:6;13933:89;:::i;:::-;13771:258;;;;:::o;14035:156::-;14175:8;14171:1;14163:6;14159:14;14152:32;14035:156;:::o;14197:365::-;14339:3;14360:66;14424:1;14419:3;14360:66;:::i;:::-;14353:73;;14435:93;14524:3;14435:93;:::i;:::-;14553:2;14548:3;14544:12;14537:19;;14197:365;;;:::o;14568:419::-;14734:4;14772:2;14761:9;14757:18;14749:26;;14821:9;14815:4;14811:20;14807:1;14796:9;14792:17;14785:47;14849:131;14975:4;14849:131;:::i;:::-;14841:139;;14568:419;;;:::o;14993:332::-;15114:4;15152:2;15141:9;15137:18;15129:26;;15165:71;15233:1;15222:9;15218:17;15209:6;15165:71;:::i;:::-;15246:72;15314:2;15303:9;15299:18;15290:6;15246:72;:::i;:::-;14993:332;;;;;:::o;15331:158::-;15471:10;15467:1;15459:6;15455:14;15448:34;15331:158;:::o;15495:365::-;15637:3;15658:66;15722:1;15717:3;15658:66;:::i;:::-;15651:73;;15733:93;15822:3;15733:93;:::i;:::-;15851:2;15846:3;15842:12;15835:19;;15495:365;;;:::o;15866:419::-;16032:4;16070:2;16059:9;16055:18;16047:26;;16119:9;16113:4;16109:20;16105:1;16094:9;16090:17;16083:47;16147:131;16273:4;16147:131;:::i;:::-;16139:139;;15866:419;;;:::o;16291:143::-;16348:5;16379:6;16373:13;16364:22;;16395:33;16422:5;16395:33;:::i;:::-;16291:143;;;;:::o;16440:351::-;16510:6;16559:2;16547:9;16538:7;16534:23;16530:32;16527:119;;;16565:79;;:::i;:::-;16527:119;16685:1;16710:64;16766:7;16757:6;16746:9;16742:22;16710:64;:::i;:::-;16700:74;;16656:128;16440:351;;;;:::o;16797:180::-;16845:77;16842:1;16835:88;16942:4;16939:1;16932:15;16966:4;16963:1;16956:15;16983:180;17031:77;17028:1;17021:88;17128:4;17125:1;17118:15;17152:4;17149:1;17142:15;17169:233;17208:3;17231:24;17249:5;17231:24;:::i;:::-;17222:33;;17277:66;17270:5;17267:77;17264:103;;17347:18;;:::i;:::-;17264:103;17394:1;17387:5;17383:13;17376:20;;17169:233;;;:::o;17408:134::-;17466:9;17499:37;17530:5;17499:37;:::i;:::-;17486:50;;17408:134;;;:::o;17548:147::-;17643:45;17682:5;17643:45;:::i;:::-;17638:3;17631:58;17548:147;;:::o;17701:238::-;17802:4;17840:2;17829:9;17825:18;17817:26;;17853:79;17929:1;17918:9;17914:17;17905:6;17853:79;:::i;:::-;17701:238;;;;:::o;17945:194::-;17985:4;18005:20;18023:1;18005:20;:::i;:::-;18000:25;;18039:20;18057:1;18039:20;:::i;:::-;18034:25;;18083:1;18080;18076:9;18068:17;;18107:1;18101:4;18098:11;18095:37;;;18112:18;;:::i;:::-;18095:37;17945:194;;;;:::o;18145:173::-;18285:25;18281:1;18273:6;18269:14;18262:49;18145:173;:::o;18324:366::-;18466:3;18487:67;18551:2;18546:3;18487:67;:::i;:::-;18480:74;;18563:93;18652:3;18563:93;:::i;:::-;18681:2;18676:3;18672:12;18665:19;;18324:366;;;:::o;18696:419::-;18862:4;18900:2;18889:9;18885:18;18877:26;;18949:9;18943:4;18939:20;18935:1;18924:9;18920:17;18913:47;18977:131;19103:4;18977:131;:::i;:::-;18969:139;;18696:419;;;:::o;19121:152::-;19261:4;19257:1;19249:6;19245:14;19238:28;19121:152;:::o;19279:365::-;19421:3;19442:66;19506:1;19501:3;19442:66;:::i;:::-;19435:73;;19517:93;19606:3;19517:93;:::i;:::-;19635:2;19630:3;19626:12;19619:19;;19279:365;;;:::o;19650:419::-;19816:4;19854:2;19843:9;19839:18;19831:26;;19903:9;19897:4;19893:20;19889:1;19878:9;19874:17;19867:47;19931:131;20057:4;19931:131;:::i;:::-;19923:139;;19650:419;;;:::o;20075:156::-;20215:8;20211:1;20203:6;20199:14;20192:32;20075:156;:::o;20237:365::-;20379:3;20400:66;20464:1;20459:3;20400:66;:::i;:::-;20393:73;;20475:93;20564:3;20475:93;:::i;:::-;20593:2;20588:3;20584:12;20577:19;;20237:365;;;:::o;20608:419::-;20774:4;20812:2;20801:9;20797:18;20789:26;;20861:9;20855:4;20851:20;20847:1;20836:9;20832:17;20825:47;20889:131;21015:4;20889:131;:::i;:::-;20881:139;;20608:419;;;:::o;21033:332::-;21154:4;21192:2;21181:9;21177:18;21169:26;;21205:71;21273:1;21262:9;21258:17;21249:6;21205:71;:::i;:::-;21286:72;21354:2;21343:9;21339:18;21330:6;21286:72;:::i;:::-;21033:332;;;;;:::o;21371:85::-;21416:7;21445:5;21434:16;;21371:85;;;:::o;21462:158::-;21520:9;21553:61;21571:42;21580:32;21606:5;21580:32;:::i;:::-;21571:42;:::i;:::-;21553:61;:::i;:::-;21540:74;;21462:158;;;:::o;21626:147::-;21721:45;21760:5;21721:45;:::i;:::-;21716:3;21709:58;21626:147;;:::o;21779:348::-;21908:4;21946:2;21935:9;21931:18;21923:26;;21959:71;22027:1;22016:9;22012:17;22003:6;21959:71;:::i;:::-;22040:80;22116:2;22105:9;22101:18;22092:6;22040:80;:::i;:::-;21779:348;;;;;:::o;22133:180::-;22181:77;22178:1;22171:88;22278:4;22275:1;22268:15;22302:4;22299:1;22292:15;22319:185;22359:1;22376:20;22394:1;22376:20;:::i;:::-;22371:25;;22410:20;22428:1;22410:20;:::i;:::-;22405:25;;22449:1;22439:35;;22454:18;;:::i;:::-;22439:35;22496:1;22493;22489:9;22484:14;;22319:185;;;;:::o;22510:191::-;22550:3;22569:20;22587:1;22569:20;:::i;:::-;22564:25;;22603:20;22621:1;22603:20;:::i;:::-;22598:25;;22646:1;22643;22639:9;22632:16;;22667:3;22664:1;22661:10;22658:36;;;22674:18;;:::i;:::-;22658:36;22510:191;;;;:::o;22707:177::-;22847:29;22843:1;22835:6;22831:14;22824:53;22707:177;:::o;22890:366::-;23032:3;23053:67;23117:2;23112:3;23053:67;:::i;:::-;23046:74;;23129:93;23218:3;23129:93;:::i;:::-;23247:2;23242:3;23238:12;23231:19;;22890:366;;;:::o;23262:419::-;23428:4;23466:2;23455:9;23451:18;23443:26;;23515:9;23509:4;23505:20;23501:1;23490:9;23486:17;23479:47;23543:131;23669:4;23543:131;:::i;:::-;23535:139;;23262:419;;;:::o;23687:410::-;23727:7;23750:20;23768:1;23750:20;:::i;:::-;23745:25;;23784:20;23802:1;23784:20;:::i;:::-;23779:25;;23839:1;23836;23832:9;23861:30;23879:11;23861:30;:::i;:::-;23850:41;;24040:1;24031:7;24027:15;24024:1;24021:22;24001:1;23994:9;23974:83;23951:139;;24070:18;;:::i;:::-;23951:139;23735:362;23687:410;;;;:::o;24103:220::-;24243:34;24239:1;24231:6;24227:14;24220:58;24312:3;24307:2;24299:6;24295:15;24288:28;24103:220;:::o;24329:366::-;24471:3;24492:67;24556:2;24551:3;24492:67;:::i;:::-;24485:74;;24568:93;24657:3;24568:93;:::i;:::-;24686:2;24681:3;24677:12;24670:19;;24329:366;;;:::o;24701:419::-;24867:4;24905:2;24894:9;24890:18;24882:26;;24954:9;24948:4;24944:20;24940:1;24929:9;24925:17;24918:47;24982:131;25108:4;24982:131;:::i;:::-;24974:139;;24701:419;;;:::o;25126:143::-;25183:5;25214:6;25208:13;25199:22;;25230:33;25257:5;25230:33;:::i;:::-;25126:143;;;;:::o;25275:351::-;25345:6;25394:2;25382:9;25373:7;25369:23;25365:32;25362:119;;;25400:79;;:::i;:::-;25362:119;25520:1;25545:64;25601:7;25592:6;25581:9;25577:22;25545:64;:::i;:::-;25535:74;;25491:128;25275:351;;;;:::o;25632:114::-;25699:6;25733:5;25727:12;25717:22;;25632:114;;;:::o;25752:184::-;25851:11;25885:6;25880:3;25873:19;25925:4;25920:3;25916:14;25901:29;;25752:184;;;;:::o;25942:132::-;26009:4;26032:3;26024:11;;26062:4;26057:3;26053:14;26045:22;;25942:132;;;:::o;26080:108::-;26157:24;26175:5;26157:24;:::i;:::-;26152:3;26145:37;26080:108;;:::o;26194:179::-;26263:10;26284:46;26326:3;26318:6;26284:46;:::i;:::-;26362:4;26357:3;26353:14;26339:28;;26194:179;;;;:::o;26379:113::-;26449:4;26481;26476:3;26472:14;26464:22;;26379:113;;;:::o;26528:732::-;26647:3;26676:54;26724:5;26676:54;:::i;:::-;26746:86;26825:6;26820:3;26746:86;:::i;:::-;26739:93;;26856:56;26906:5;26856:56;:::i;:::-;26935:7;26966:1;26951:284;26976:6;26973:1;26970:13;26951:284;;;27052:6;27046:13;27079:63;27138:3;27123:13;27079:63;:::i;:::-;27072:70;;27165:60;27218:6;27165:60;:::i;:::-;27155:70;;27011:224;26998:1;26995;26991:9;26986:14;;26951:284;;;26955:14;27251:3;27244:10;;26652:608;;;26528:732;;;;:::o;27266:831::-;27529:4;27567:3;27556:9;27552:19;27544:27;;27581:71;27649:1;27638:9;27634:17;27625:6;27581:71;:::i;:::-;27662:80;27738:2;27727:9;27723:18;27714:6;27662:80;:::i;:::-;27789:9;27783:4;27779:20;27774:2;27763:9;27759:18;27752:48;27817:108;27920:4;27911:6;27817:108;:::i;:::-;27809:116;;27935:72;28003:2;27992:9;27988:18;27979:6;27935:72;:::i;:::-;28017:73;28085:3;28074:9;28070:19;28061:6;28017:73;:::i;:::-;27266:831;;;;;;;;:::o;28103:807::-;28352:4;28390:3;28379:9;28375:19;28367:27;;28404:71;28472:1;28461:9;28457:17;28448:6;28404:71;:::i;:::-;28485:72;28553:2;28542:9;28538:18;28529:6;28485:72;:::i;:::-;28567:80;28643:2;28632:9;28628:18;28619:6;28567:80;:::i;:::-;28657;28733:2;28722:9;28718:18;28709:6;28657:80;:::i;:::-;28747:73;28815:3;28804:9;28800:19;28791:6;28747:73;:::i;:::-;28830;28898:3;28887:9;28883:19;28874:6;28830:73;:::i;:::-;28103:807;;;;;;;;;:::o;28916:663::-;29004:6;29012;29020;29069:2;29057:9;29048:7;29044:23;29040:32;29037:119;;;29075:79;;:::i;:::-;29037:119;29195:1;29220:64;29276:7;29267:6;29256:9;29252:22;29220:64;:::i;:::-;29210:74;;29166:128;29333:2;29359:64;29415:7;29406:6;29395:9;29391:22;29359:64;:::i;:::-;29349:74;;29304:129;29472:2;29498:64;29554:7;29545:6;29534:9;29530:22;29498:64;:::i;:::-;29488:74;;29443:129;28916:663;;;;;:::o
Swarm Source
ipfs://349f14ed693eed377958f6c7bfe0530f161e09cf147ca326853dd35469cad30b
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.