ERC-20
Overview
Max Total Supply
1,000,000,000,000 KITSUNE
Holders
14
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,902,261,847.107124994 KITSUNEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Kitsune
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-08-23 */ /* Tokenomics 1. 1,000,000,000,000 (one trillion) Total Supply 2. Fair launch for everyone! 3. 1% max buy limit on launch 4. 0.01% max sell limit on launch (anti-dumping) 5. buy and sell limits will be readjusted based on Telegram member votes. 6. 10% fee for all transactions. Double fee since the 2nd sells within 24 hours. 7. 3%-6% redistribution to holders on all transactions 8. 2%-4% burnt tokens on all transactions. 9. bigger rewards to holders and believers. 10. TO THE MOON...KITSUNeil Armstrong. For further information, please reach out to us! Website: https://www.kitsune-token.com Telegram:https://t.me/kitsune_foxxy Twitter: https://twitter.com/Kitsunetok SPDX-License-Identifier: Unlicensed */ pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); } contract Kitsune is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Kitsune"; string private constant _symbol = "KITSUNE"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _taxFee = 3; uint256 private _burnFee = 2; uint256 private _teamFee = 5; mapping(address => bool) private bots; mapping(address => uint256) private buycooldown; mapping(address => uint256) private sellcooldown; mapping(address => uint256) private firstsell; mapping(address => uint256) private sellnumber; address payable private _teamAddress; address payable private _marketingFunds; address public constant _deadAddress = 0x000000000000000000000000000000000000dEaD; address payable public _burnAddress = payable(_deadAddress); IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private inSwap = false; uint256 private _maxBuyAmount = 10000000000 * 10**9; uint256 private _maxSellAmount = 100000000 * 10**9; event MaxBuyAmountUpdated(uint256 _maxBuyAmount); event MaxSellAmountUpdated(uint256 _maxSellAmount); event uniswapV2PairUpdated(address uniswapV2Pair); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address payable addr1, address payable addr2) { _teamAddress = addr1; _marketingFunds = addr2; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_teamAddress] = true; _isExcludedFromFee[_burnAddress] = true; _isExcludedFromFee[_marketingFunds] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function UniswapPairAddress () public view returns (address) { return uniswapV2Pair; } function UniswapRouter () public view returns (IUniswapV2Router02){ return uniswapV2Router; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { if(_isExcludedFromFee[recipient]){ _transfer(_msgSender(), recipient, amount); return true; } else{ uint256 burnamount = amount.mul(_burnFee).div(100); _transfer(_msgSender(), _burnAddress, burnamount); uint256 newamount = amount.sub(burnamount); _transfer(_msgSender(), recipient, newamount); return true; } } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance")); return true; } function setUniswapPair (address payable _uniswapV2Pair) external onlyOwner() { uniswapV2Pair = _uniswapV2Pair; emit uniswapV2PairUpdated(_uniswapV2Pair); } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require(rAmount <= _rTotal,"Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_taxFee == 0 && _burnFee ==0 && _teamFee == 0) return; _taxFee = 0; _burnFee = 0; _teamFee = 0; } function restoreAllFee() private { _taxFee = 3; _burnFee = 2; _teamFee = 5; } function setFee(uint256 multiplier) private { if (multiplier > 1) { _taxFee = 6; _burnFee = 4; _teamFee = 10; } else { restoreAllFee(); } } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { if (from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router)) { require(_msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair,"ERR: Uniswap only"); } require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router)) { require(amount <= _maxBuyAmount); require(buycooldown[to] < block.timestamp); buycooldown[to] = block.timestamp + (30 seconds); restoreAllFee(); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair) { require(amount <= _maxSellAmount); require(sellcooldown[from] < block.timestamp); if(firstsell[from] + (1 days) < block.timestamp){ sellnumber[from] = 0; } if (sellnumber[from] == 0) { sellnumber[from]++; firstsell[from] = block.timestamp; sellcooldown[from] = block.timestamp + (30 seconds); } else if (sellnumber[from] >= 1) { sellnumber[from]++; sellcooldown[from] = block.timestamp + (30 seconds); } swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } setFee(sellnumber[from]); } } bool takeFee = true; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); restoreAllFee; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function sendETHToFee(uint256 amount) private { _teamAddress.transfer(amount.div(2)); _marketingFunds.transfer(amount.div(2)); } function manualswap() external { require(_msgSender() == _teamAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _teamAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _burnFee, _teamFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 burnFee, uint256 teamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100-burnFee); uint256 tTeam = tAmount.mul(teamFee).div(100-burnFee); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setMaxBuyPercent(uint256 maxBuyPercent) external onlyOwner() { require(maxBuyPercent > 0, "Amount must be greater than 0"); _maxBuyAmount = _tTotal.mul(maxBuyPercent).div(10**2); emit MaxBuyAmountUpdated(_maxBuyAmount); } function setMaxSellPercent(uint256 maxSellPercent) external onlyOwner() { require(maxSellPercent > 0, "Amount must be greater than 0"); _maxSellAmount = _tTotal.mul(maxSellPercent).div(10**2); emit MaxSellAmountUpdated(_maxSellAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","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":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"MaxSellAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"uniswapV2Pair","type":"address"}],"name":"uniswapV2PairUpdated","type":"event"},{"inputs":[],"name":"UniswapPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_burnAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuyPercent","type":"uint256"}],"name":"setMaxBuyPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSellPercent","type":"uint256"}],"name":"setMaxSellPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052683635c9adc5dea000006000196200001d9190620006ad565b6000196200002c919062000634565b600655600360085560026009556005600a5561dead601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006014806101000a81548160ff021916908315150217905550678ac7230489e8000060155567016345785d8a0000601655348015620000c057600080fd5b5060405162003c4a38038062003c4a8339818101604052810190620000e69190620005c5565b6000620000f86200057d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460026000620002896200057d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002dd6200058560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005046200057d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200056c919062000617565b60405180910390a35050506200075d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620005bf8162000743565b92915050565b60008060408385031215620005d957600080fd5b6000620005e985828601620005ae565b9250506020620005fc85828601620005ae565b9150509250929050565b6200061181620006a3565b82525050565b60006020820190506200062e600083018462000606565b92915050565b60006200064182620006a3565b91506200064e83620006a3565b925082821015620006645762000663620006e5565b5b828203905092915050565b60006200067c8262000683565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620006ba82620006a3565b9150620006c783620006a3565b925082620006da57620006d962000714565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6200074e816200066f565b81146200075a57600080fd5b50565b6134dd806200076d6000396000f3fe6080604052600436106101235760003560e01c80638a977cee116100a0578063c3c8cd8011610064578063c3c8cd80146103d0578063c7639d80146103e7578063c93eb86614610412578063d5aed6bf1461043d578063dd62ed3e146104665761012a565b80638a977cee146102e95780638da5cb5b1461031257806395d89b411461033d578063a9059cbb14610368578063bd3900c0146103a55761012a565b806335c14228116100e757806335c142281461022a57806359992dbc146102555780636fc3eaec1461027e57806370a0823114610295578063715018a6146102d25761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104a3565b6040516101519190612c33565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612890565b6104e0565b60405161018e9190612bfd565b60405180910390f35b3480156101a357600080fd5b506101ac6104fe565b6040516101b99190612db5565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612841565b61050f565b6040516101f69190612bfd565b60405180910390f35b34801561020b57600080fd5b506102146105e8565b6040516102219190612e2a565b60405180910390f35b34801561023657600080fd5b5061023f6105f1565b60405161024c9190612bac565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906128cc565b61061b565b005b34801561028a57600080fd5b50610293610764565b005b3480156102a157600080fd5b506102bc60048036038101906102b7919061278a565b6107d6565b6040516102c99190612db5565b60405180910390f35b3480156102de57600080fd5b506102e7610827565b005b3480156102f557600080fd5b50610310600480360381019061030b91906128cc565b61097a565b005b34801561031e57600080fd5b50610327610ac3565b6040516103349190612bac565b60405180910390f35b34801561034957600080fd5b50610352610aec565b60405161035f9190612c33565b60405180910390f35b34801561037457600080fd5b5061038f600480360381019061038a9190612890565b610b29565b60405161039c9190612bfd565b60405180910390f35b3480156103b157600080fd5b506103ba610c2e565b6040516103c79190612be2565b60405180910390f35b3480156103dc57600080fd5b506103e5610c54565b005b3480156103f357600080fd5b506103fc610cce565b6040516104099190612c18565b60405180910390f35b34801561041e57600080fd5b50610427610cf8565b6040516104349190612bac565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f91906127dc565b610cfe565b005b34801561047257600080fd5b5061048d60048036038101906104889190612805565b610e0e565b60405161049a9190612db5565b60405180910390f35b60606040518060400160405280600781526020017f4b697473756e6500000000000000000000000000000000000000000000000000815250905090565b60006104f46104ed610e95565b8484610e9d565b6001905092915050565b6000683635c9adc5dea00000905090565b600061051c848484611068565b6105dd84610528610e95565b6105d88560405180606001604052806028815260200161348060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061058e610e95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611af29092919063ffffffff16565b610e9d565b600190509392505050565b60006009905090565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610623610e95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a790612d15565b60405180910390fd5b600081116106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90612cd5565b60405180910390fd5b610722606461071483683635c9adc5dea00000611b5690919063ffffffff16565b611bd190919063ffffffff16565b6016819055507fa0dff8a4e8bcaa27b5a2b64bc312f8b338e362bd6cad89f5fe2ae6b8389fb38a6016546040516107599190612db5565b60405180910390a150565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a5610e95565b73ffffffffffffffffffffffffffffffffffffffff16146107c557600080fd5b60004790506107d381611c1b565b50565b6000610820600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d16565b9050919050565b61082f610e95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b390612d15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610982610e95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690612d15565b60405180910390fd5b60008111610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612cd5565b60405180910390fd5b610a816064610a7383683635c9adc5dea00000611b5690919063ffffffff16565b611bd190919063ffffffff16565b6015819055507fd0459d371e1defb856088ceda9d33bfed2a31a105e0bae2113cdc7dcc9e77e9d601554604051610ab89190612db5565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4b495453554e4500000000000000000000000000000000000000000000000000815250905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9857610b8f610b88610e95565b8484611068565b60019050610c28565b6000610bc26064610bb460095486611b5690919063ffffffff16565b611bd190919063ffffffff16565b9050610bf8610bcf610e95565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611068565b6000610c0d8285611d8490919063ffffffff16565b9050610c21610c1a610e95565b8683611068565b6001925050505b92915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c95610e95565b73ffffffffffffffffffffffffffffffffffffffff1614610cb557600080fd5b6000610cc0306107d6565b9050610ccb81611dce565b50565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61dead81565b610d06610e95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90612d15565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9247f40358a5a35ccb3dc904555aecb5f1c4041d8861cc4a4a66580647526e9d81604051610e039190612bc7565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490612d75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490612c95565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161105b9190612db5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612d55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90612c55565b60405180910390fd5b6000811161118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290612d35565b60405180910390fd5b611193610ac3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120157506111d1610ac3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a2f573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112c85750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113225750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561141e57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611368610e95565b73ffffffffffffffffffffffffffffffffffffffff1614806113de5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c6610e95565b73ffffffffffffffffffffffffffffffffffffffff16145b61141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490612d95565b60405180910390fd5b5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114c25750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114cb57600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115765750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561162e5760155481111561158a57600080fd5b42600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115d557600080fd5b601e426115e29190612e9a565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061162d6120c6565b5b6000611639306107d6565b905060148054906101000a900460ff161580156116a45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a2d576016548211156116b857600080fd5b42600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061170357600080fd5b4262015180600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117529190612e9a565b101561179e576000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156118d457600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611836906130b5565b919050555042600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601e4261188c9190612e9a565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119c2565b6001600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119c157600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061196b906130b5565b9190505550601e4261197d9190612e9a565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6119cb81611dce565b600047905060008111156119e3576119e247611c1b565b5b611a2b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e0565b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ad65750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ae057600090505b611aec84848484612111565b50505050565b6000838311158290611b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b319190612c33565b60405180910390fd5b5060008385611b499190612f7b565b9050809150509392505050565b600080831415611b695760009050611bcb565b60008284611b779190612f21565b9050828482611b869190612ef0565b14611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90612cf5565b60405180910390fd5b809150505b92915050565b6000611c1383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061213e565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c6b600284611bd190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c96573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ce7600284611bd190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d12573d6000803e3d6000fd5b5050565b6000600654821115611d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5490612c75565b60405180910390fd5b6000611d676121a1565b9050611d7c8184611bd190919063ffffffff16565b915050919050565b6000611dc683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611af2565b905092915050565b60016014806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611e595781602001602082028036833780820191505090505b5090503081600081518110611e97577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f3957600080fd5b505afa158015611f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7191906127b3565b81600181518110611fab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061201230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e9d565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612076959493929190612dd0565b600060405180830381600087803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b505050505060006014806101000a81548160ff02191690831515021790555050565b600360088190555060026009819055506005600a81905550565b60018111156121055760066008819055506004600981905550600a808190555061210e565b61210d6120c6565b5b50565b8061211f5761211e6121cc565b5b61212a848484612213565b80612138576121376120c6565b5b50505050565b60008083118290612185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217c9190612c33565b60405180910390fd5b50600083856121949190612ef0565b9050809150509392505050565b60008060006121ae6123de565b915091506121c58183611bd190919063ffffffff16565b9250505090565b60006008541480156121e057506000600954145b80156121ee57506000600a54145b156121f857612211565b600060088190555060006009819055506000600a819055505b565b60008060008060008061222587612440565b95509550955095509550955061228386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061231885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ab90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236481612509565b61236e84836125c6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123cb9190612db5565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea000009050612414683635c9adc5dea00000600654611bd190919063ffffffff16565b82101561243357600654683635c9adc5dea0000093509350505061243c565b81819350935050505b9091565b60008060008060008060008060006124608a600854600954600a54612600565b92509250925060006124706121a1565b905060008060006124838e8787876126ad565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846124ba9190612e9a565b9050838110156124ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f690612cb5565b60405180910390fd5b8091505092915050565b60006125136121a1565b9050600061252a8284611b5690919063ffffffff16565b905061257e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ab90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125db82600654611d8490919063ffffffff16565b6006819055506125f6816007546124ab90919063ffffffff16565b6007819055505050565b6000806000806126378660646126169190612f7b565b612629898b611b5690919063ffffffff16565b611bd190919063ffffffff16565b9050600061266c87606461264b9190612f7b565b61265e888c611b5690919063ffffffff16565b611bd190919063ffffffff16565b9050600061269582612687858d611d8490919063ffffffff16565b611d8490919063ffffffff16565b90508083839550955095505050509450945094915050565b6000806000806126c68589611b5690919063ffffffff16565b905060006126dd8689611b5690919063ffffffff16565b905060006126f48789611b5690919063ffffffff16565b9050600061271d8261270f8587611d8490919063ffffffff16565b611d8490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506127458161343a565b92915050565b60008151905061275a8161343a565b92915050565b60008135905061276f81613451565b92915050565b60008135905061278481613468565b92915050565b60006020828403121561279c57600080fd5b60006127aa84828501612736565b91505092915050565b6000602082840312156127c557600080fd5b60006127d38482850161274b565b91505092915050565b6000602082840312156127ee57600080fd5b60006127fc84828501612760565b91505092915050565b6000806040838503121561281857600080fd5b600061282685828601612736565b925050602061283785828601612736565b9150509250929050565b60008060006060848603121561285657600080fd5b600061286486828701612736565b935050602061287586828701612736565b925050604061288686828701612775565b9150509250925092565b600080604083850312156128a357600080fd5b60006128b185828601612736565b92505060206128c285828601612775565b9150509250929050565b6000602082840312156128de57600080fd5b60006128ec84828501612775565b91505092915050565b6000612901838361292b565b60208301905092915050565b61291681613016565b82525050565b61292581612fc1565b82525050565b61293481612faf565b82525050565b61294381612faf565b82525050565b600061295482612e55565b61295e8185612e78565b935061296983612e45565b8060005b8381101561299a57815161298188826128f5565b975061298c83612e6b565b92505060018101905061296d565b5085935050505092915050565b6129b081612fd3565b82525050565b6129bf81613028565b82525050565b6129ce8161304c565b82525050565b60006129df82612e60565b6129e98185612e89565b93506129f9818560208601613082565b612a028161315c565b840191505092915050565b6000612a1a602383612e89565b9150612a258261316d565b604082019050919050565b6000612a3d602a83612e89565b9150612a48826131bc565b604082019050919050565b6000612a60602283612e89565b9150612a6b8261320b565b604082019050919050565b6000612a83601b83612e89565b9150612a8e8261325a565b602082019050919050565b6000612aa6601d83612e89565b9150612ab182613283565b602082019050919050565b6000612ac9602183612e89565b9150612ad4826132ac565b604082019050919050565b6000612aec602083612e89565b9150612af7826132fb565b602082019050919050565b6000612b0f602983612e89565b9150612b1a82613324565b604082019050919050565b6000612b32602583612e89565b9150612b3d82613373565b604082019050919050565b6000612b55602483612e89565b9150612b60826133c2565b604082019050919050565b6000612b78601183612e89565b9150612b8382613411565b602082019050919050565b612b9781612fff565b82525050565b612ba681613009565b82525050565b6000602082019050612bc1600083018461293a565b92915050565b6000602082019050612bdc600083018461290d565b92915050565b6000602082019050612bf7600083018461291c565b92915050565b6000602082019050612c1260008301846129a7565b92915050565b6000602082019050612c2d60008301846129b6565b92915050565b60006020820190508181036000830152612c4d81846129d4565b905092915050565b60006020820190508181036000830152612c6e81612a0d565b9050919050565b60006020820190508181036000830152612c8e81612a30565b9050919050565b60006020820190508181036000830152612cae81612a53565b9050919050565b60006020820190508181036000830152612cce81612a76565b9050919050565b60006020820190508181036000830152612cee81612a99565b9050919050565b60006020820190508181036000830152612d0e81612abc565b9050919050565b60006020820190508181036000830152612d2e81612adf565b9050919050565b60006020820190508181036000830152612d4e81612b02565b9050919050565b60006020820190508181036000830152612d6e81612b25565b9050919050565b60006020820190508181036000830152612d8e81612b48565b9050919050565b60006020820190508181036000830152612dae81612b6b565b9050919050565b6000602082019050612dca6000830184612b8e565b92915050565b600060a082019050612de56000830188612b8e565b612df260208301876129c5565b8181036040830152612e048186612949565b9050612e13606083018561293a565b612e206080830184612b8e565b9695505050505050565b6000602082019050612e3f6000830184612b9d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ea582612fff565b9150612eb083612fff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ee557612ee46130fe565b5b828201905092915050565b6000612efb82612fff565b9150612f0683612fff565b925082612f1657612f1561312d565b5b828204905092915050565b6000612f2c82612fff565b9150612f3783612fff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7057612f6f6130fe565b5b828202905092915050565b6000612f8682612fff565b9150612f9183612fff565b925082821015612fa457612fa36130fe565b5b828203905092915050565b6000612fba82612fdf565b9050919050565b6000612fcc82612fdf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130218261305e565b9050919050565b60006130338261303a565b9050919050565b600061304582612fdf565b9050919050565b600061305782612fff565b9050919050565b600061306982613070565b9050919050565b600061307b82612fdf565b9050919050565b60005b838110156130a0578082015181840152602081019050613085565b838111156130af576000848401525b50505050565b60006130c082612fff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130f3576130f26130fe565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b61344381612faf565b811461344e57600080fd5b50565b61345a81612fc1565b811461346557600080fd5b50565b61347181612fff565b811461347c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206817e6cc6319865ade49b9ba0cb2284798da5f01ab3bba894fa0fd0c665d221f64736f6c63430008040033000000000000000000000000191be783ce9c88273dc1fabde11311f2bd99a6440000000000000000000000002cde9e288c45effc74c20164bcef19b065a95709
Deployed Bytecode
0x6080604052600436106101235760003560e01c80638a977cee116100a0578063c3c8cd8011610064578063c3c8cd80146103d0578063c7639d80146103e7578063c93eb86614610412578063d5aed6bf1461043d578063dd62ed3e146104665761012a565b80638a977cee146102e95780638da5cb5b1461031257806395d89b411461033d578063a9059cbb14610368578063bd3900c0146103a55761012a565b806335c14228116100e757806335c142281461022a57806359992dbc146102555780636fc3eaec1461027e57806370a0823114610295578063715018a6146102d25761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104a3565b6040516101519190612c33565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612890565b6104e0565b60405161018e9190612bfd565b60405180910390f35b3480156101a357600080fd5b506101ac6104fe565b6040516101b99190612db5565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612841565b61050f565b6040516101f69190612bfd565b60405180910390f35b34801561020b57600080fd5b506102146105e8565b6040516102219190612e2a565b60405180910390f35b34801561023657600080fd5b5061023f6105f1565b60405161024c9190612bac565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906128cc565b61061b565b005b34801561028a57600080fd5b50610293610764565b005b3480156102a157600080fd5b506102bc60048036038101906102b7919061278a565b6107d6565b6040516102c99190612db5565b60405180910390f35b3480156102de57600080fd5b506102e7610827565b005b3480156102f557600080fd5b50610310600480360381019061030b91906128cc565b61097a565b005b34801561031e57600080fd5b50610327610ac3565b6040516103349190612bac565b60405180910390f35b34801561034957600080fd5b50610352610aec565b60405161035f9190612c33565b60405180910390f35b34801561037457600080fd5b5061038f600480360381019061038a9190612890565b610b29565b60405161039c9190612bfd565b60405180910390f35b3480156103b157600080fd5b506103ba610c2e565b6040516103c79190612be2565b60405180910390f35b3480156103dc57600080fd5b506103e5610c54565b005b3480156103f357600080fd5b506103fc610cce565b6040516104099190612c18565b60405180910390f35b34801561041e57600080fd5b50610427610cf8565b6040516104349190612bac565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f91906127dc565b610cfe565b005b34801561047257600080fd5b5061048d60048036038101906104889190612805565b610e0e565b60405161049a9190612db5565b60405180910390f35b60606040518060400160405280600781526020017f4b697473756e6500000000000000000000000000000000000000000000000000815250905090565b60006104f46104ed610e95565b8484610e9d565b6001905092915050565b6000683635c9adc5dea00000905090565b600061051c848484611068565b6105dd84610528610e95565b6105d88560405180606001604052806028815260200161348060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061058e610e95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611af29092919063ffffffff16565b610e9d565b600190509392505050565b60006009905090565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610623610e95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a790612d15565b60405180910390fd5b600081116106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90612cd5565b60405180910390fd5b610722606461071483683635c9adc5dea00000611b5690919063ffffffff16565b611bd190919063ffffffff16565b6016819055507fa0dff8a4e8bcaa27b5a2b64bc312f8b338e362bd6cad89f5fe2ae6b8389fb38a6016546040516107599190612db5565b60405180910390a150565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a5610e95565b73ffffffffffffffffffffffffffffffffffffffff16146107c557600080fd5b60004790506107d381611c1b565b50565b6000610820600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d16565b9050919050565b61082f610e95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b390612d15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610982610e95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690612d15565b60405180910390fd5b60008111610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612cd5565b60405180910390fd5b610a816064610a7383683635c9adc5dea00000611b5690919063ffffffff16565b611bd190919063ffffffff16565b6015819055507fd0459d371e1defb856088ceda9d33bfed2a31a105e0bae2113cdc7dcc9e77e9d601554604051610ab89190612db5565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4b495453554e4500000000000000000000000000000000000000000000000000815250905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9857610b8f610b88610e95565b8484611068565b60019050610c28565b6000610bc26064610bb460095486611b5690919063ffffffff16565b611bd190919063ffffffff16565b9050610bf8610bcf610e95565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611068565b6000610c0d8285611d8490919063ffffffff16565b9050610c21610c1a610e95565b8683611068565b6001925050505b92915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c95610e95565b73ffffffffffffffffffffffffffffffffffffffff1614610cb557600080fd5b6000610cc0306107d6565b9050610ccb81611dce565b50565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61dead81565b610d06610e95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90612d15565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9247f40358a5a35ccb3dc904555aecb5f1c4041d8861cc4a4a66580647526e9d81604051610e039190612bc7565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490612d75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490612c95565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161105b9190612db5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90612d55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90612c55565b60405180910390fd5b6000811161118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290612d35565b60405180910390fd5b611193610ac3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120157506111d1610ac3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a2f573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112c85750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113225750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561141e57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611368610e95565b73ffffffffffffffffffffffffffffffffffffffff1614806113de5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c6610e95565b73ffffffffffffffffffffffffffffffffffffffff16145b61141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490612d95565b60405180910390fd5b5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114c25750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114cb57600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115765750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561162e5760155481111561158a57600080fd5b42600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115d557600080fd5b601e426115e29190612e9a565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061162d6120c6565b5b6000611639306107d6565b905060148054906101000a900460ff161580156116a45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a2d576016548211156116b857600080fd5b42600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061170357600080fd5b4262015180600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117529190612e9a565b101561179e576000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156118d457600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611836906130b5565b919050555042600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601e4261188c9190612e9a565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119c2565b6001600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119c157600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061196b906130b5565b9190505550601e4261197d9190612e9a565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6119cb81611dce565b600047905060008111156119e3576119e247611c1b565b5b611a2b600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e0565b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ad65750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ae057600090505b611aec84848484612111565b50505050565b6000838311158290611b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b319190612c33565b60405180910390fd5b5060008385611b499190612f7b565b9050809150509392505050565b600080831415611b695760009050611bcb565b60008284611b779190612f21565b9050828482611b869190612ef0565b14611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90612cf5565b60405180910390fd5b809150505b92915050565b6000611c1383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061213e565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c6b600284611bd190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c96573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ce7600284611bd190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d12573d6000803e3d6000fd5b5050565b6000600654821115611d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5490612c75565b60405180910390fd5b6000611d676121a1565b9050611d7c8184611bd190919063ffffffff16565b915050919050565b6000611dc683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611af2565b905092915050565b60016014806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611e595781602001602082028036833780820191505090505b5090503081600081518110611e97577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f3957600080fd5b505afa158015611f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7191906127b3565b81600181518110611fab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061201230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e9d565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612076959493929190612dd0565b600060405180830381600087803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b505050505060006014806101000a81548160ff02191690831515021790555050565b600360088190555060026009819055506005600a81905550565b60018111156121055760066008819055506004600981905550600a808190555061210e565b61210d6120c6565b5b50565b8061211f5761211e6121cc565b5b61212a848484612213565b80612138576121376120c6565b5b50505050565b60008083118290612185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217c9190612c33565b60405180910390fd5b50600083856121949190612ef0565b9050809150509392505050565b60008060006121ae6123de565b915091506121c58183611bd190919063ffffffff16565b9250505090565b60006008541480156121e057506000600954145b80156121ee57506000600a54145b156121f857612211565b600060088190555060006009819055506000600a819055505b565b60008060008060008061222587612440565b95509550955095509550955061228386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061231885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ab90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236481612509565b61236e84836125c6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123cb9190612db5565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea000009050612414683635c9adc5dea00000600654611bd190919063ffffffff16565b82101561243357600654683635c9adc5dea0000093509350505061243c565b81819350935050505b9091565b60008060008060008060008060006124608a600854600954600a54612600565b92509250925060006124706121a1565b905060008060006124838e8787876126ad565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846124ba9190612e9a565b9050838110156124ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f690612cb5565b60405180910390fd5b8091505092915050565b60006125136121a1565b9050600061252a8284611b5690919063ffffffff16565b905061257e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ab90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125db82600654611d8490919063ffffffff16565b6006819055506125f6816007546124ab90919063ffffffff16565b6007819055505050565b6000806000806126378660646126169190612f7b565b612629898b611b5690919063ffffffff16565b611bd190919063ffffffff16565b9050600061266c87606461264b9190612f7b565b61265e888c611b5690919063ffffffff16565b611bd190919063ffffffff16565b9050600061269582612687858d611d8490919063ffffffff16565b611d8490919063ffffffff16565b90508083839550955095505050509450945094915050565b6000806000806126c68589611b5690919063ffffffff16565b905060006126dd8689611b5690919063ffffffff16565b905060006126f48789611b5690919063ffffffff16565b9050600061271d8261270f8587611d8490919063ffffffff16565b611d8490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506127458161343a565b92915050565b60008151905061275a8161343a565b92915050565b60008135905061276f81613451565b92915050565b60008135905061278481613468565b92915050565b60006020828403121561279c57600080fd5b60006127aa84828501612736565b91505092915050565b6000602082840312156127c557600080fd5b60006127d38482850161274b565b91505092915050565b6000602082840312156127ee57600080fd5b60006127fc84828501612760565b91505092915050565b6000806040838503121561281857600080fd5b600061282685828601612736565b925050602061283785828601612736565b9150509250929050565b60008060006060848603121561285657600080fd5b600061286486828701612736565b935050602061287586828701612736565b925050604061288686828701612775565b9150509250925092565b600080604083850312156128a357600080fd5b60006128b185828601612736565b92505060206128c285828601612775565b9150509250929050565b6000602082840312156128de57600080fd5b60006128ec84828501612775565b91505092915050565b6000612901838361292b565b60208301905092915050565b61291681613016565b82525050565b61292581612fc1565b82525050565b61293481612faf565b82525050565b61294381612faf565b82525050565b600061295482612e55565b61295e8185612e78565b935061296983612e45565b8060005b8381101561299a57815161298188826128f5565b975061298c83612e6b565b92505060018101905061296d565b5085935050505092915050565b6129b081612fd3565b82525050565b6129bf81613028565b82525050565b6129ce8161304c565b82525050565b60006129df82612e60565b6129e98185612e89565b93506129f9818560208601613082565b612a028161315c565b840191505092915050565b6000612a1a602383612e89565b9150612a258261316d565b604082019050919050565b6000612a3d602a83612e89565b9150612a48826131bc565b604082019050919050565b6000612a60602283612e89565b9150612a6b8261320b565b604082019050919050565b6000612a83601b83612e89565b9150612a8e8261325a565b602082019050919050565b6000612aa6601d83612e89565b9150612ab182613283565b602082019050919050565b6000612ac9602183612e89565b9150612ad4826132ac565b604082019050919050565b6000612aec602083612e89565b9150612af7826132fb565b602082019050919050565b6000612b0f602983612e89565b9150612b1a82613324565b604082019050919050565b6000612b32602583612e89565b9150612b3d82613373565b604082019050919050565b6000612b55602483612e89565b9150612b60826133c2565b604082019050919050565b6000612b78601183612e89565b9150612b8382613411565b602082019050919050565b612b9781612fff565b82525050565b612ba681613009565b82525050565b6000602082019050612bc1600083018461293a565b92915050565b6000602082019050612bdc600083018461290d565b92915050565b6000602082019050612bf7600083018461291c565b92915050565b6000602082019050612c1260008301846129a7565b92915050565b6000602082019050612c2d60008301846129b6565b92915050565b60006020820190508181036000830152612c4d81846129d4565b905092915050565b60006020820190508181036000830152612c6e81612a0d565b9050919050565b60006020820190508181036000830152612c8e81612a30565b9050919050565b60006020820190508181036000830152612cae81612a53565b9050919050565b60006020820190508181036000830152612cce81612a76565b9050919050565b60006020820190508181036000830152612cee81612a99565b9050919050565b60006020820190508181036000830152612d0e81612abc565b9050919050565b60006020820190508181036000830152612d2e81612adf565b9050919050565b60006020820190508181036000830152612d4e81612b02565b9050919050565b60006020820190508181036000830152612d6e81612b25565b9050919050565b60006020820190508181036000830152612d8e81612b48565b9050919050565b60006020820190508181036000830152612dae81612b6b565b9050919050565b6000602082019050612dca6000830184612b8e565b92915050565b600060a082019050612de56000830188612b8e565b612df260208301876129c5565b8181036040830152612e048186612949565b9050612e13606083018561293a565b612e206080830184612b8e565b9695505050505050565b6000602082019050612e3f6000830184612b9d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ea582612fff565b9150612eb083612fff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ee557612ee46130fe565b5b828201905092915050565b6000612efb82612fff565b9150612f0683612fff565b925082612f1657612f1561312d565b5b828204905092915050565b6000612f2c82612fff565b9150612f3783612fff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7057612f6f6130fe565b5b828202905092915050565b6000612f8682612fff565b9150612f9183612fff565b925082821015612fa457612fa36130fe565b5b828203905092915050565b6000612fba82612fdf565b9050919050565b6000612fcc82612fdf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130218261305e565b9050919050565b60006130338261303a565b9050919050565b600061304582612fdf565b9050919050565b600061305782612fff565b9050919050565b600061306982613070565b9050919050565b600061307b82612fdf565b9050919050565b60005b838110156130a0578082015181840152602081019050613085565b838111156130af576000848401525b50505050565b60006130c082612fff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130f3576130f26130fe565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b61344381612faf565b811461344e57600080fd5b50565b61345a81612fc1565b811461346557600080fd5b50565b61347181612fff565b811461347c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206817e6cc6319865ade49b9ba0cb2284798da5f01ab3bba894fa0fd0c665d221f64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000191be783ce9c88273dc1fabde11311f2bd99a6440000000000000000000000002cde9e288c45effc74c20164bcef19b065a95709
-----Decoded View---------------
Arg [0] : addr1 (address): 0x191be783CE9C88273dC1FaBde11311f2Bd99A644
Arg [1] : addr2 (address): 0x2Cde9e288C45efFc74c20164bcEF19b065A95709
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000191be783ce9c88273dc1fabde11311f2bd99a644
Arg [1] : 0000000000000000000000002cde9e288c45effc74c20164bcef19b065a95709
Deployed Bytecode Sourcemap
4236:12447:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6643:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8095:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6920:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8264:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6829:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7027:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16411:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13058:191;;;;;;;;;;;;;:::i;:::-;;7260:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3289:148;;;;;;;;;;;;;:::i;:::-;;16141:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3075:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6734:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7406:530;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5434:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12858:192;;;;;;;;;;;;;:::i;:::-;;7139:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5346:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8584:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7944:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6643:83;6680:13;6713:5;;;;;;;;;;;;;;;;;6706:12;;6643:83;:::o;8095:161::-;8170:4;8187:39;8196:12;:10;:12::i;:::-;8210:7;8219:6;8187:8;:39::i;:::-;8244:4;8237:11;;8095:161;;;;:::o;6920:95::-;6973:7;4778:21;6993:14;;6920:95;:::o;8264:310::-;8362:4;8379:36;8389:6;8397:9;8408:6;8379:9;:36::i;:::-;8426:118;8435:6;8442:12;:10;:12::i;:::-;8455:88;8493:6;8455:88;;;;;;;;;;;;;;;;;:11;:19;8467:6;8455:19;;;;;;;;;;;;;;;:33;8475:12;:10;:12::i;:::-;8455:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;8426:8;:118::i;:::-;8562:4;8555:11;;8264:310;;;;;:::o;6829:83::-;6870:5;4454:1;6888:16;;6829:83;:::o;7027:100::-;7079:7;7106:13;;;;;;;;;;;7099:20;;7027:100;:::o;16411:269::-;3212:12;:10;:12::i;:::-;3202:22;;:6;;;;;;;;;;:22;;;3194:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16519:1:::1;16502:14;:18;16494:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16582:38;16614:5;16582:27;16594:14;4778:21;16582:11;;:27;;;;:::i;:::-;:31;;:38;;;;:::i;:::-;16565:14;:55;;;;16636:36;16657:14;;16636:36;;;;;;:::i;:::-;;;;;;;;16411:269:::0;:::o;13058:191::-;13124:12;;;;;;;;;;;13108:28;;:12;:10;:12::i;:::-;:28;;;13100:37;;;;;;13148:26;13177:21;13148:50;;13209:32;13222:18;13209:12;:32::i;:::-;13058:191;:::o;7260:138::-;7326:7;7353:37;7373:7;:16;7381:7;7373:16;;;;;;;;;;;;;;;;7353:19;:37::i;:::-;7346:44;;7260:138;;;:::o;3289:148::-;3212:12;:10;:12::i;:::-;3202:22;;:6;;;;;;;;;;:22;;;3194:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3396:1:::1;3359:40;;3380:6;::::0;::::1;;;;;;;;3359:40;;;;;;;;;;;;3427:1;3410:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3289:148::o:0;16141:262::-;3212:12;:10;:12::i;:::-;3202:22;;:6;;;;;;;;;;:22;;;3194:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16246:1:::1;16230:13;:17;16222:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16308:37;16339:5;16308:26;16320:13;4778:21;16308:11;;:26;;;;:::i;:::-;:30;;:37;;;;:::i;:::-;16292:13;:53;;;;16361:34;16381:13;;16361:34;;;;;;:::i;:::-;;;;;;;;16141:262:::0;:::o;3075:79::-;3113:7;3140:6;;;;;;;;;;;3133:13;;3075:79;:::o;6734:87::-;6773:13;6806:7;;;;;;;;;;;;;;;;;6799:14;;6734:87;:::o;7406:530::-;7484:4;7504:18;:29;7523:9;7504:29;;;;;;;;;;;;;;;;;;;;;;;;;7501:426;;;7549:42;7559:12;:10;:12::i;:::-;7573:9;7584:6;7549:9;:42::i;:::-;7613:4;7606:11;;;;7501:426;7658:18;7679:29;7704:3;7679:20;7690:8;;7679:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;7658:50;;7723:49;7733:12;:10;:12::i;:::-;7747;;;;;;;;;;;7761:10;7723:9;:49::i;:::-;7787:17;7807:22;7818:10;7807:6;:10;;:22;;;;:::i;:::-;7787:42;;7844:45;7854:12;:10;:12::i;:::-;7868:9;7879;7844;:45::i;:::-;7911:4;7904:11;;;;7406:530;;;;;:::o;5434:59::-;;;;;;;;;;;;;:::o;12858:192::-;12924:12;;;;;;;;;;;12908:28;;:12;:10;:12::i;:::-;:28;;;12900:37;;;;;;12948:23;12974:24;12992:4;12974:9;:24::i;:::-;12948:50;;13009:33;13026:15;13009:16;:33::i;:::-;12858:192;:::o;7139:107::-;7186:18;7223:15;;;;;;;;;;;7216:22;;7139:107;:::o;5346:81::-;5385:42;5346:81;:::o;8584:179::-;3212:12;:10;:12::i;:::-;3202:22;;:6;;;;;;;;;;:22;;;3194:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8689:14:::1;8673:13;;:30;;;;;;;;;;;;;;;;;;8719:36;8740:14;8719:36;;;;;;:::i;:::-;;;;;;;;8584:179:::0;:::o;7944:143::-;8025:7;8052:11;:18;8064:5;8052:18;;;;;;;;;;;;;;;:27;8071:7;8052:27;;;;;;;;;;;;;;;;8045:34;;7944:143;;;;:::o;796:98::-;849:7;876:10;869:17;;796:98;:::o;9583:335::-;9693:1;9676:19;;:5;:19;;;;9668:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9774:1;9755:21;;:7;:21;;;;9747:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9856:6;9826:11;:18;9838:5;9826:18;;;;;;;;;;;;;;;:27;9845:7;9826:27;;;;;;;;;;;;;;;:36;;;;9894:7;9878:32;;9887:5;9878:32;;;9903:6;9878:32;;;;;;:::i;:::-;;;;;;;;9583:335;;;:::o;9926:2344::-;10030:1;10014:18;;:4;:18;;;;10006:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10107:1;10093:16;;:2;:16;;;;10085:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10177:1;10168:6;:10;10160:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10249:7;:5;:7::i;:::-;10241:15;;:4;:15;;;;:32;;;;;10266:7;:5;:7::i;:::-;10260:13;;:2;:13;;;;10241:32;10237:1808;;;10312:4;10296:21;;:4;:21;;;;:44;;;;;10335:4;10321:19;;:2;:19;;;;10296:44;:80;;;;;10360:15;;;;;;;;;;;10344:32;;:4;:32;;;;10296:80;:114;;;;;10394:15;;;;;;;;;;;10380:30;;:2;:30;;;;10296:114;10292:261;;;10467:15;;;;;;;;;;;10443:40;;:12;:10;:12::i;:::-;:40;;;:73;;;;10503:13;;;;;;;;;;;10487:29;;:12;:10;:12::i;:::-;:29;;;10443:73;10435:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;10292:261;10590:4;:10;10595:4;10590:10;;;;;;;;;;;;;;;;;;;;;;;;;10589:11;:24;;;;;10605:4;:8;10610:2;10605:8;;;;;;;;;;;;;;;;;;;;;;;;;10604:9;10589:24;10581:33;;;;;;10641:13;;;;;;;;;;;10633:21;;:4;:21;;;:55;;;;;10672:15;;;;;;;;;;;10658:30;;:2;:30;;;;10633:55;10629:290;;;10727:13;;10717:6;:23;;10709:32;;;;;;10786:15;10768:11;:15;10780:2;10768:15;;;;;;;;;;;;;;;;:33;10760:42;;;;;;10858:10;10839:15;:30;;;;:::i;:::-;10821:11;:15;10833:2;10821:15;;;;;;;;;;;;;;;:48;;;;10888:15;:13;:15::i;:::-;10629:290;10933:28;10964:24;10982:4;10964:9;:24::i;:::-;10933:55;;11008:6;;;;;;;;;;11007:7;:32;;;;;11026:13;;;;;;;;;;;11018:21;;:4;:21;;;;11007:32;11003:1031;;;11078:14;;11068:6;:24;;11060:33;;;;;;11141:15;11120:12;:18;11133:4;11120:18;;;;;;;;;;;;;;;;:36;11112:45;;;;;;11208:15;11198:6;11179:9;:15;11189:4;11179:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;:44;11176:111;;;11266:1;11247:10;:16;11258:4;11247:16;;;;;;;;;;;;;;;:20;;;;11176:111;11329:1;11309:10;:16;11320:4;11309:16;;;;;;;;;;;;;;;;:21;11305:403;;;11355:10;:16;11366:4;11355:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;11414:15;11396:9;:15;11406:4;11396:15;;;;;;;;;;;;;;;:33;;;;11492:10;11473:15;:30;;;;:::i;:::-;11452:12;:18;11465:4;11452:18;;;;;;;;;;;;;;;:51;;;;11305:403;;;11570:1;11550:10;:16;11561:4;11550:16;;;;;;;;;;;;;;;;:21;11546:162;;11596:10;:16;11607:4;11596:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;11677:10;11658:15;:30;;;;:::i;:::-;11637:12;:18;11650:4;11637:18;;;;;;;;;;;;;;;:51;;;;11546:162;11305:403;11744:38;11761:20;11744:16;:38::i;:::-;11801:26;11830:21;11801:50;;11895:1;11874:18;:22;11870:106;;;11921:35;11934:21;11921:12;:35::i;:::-;11870:106;11994:24;12001:10;:16;12012:4;12001:16;;;;;;;;;;;;;;;;11994:6;:24::i;:::-;11003:1031;;10237:1808;;12055:12;12070:4;12055:19;;12091:18;:24;12110:4;12091:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12119:18;:22;12138:2;12119:22;;;;;;;;;;;;;;;;;;;;;;;;;12091:50;12087:98;;;12168:5;12158:15;;12087:98;12197:41;12212:4;12218:2;12222:6;12230:7;12197:14;:41::i;:::-;9926:2344;;;;:::o;1933:190::-;2019:7;2052:1;2047;:6;;2055:12;2039:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2079:9;2095:1;2091;:5;;;;:::i;:::-;2079:17;;2114:1;2107:8;;;1933:190;;;;;:::o;2131:246::-;2189:7;2218:1;2213;:6;2209:47;;;2243:1;2236:8;;;;2209:47;2266:9;2282:1;2278;:5;;;;:::i;:::-;2266:17;;2311:1;2306;2302;:5;;;;:::i;:::-;:10;2294:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2368:1;2361:8;;;2131:246;;;;;:::o;2385:132::-;2443:7;2470:39;2474:1;2477;2470:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2463:46;;2385:132;;;;:::o;12693:151::-;12750:12;;;;;;;;;;;:21;;:36;12772:13;12783:1;12772:6;:10;;:13;;;;:::i;:::-;12750:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12797:15;;;;;;;;;;;:24;;:39;12822:13;12833:1;12822:6;:10;;:13;;;;:::i;:::-;12797:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12693:151;:::o;8773:253::-;8841:7;8880;;8869;:18;;8861:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;8944:19;8966:10;:8;:10::i;:::-;8944:32;;8994:24;9006:11;8994:7;:11;;:24;;;;:::i;:::-;8987:31;;;8773:253;;;:::o;1789:136::-;1847:7;1874:43;1878:1;1881;1874:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1867:50;;1789:136;;;;:::o;12278:407::-;5943:4;5934:6;;:13;;;;;;;;;;;;;;;;;;12356:21:::1;12394:1;12380:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12356:40;;12425:4;12407;12412:1;12407:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12451:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12441:4;12446:1;12441:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;12484:62;12501:4;12516:15;;;;;;;;;;;12534:11;12484:8;:62::i;:::-;12557:15;;;;;;;;;;;:66;;;12624:11;12637:1;12640:4;12654;12661:15;12557:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5958:1;5979:5:::0;5970:6;;:14;;;;;;;;;;;;;;;;;;12278:407;:::o;9222:109::-;9276:1;9266:7;:11;;;;9299:1;9288:8;:12;;;;9322:1;9311:8;:12;;;;9222:109::o;9343:232::-;9415:1;9402:10;:14;9398:170;;;9443:1;9433:7;:11;;;;9470:1;9459:8;:12;;;;9497:2;9486:8;:13;;;;9398:170;;;9541:15;:13;:15::i;:::-;9398:170;9343:232;:::o;13257:239::-;13370:7;13365:28;;13379:14;:12;:14::i;:::-;13365:28;13404:44;13422:6;13430:9;13441:6;13404:17;:44::i;:::-;13464:7;13459:29;;13473:15;:13;:15::i;:::-;13459:29;13257:239;;;;:::o;2525:189::-;2611:7;2643:1;2639;:5;2646:12;2631:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2670:9;2686:1;2682;:5;;;;:::i;:::-;2670:17;;2705:1;2698:8;;;2525:189;;;;;:::o;15704:164::-;15746:7;15767:15;15784;15803:19;:17;:19::i;:::-;15766:56;;;;15840:20;15852:7;15840;:11;;:20;;;;:::i;:::-;15833:27;;;;15704:164;:::o;9038:176::-;9096:1;9085:7;;:12;:28;;;;;9112:1;9101:8;;:12;9085:28;:45;;;;;9129:1;9117:8;;:13;9085:45;9081:58;;;9132:7;;9081:58;9159:1;9149:7;:11;;;;9182:1;9171:8;:12;;;;9205:1;9194:8;:12;;;;9038:176;:::o;13504:487::-;13603:15;13620:23;13645:12;13659:23;13684:12;13698:13;13715:19;13726:7;13715:10;:19::i;:::-;13602:132;;;;;;;;;;;;13763:28;13783:7;13763;:15;13771:6;13763:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13745:7;:15;13753:6;13745:15;;;;;;;;;;;;;;;:46;;;;13823:39;13846:15;13823:7;:18;13831:9;13823:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13802:7;:18;13810:9;13802:18;;;;;;;;;;;;;;;:60;;;;13873:16;13883:5;13873:9;:16::i;:::-;13900:23;13912:4;13918;13900:11;:23::i;:::-;13956:9;13939:44;;13948:6;13939:44;;;13967:15;13939:44;;;;;;:::i;:::-;;;;;;;;13504:487;;;;;;;;;:::o;15876:257::-;15927:7;15936;15956:15;15974:7;;15956:25;;15992:15;4778:21;15992:25;;16042:20;4778:21;16042:7;;:11;;:20;;;;:::i;:::-;16032:7;:30;16028:61;;;16072:7;;4778:21;16064:25;;;;;;;;16028:61;16108:7;16117;16100:25;;;;;;15876:257;;;:::o;14410:477::-;14469:7;14478;14487;14496;14505;14514;14535:23;14560:12;14574:13;14591:49;14603:7;14612;;14621:8;;14631;;14591:11;:49::i;:::-;14534:106;;;;;;14651:19;14673:10;:8;:10::i;:::-;14651:32;;14695:15;14712:23;14737:12;14753:46;14765:7;14774:4;14780:5;14787:11;14753;:46::i;:::-;14694:105;;;;;;14818:7;14827:15;14844:4;14850:15;14867:4;14873:5;14810:69;;;;;;;;;;;;;;;;;;;14410:477;;;;;;;:::o;1602:179::-;1660:7;1680:9;1696:1;1692;:5;;;;:::i;:::-;1680:17;;1721:1;1716;:6;;1708:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1772:1;1765:8;;;1602:179;;;;:::o;13999:211::-;14052:19;14074:10;:8;:10::i;:::-;14052:32;;14095:13;14111:22;14121:11;14111:5;:9;;:22;;;;:::i;:::-;14095:38;;14169:33;14196:5;14169:7;:22;14185:4;14169:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14144:7;:22;14160:4;14144:22;;;;;;;;;;;;;;;:58;;;;13999:211;;;:::o;14218:147::-;14296:17;14308:4;14296:7;;:11;;:17;;;;:::i;:::-;14286:7;:27;;;;14337:20;14352:4;14337:10;;:14;;:20;;;;:::i;:::-;14324:10;:33;;;;14218:147;;:::o;14895:384::-;15005:7;15014;15023;15043:12;15058:36;15086:7;15082:3;:11;;;;:::i;:::-;15058:19;15070:6;15058:7;:11;;:19;;;;:::i;:::-;:23;;:36;;;;:::i;:::-;15043:51;;15105:13;15121:37;15150:7;15146:3;:11;;;;:::i;:::-;15121:20;15133:7;15121;:11;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;15105:53;;15169:23;15195:28;15217:5;15195:17;15207:4;15195:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15169:54;;15242:15;15259:4;15265:5;15234:37;;;;;;;;;14895:384;;;;;;;;:::o;15287:409::-;15397:7;15406;15415;15435:15;15453:24;15465:11;15453:7;:11;;:24;;;;:::i;:::-;15435:42;;15488:12;15503:21;15512:11;15503:4;:8;;:21;;;;:::i;:::-;15488:36;;15535:13;15551:22;15561:11;15551:5;:9;;:22;;;;:::i;:::-;15535:38;;15584:23;15610:28;15632:5;15610:17;15622:4;15610:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15584:54;;15657:7;15666:15;15683:4;15649:39;;;;;;;;;;15287:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:139::-;508:5;546:6;533:20;524:29;;562:33;589:5;562:33;:::i;:::-;514:87;;;;:::o;607:262::-;666:6;715:2;703:9;694:7;690:23;686:32;683:2;;;731:1;728;721:12;683:2;774:1;799:53;844:7;835:6;824:9;820:22;799:53;:::i;:::-;789:63;;745:117;673:196;;;;:::o;875:284::-;945:6;994:2;982:9;973:7;969:23;965:32;962:2;;;1010:1;1007;1000:12;962:2;1053:1;1078:64;1134:7;1125:6;1114:9;1110:22;1078:64;:::i;:::-;1068:74;;1024:128;952:207;;;;:::o;1165:278::-;1232:6;1281:2;1269:9;1260:7;1256:23;1252:32;1249:2;;;1297:1;1294;1287:12;1249:2;1340:1;1365:61;1418:7;1409:6;1398:9;1394:22;1365:61;:::i;:::-;1355:71;;1311:125;1239:204;;;;:::o;1449:407::-;1517:6;1525;1574:2;1562:9;1553:7;1549:23;1545:32;1542:2;;;1590:1;1587;1580:12;1542:2;1633:1;1658:53;1703:7;1694:6;1683:9;1679:22;1658:53;:::i;:::-;1648:63;;1604:117;1760:2;1786:53;1831:7;1822:6;1811:9;1807:22;1786:53;:::i;:::-;1776:63;;1731:118;1532:324;;;;;:::o;1862:552::-;1939:6;1947;1955;2004:2;1992:9;1983:7;1979:23;1975:32;1972:2;;;2020:1;2017;2010:12;1972:2;2063:1;2088:53;2133:7;2124:6;2113:9;2109:22;2088:53;:::i;:::-;2078:63;;2034:117;2190:2;2216:53;2261:7;2252:6;2241:9;2237:22;2216:53;:::i;:::-;2206:63;;2161:118;2318:2;2344:53;2389:7;2380:6;2369:9;2365:22;2344:53;:::i;:::-;2334:63;;2289:118;1962:452;;;;;:::o;2420:407::-;2488:6;2496;2545:2;2533:9;2524:7;2520:23;2516:32;2513:2;;;2561:1;2558;2551:12;2513:2;2604:1;2629:53;2674:7;2665:6;2654:9;2650:22;2629:53;:::i;:::-;2619:63;;2575:117;2731:2;2757:53;2802:7;2793:6;2782:9;2778:22;2757:53;:::i;:::-;2747:63;;2702:118;2503:324;;;;;:::o;2833:262::-;2892:6;2941:2;2929:9;2920:7;2916:23;2912:32;2909:2;;;2957:1;2954;2947:12;2909:2;3000:1;3025:53;3070:7;3061:6;3050:9;3046:22;3025:53;:::i;:::-;3015:63;;2971:117;2899:196;;;;:::o;3101:179::-;3170:10;3191:46;3233:3;3225:6;3191:46;:::i;:::-;3269:4;3264:3;3260:14;3246:28;;3181:99;;;;:::o;3286:147::-;3381:45;3420:5;3381:45;:::i;:::-;3376:3;3369:58;3359:74;;:::o;3439:142::-;3542:32;3568:5;3542:32;:::i;:::-;3537:3;3530:45;3520:61;;:::o;3587:108::-;3664:24;3682:5;3664:24;:::i;:::-;3659:3;3652:37;3642:53;;:::o;3701:118::-;3788:24;3806:5;3788:24;:::i;:::-;3783:3;3776:37;3766:53;;:::o;3855:732::-;3974:3;4003:54;4051:5;4003:54;:::i;:::-;4073:86;4152:6;4147:3;4073:86;:::i;:::-;4066:93;;4183:56;4233:5;4183:56;:::i;:::-;4262:7;4293:1;4278:284;4303:6;4300:1;4297:13;4278:284;;;4379:6;4373:13;4406:63;4465:3;4450:13;4406:63;:::i;:::-;4399:70;;4492:60;4545:6;4492:60;:::i;:::-;4482:70;;4338:224;4325:1;4322;4318:9;4313:14;;4278:284;;;4282:14;4578:3;4571:10;;3979:608;;;;;;;:::o;4593:109::-;4674:21;4689:5;4674:21;:::i;:::-;4669:3;4662:34;4652:50;;:::o;4708:183::-;4821:63;4878:5;4821:63;:::i;:::-;4816:3;4809:76;4799:92;;:::o;4897:147::-;4992:45;5031:5;4992:45;:::i;:::-;4987:3;4980:58;4970:74;;:::o;5050:364::-;5138:3;5166:39;5199:5;5166:39;:::i;:::-;5221:71;5285:6;5280:3;5221:71;:::i;:::-;5214:78;;5301:52;5346:6;5341:3;5334:4;5327:5;5323:16;5301:52;:::i;:::-;5378:29;5400:6;5378:29;:::i;:::-;5373:3;5369:39;5362:46;;5142:272;;;;;:::o;5420:366::-;5562:3;5583:67;5647:2;5642:3;5583:67;:::i;:::-;5576:74;;5659:93;5748:3;5659:93;:::i;:::-;5777:2;5772:3;5768:12;5761:19;;5566:220;;;:::o;5792:366::-;5934:3;5955:67;6019:2;6014:3;5955:67;:::i;:::-;5948:74;;6031:93;6120:3;6031:93;:::i;:::-;6149:2;6144:3;6140:12;6133:19;;5938:220;;;:::o;6164:366::-;6306:3;6327:67;6391:2;6386:3;6327:67;:::i;:::-;6320:74;;6403:93;6492:3;6403:93;:::i;:::-;6521:2;6516:3;6512:12;6505:19;;6310:220;;;:::o;6536:366::-;6678:3;6699:67;6763:2;6758:3;6699:67;:::i;:::-;6692:74;;6775:93;6864:3;6775:93;:::i;:::-;6893:2;6888:3;6884:12;6877:19;;6682:220;;;:::o;6908:366::-;7050:3;7071:67;7135:2;7130:3;7071:67;:::i;:::-;7064:74;;7147:93;7236:3;7147:93;:::i;:::-;7265:2;7260:3;7256:12;7249:19;;7054:220;;;:::o;7280:366::-;7422:3;7443:67;7507:2;7502:3;7443:67;:::i;:::-;7436:74;;7519:93;7608:3;7519:93;:::i;:::-;7637:2;7632:3;7628:12;7621:19;;7426:220;;;:::o;7652:366::-;7794:3;7815:67;7879:2;7874:3;7815:67;:::i;:::-;7808:74;;7891:93;7980:3;7891:93;:::i;:::-;8009:2;8004:3;8000:12;7993:19;;7798:220;;;:::o;8024:366::-;8166:3;8187:67;8251:2;8246:3;8187:67;:::i;:::-;8180:74;;8263:93;8352:3;8263:93;:::i;:::-;8381:2;8376:3;8372:12;8365:19;;8170:220;;;:::o;8396:366::-;8538:3;8559:67;8623:2;8618:3;8559:67;:::i;:::-;8552:74;;8635:93;8724:3;8635:93;:::i;:::-;8753:2;8748:3;8744:12;8737:19;;8542:220;;;:::o;8768:366::-;8910:3;8931:67;8995:2;8990:3;8931:67;:::i;:::-;8924:74;;9007:93;9096:3;9007:93;:::i;:::-;9125:2;9120:3;9116:12;9109:19;;8914:220;;;:::o;9140:366::-;9282:3;9303:67;9367:2;9362:3;9303:67;:::i;:::-;9296:74;;9379:93;9468:3;9379:93;:::i;:::-;9497:2;9492:3;9488:12;9481:19;;9286:220;;;:::o;9512:118::-;9599:24;9617:5;9599:24;:::i;:::-;9594:3;9587:37;9577:53;;:::o;9636:112::-;9719:22;9735:5;9719:22;:::i;:::-;9714:3;9707:35;9697:51;;:::o;9754:222::-;9847:4;9885:2;9874:9;9870:18;9862:26;;9898:71;9966:1;9955:9;9951:17;9942:6;9898:71;:::i;:::-;9852:124;;;;:::o;9982:238::-;10083:4;10121:2;10110:9;10106:18;10098:26;;10134:79;10210:1;10199:9;10195:17;10186:6;10134:79;:::i;:::-;10088:132;;;;:::o;10226:254::-;10335:4;10373:2;10362:9;10358:18;10350:26;;10386:87;10470:1;10459:9;10455:17;10446:6;10386:87;:::i;:::-;10340:140;;;;:::o;10486:210::-;10573:4;10611:2;10600:9;10596:18;10588:26;;10624:65;10686:1;10675:9;10671:17;10662:6;10624:65;:::i;:::-;10578:118;;;;:::o;10702:274::-;10821:4;10859:2;10848:9;10844:18;10836:26;;10872:97;10966:1;10955:9;10951:17;10942:6;10872:97;:::i;:::-;10826:150;;;;:::o;10982:313::-;11095:4;11133:2;11122:9;11118:18;11110:26;;11182:9;11176:4;11172:20;11168:1;11157:9;11153:17;11146:47;11210:78;11283:4;11274:6;11210:78;:::i;:::-;11202:86;;11100:195;;;;:::o;11301:419::-;11467:4;11505:2;11494:9;11490:18;11482:26;;11554:9;11548:4;11544:20;11540:1;11529:9;11525:17;11518:47;11582:131;11708:4;11582:131;:::i;:::-;11574:139;;11472:248;;;:::o;11726:419::-;11892:4;11930:2;11919:9;11915:18;11907:26;;11979:9;11973:4;11969:20;11965:1;11954:9;11950:17;11943:47;12007:131;12133:4;12007:131;:::i;:::-;11999:139;;11897:248;;;:::o;12151:419::-;12317:4;12355:2;12344:9;12340:18;12332:26;;12404:9;12398:4;12394:20;12390:1;12379:9;12375:17;12368:47;12432:131;12558:4;12432:131;:::i;:::-;12424:139;;12322:248;;;:::o;12576:419::-;12742:4;12780:2;12769:9;12765:18;12757:26;;12829:9;12823:4;12819:20;12815:1;12804:9;12800:17;12793:47;12857:131;12983:4;12857:131;:::i;:::-;12849:139;;12747:248;;;:::o;13001:419::-;13167:4;13205:2;13194:9;13190:18;13182:26;;13254:9;13248:4;13244:20;13240:1;13229:9;13225:17;13218:47;13282:131;13408:4;13282:131;:::i;:::-;13274:139;;13172:248;;;:::o;13426:419::-;13592:4;13630:2;13619:9;13615:18;13607:26;;13679:9;13673:4;13669:20;13665:1;13654:9;13650:17;13643:47;13707:131;13833:4;13707:131;:::i;:::-;13699:139;;13597:248;;;:::o;13851:419::-;14017:4;14055:2;14044:9;14040:18;14032:26;;14104:9;14098:4;14094:20;14090:1;14079:9;14075:17;14068:47;14132:131;14258:4;14132:131;:::i;:::-;14124:139;;14022:248;;;:::o;14276:419::-;14442:4;14480:2;14469:9;14465:18;14457:26;;14529:9;14523:4;14519:20;14515:1;14504:9;14500:17;14493:47;14557:131;14683:4;14557:131;:::i;:::-;14549:139;;14447:248;;;:::o;14701:419::-;14867:4;14905:2;14894:9;14890:18;14882:26;;14954:9;14948:4;14944:20;14940:1;14929:9;14925:17;14918:47;14982:131;15108:4;14982:131;:::i;:::-;14974:139;;14872:248;;;:::o;15126:419::-;15292:4;15330:2;15319:9;15315:18;15307:26;;15379:9;15373:4;15369:20;15365:1;15354:9;15350:17;15343:47;15407:131;15533:4;15407:131;:::i;:::-;15399:139;;15297:248;;;:::o;15551:419::-;15717:4;15755:2;15744:9;15740:18;15732:26;;15804:9;15798:4;15794:20;15790:1;15779:9;15775:17;15768:47;15832:131;15958:4;15832:131;:::i;:::-;15824:139;;15722:248;;;:::o;15976:222::-;16069:4;16107:2;16096:9;16092:18;16084:26;;16120:71;16188:1;16177:9;16173:17;16164:6;16120:71;:::i;:::-;16074:124;;;;:::o;16204:831::-;16467:4;16505:3;16494:9;16490:19;16482:27;;16519:71;16587:1;16576:9;16572:17;16563:6;16519:71;:::i;:::-;16600:80;16676:2;16665:9;16661:18;16652:6;16600:80;:::i;:::-;16727:9;16721:4;16717:20;16712:2;16701:9;16697:18;16690:48;16755:108;16858:4;16849:6;16755:108;:::i;:::-;16747:116;;16873:72;16941:2;16930:9;16926:18;16917:6;16873:72;:::i;:::-;16955:73;17023:3;17012:9;17008:19;16999:6;16955:73;:::i;:::-;16472:563;;;;;;;;:::o;17041:214::-;17130:4;17168:2;17157:9;17153:18;17145:26;;17181:67;17245:1;17234:9;17230:17;17221:6;17181:67;:::i;:::-;17135:120;;;;:::o;17261:132::-;17328:4;17351:3;17343:11;;17381:4;17376:3;17372:14;17364:22;;17333:60;;;:::o;17399:114::-;17466:6;17500:5;17494:12;17484:22;;17473:40;;;:::o;17519:99::-;17571:6;17605:5;17599:12;17589:22;;17578:40;;;:::o;17624:113::-;17694:4;17726;17721:3;17717:14;17709:22;;17699:38;;;:::o;17743:184::-;17842:11;17876:6;17871:3;17864:19;17916:4;17911:3;17907:14;17892:29;;17854:73;;;;:::o;17933:169::-;18017:11;18051:6;18046:3;18039:19;18091:4;18086:3;18082:14;18067:29;;18029:73;;;;:::o;18108:305::-;18148:3;18167:20;18185:1;18167:20;:::i;:::-;18162:25;;18201:20;18219:1;18201:20;:::i;:::-;18196:25;;18355:1;18287:66;18283:74;18280:1;18277:81;18274:2;;;18361:18;;:::i;:::-;18274:2;18405:1;18402;18398:9;18391:16;;18152:261;;;;:::o;18419:185::-;18459:1;18476:20;18494:1;18476:20;:::i;:::-;18471:25;;18510:20;18528:1;18510:20;:::i;:::-;18505:25;;18549:1;18539:2;;18554:18;;:::i;:::-;18539:2;18596:1;18593;18589:9;18584:14;;18461:143;;;;:::o;18610:348::-;18650:7;18673:20;18691:1;18673:20;:::i;:::-;18668:25;;18707:20;18725:1;18707:20;:::i;:::-;18702:25;;18895:1;18827:66;18823:74;18820:1;18817:81;18812:1;18805:9;18798:17;18794:105;18791:2;;;18902:18;;:::i;:::-;18791:2;18950:1;18947;18943:9;18932:20;;18658:300;;;;:::o;18964:191::-;19004:4;19024:20;19042:1;19024:20;:::i;:::-;19019:25;;19058:20;19076:1;19058:20;:::i;:::-;19053:25;;19097:1;19094;19091:8;19088:2;;;19102:18;;:::i;:::-;19088:2;19147:1;19144;19140:9;19132:17;;19009:146;;;;:::o;19161:96::-;19198:7;19227:24;19245:5;19227:24;:::i;:::-;19216:35;;19206:51;;;:::o;19263:104::-;19308:7;19337:24;19355:5;19337:24;:::i;:::-;19326:35;;19316:51;;;:::o;19373:90::-;19407:7;19450:5;19443:13;19436:21;19425:32;;19415:48;;;:::o;19469:126::-;19506:7;19546:42;19539:5;19535:54;19524:65;;19514:81;;;:::o;19601:77::-;19638:7;19667:5;19656:16;;19646:32;;;:::o;19684:86::-;19719:7;19759:4;19752:5;19748:16;19737:27;;19727:43;;;:::o;19776:134::-;19834:9;19867:37;19898:5;19867:37;:::i;:::-;19854:50;;19844:66;;;:::o;19916:178::-;19992:9;20025:63;20082:5;20025:63;:::i;:::-;20012:76;;20002:92;;;:::o;20100:139::-;20176:9;20209:24;20227:5;20209:24;:::i;:::-;20196:37;;20186:53;;;:::o;20245:121::-;20303:9;20336:24;20354:5;20336:24;:::i;:::-;20323:37;;20313:53;;;:::o;20372:126::-;20422:9;20455:37;20486:5;20455:37;:::i;:::-;20442:50;;20432:66;;;:::o;20504:113::-;20554:9;20587:24;20605:5;20587:24;:::i;:::-;20574:37;;20564:53;;;:::o;20623:307::-;20691:1;20701:113;20715:6;20712:1;20709:13;20701:113;;;20800:1;20795:3;20791:11;20785:18;20781:1;20776:3;20772:11;20765:39;20737:2;20734:1;20730:10;20725:15;;20701:113;;;20832:6;20829:1;20826:13;20823:2;;;20912:1;20903:6;20898:3;20894:16;20887:27;20823:2;20672:258;;;;:::o;20936:233::-;20975:3;20998:24;21016:5;20998:24;:::i;:::-;20989:33;;21044:66;21037:5;21034:77;21031:2;;;21114:18;;:::i;:::-;21031:2;21161:1;21154:5;21150:13;21143:20;;20979:190;;;:::o;21175:180::-;21223:77;21220:1;21213:88;21320:4;21317:1;21310:15;21344:4;21341:1;21334:15;21361:180;21409:77;21406:1;21399:88;21506:4;21503:1;21496:15;21530:4;21527:1;21520:15;21547:102;21588:6;21639:2;21635:7;21630:2;21623:5;21619:14;21615:28;21605:38;;21595:54;;;:::o;21655:222::-;21795:34;21791:1;21783:6;21779:14;21772:58;21864:5;21859:2;21851:6;21847:15;21840:30;21761:116;:::o;21883:229::-;22023:34;22019:1;22011:6;22007:14;22000:58;22092:12;22087:2;22079:6;22075:15;22068:37;21989:123;:::o;22118:221::-;22258:34;22254:1;22246:6;22242:14;22235:58;22327:4;22322:2;22314:6;22310:15;22303:29;22224:115;:::o;22345:177::-;22485:29;22481:1;22473:6;22469:14;22462:53;22451:71;:::o;22528:179::-;22668:31;22664:1;22656:6;22652:14;22645:55;22634:73;:::o;22713:220::-;22853:34;22849:1;22841:6;22837:14;22830:58;22922:3;22917:2;22909:6;22905:15;22898:28;22819:114;:::o;22939:182::-;23079:34;23075:1;23067:6;23063:14;23056:58;23045:76;:::o;23127:228::-;23267:34;23263:1;23255:6;23251:14;23244:58;23336:11;23331:2;23323:6;23319:15;23312:36;23233:122;:::o;23361:224::-;23501:34;23497:1;23489:6;23485:14;23478:58;23570:7;23565:2;23557:6;23553:15;23546:32;23467:118;:::o;23591:223::-;23731:34;23727:1;23719:6;23715:14;23708:58;23800:6;23795:2;23787:6;23783:15;23776:31;23697:117;:::o;23820:167::-;23960:19;23956:1;23948:6;23944:14;23937:43;23926:61;:::o;23993:122::-;24066:24;24084:5;24066:24;:::i;:::-;24059:5;24056:35;24046:2;;24105:1;24102;24095:12;24046:2;24036:79;:::o;24121:138::-;24202:32;24228:5;24202:32;:::i;:::-;24195:5;24192:43;24182:2;;24249:1;24246;24239:12;24182:2;24172:87;:::o;24265:122::-;24338:24;24356:5;24338:24;:::i;:::-;24331:5;24328:35;24318:2;;24377:1;24374;24367:12;24318:2;24308:79;:::o
Swarm Source
ipfs://6817e6cc6319865ade49b9ba0cb2284798da5f01ab3bba894fa0fd0c665d221f
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.