ERC-20
Overview
Max Total Supply
1,000,000,000 m00n
Holders
42
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,158.030525666 m00nValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Tehm00n
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-01 */ // * * // aaaaaaaaaaaaaaaa * // aaaaaaaaaaaaaaaaaaaaaaaa // aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa // aaaaaaaaaaaaaaaaa aaaaaa // aaaaaaaaaaaaaaaa aaaa // aaaaaaaaaaaaa aa aa //* aaaaaaaa aa a // aaaaaaa aa aaaa // * aaaaaaaaa aaa // aaaaaaaaaaa aaaaaaa * // aaaaaaa aaaaaaaaaa // aaaaaaa aaaaaaaaaaaa // aaaaaaa aaaaaaa // aaaaaaaa a // aaaaaaaaaa aa // aaaaaaaaaaaaaaaa aaaa // aaaaaaaaaaaaaaaaa aaaaaa * // * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa // aaaaaaaaaaaaaaaaaaaaaaaa // * aaaaaaaaaaaaaaaa // // Who has a night in his life, Teh m00n will come in his life with abundance! // // TELEGRAM: https://t.me/TehMOONecr20 // TWITTER : https://twitter.com/Tehm00n // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.7; 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 ); } 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); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } 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 Tehm00n is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Teh m00n"; string private constant _symbol = "m00n"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping (address => uint256) private _buyMap; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e9 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; // Buy Fee uint256 private _redisFeeOnBuy = 1; uint256 private _taxFeeOnBuy = 6; // Sell Fee uint256 private _redisFeeOnSell = 1; uint256 private _taxFeeOnSell = 6; // Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xeD1a15415d5671afA742711770c8c243793d866d); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 1e7 * 10**9; //1% - 10000000 uint256 public _maxWalletSize = 2e7 * 10**9; //2% - 20000000 uint256 public _swapTokensAtAmount = 5e5 * 10**9; //0.05% - 500000 event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = 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 balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function developmentWallet() public view returns (address) { return _developmentAddress; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); 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 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 (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } 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()) { // Trade start check if (!tradingOpen) { revert("Trading not yet enabled!"); } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (to != address(this) && from != address(this) && to != _developmentAddress && from != _developmentAddress) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); } } if (to != uniswapV2Pair && to != _developmentAddress && to != address(this)) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; // Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { // Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _buyMap[to] = block.timestamp; _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } // Set Fee for Sells // TAX SELLERS 7% WHO SELL WITHIN 2 HOURS if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (_buyMap[from] != 0 && (_buyMap[from] + (2 hours) >= block.timestamp)) { _redisFee = 1; _taxFee = 6; } else { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } } _tokenTransfer(from, to, amount, takeFee); } 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 ); } // Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) external { require(_msgSender() == _developmentAddress); _swapTokensAtAmount = swapTokensAtAmount; } function sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount); } // Set trading on/off function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap(uint256 amount) external { require(_msgSender() == _developmentAddress); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function manualsend() external { require(_msgSender() == _developmentAddress); 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, _redisFee, _taxFee); 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 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); 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); } // Set swap enabled function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } // Set Max transaction function setMaxTxnAmount(uint256 maxTxAmount) external { require(_msgSender() == _developmentAddress); _maxTxAmount = maxTxAmount; } // Set Max wallet function setMaxWalletSize(uint256 maxWalletSize) external { require(_msgSender() == _developmentAddress); _maxWalletSize = maxWalletSize; } // Lower buy fee function lowerBuyTeamFee(uint256 amount) external { require(_msgSender() == _developmentAddress); require(amount >= 1 && amount <= _taxFeeOnBuy, "The amount needs to be greater than 1 and less than the current buy fee"); _taxFeeOnBuy = amount; } // Lower sell fee function lowerSellTeamFee(uint256 amount) external { require(_msgSender() == _developmentAddress); require(amount >= 1 && amount <= _taxFeeOnSell, "The amount needs to be greater than 1 and less than the current sell fee"); _taxFeeOnSell = amount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lowerBuyTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lowerSellTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"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":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c919062000766565b6000196200002b9190620006ed565b60075560016009556006600a556001600b556006600c55600b54600d55600c54600e55600d54600f55600e5460105573ed1a15415d5671afa742711770c8c243793d866d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550662386f26fc1000060155566470de4df8200006016556601c6bf526340006017553480156200011357600080fd5b506000620001266200060760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620001db6200060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ba57600080fd5b505afa158015620002cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f591906200064f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035857600080fd5b505afa1580156200036d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039391906200064f565b6040518363ffffffff1660e01b8152600401620003b2929190620006a3565b602060405180830381600087803b158015620003cd57600080fd5b505af1158015620003e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040891906200064f565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660006200045e6200060f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005916200060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620005f89190620006d0565b60405180910390a3506200081b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006498162000801565b92915050565b600060208284031215620006685762000667620007fc565b5b6000620006788482850162000638565b91505092915050565b6200068c8162000728565b82525050565b6200069d816200075c565b82525050565b6000604082019050620006ba600083018562000681565b620006c9602083018462000681565b9392505050565b6000602082019050620006e7600083018462000692565b92915050565b6000620006fa826200075c565b915062000707836200075c565b9250828210156200071d576200071c6200079e565b5b828203905092915050565b600062000735826200073c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000773826200075c565b915062000780836200075c565b925082620007935762000792620007cd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6200080c8162000728565b81146200081857600080fd5b50565b6139bc806200082b6000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063c04a541411610064578063c04a54141461059b578063dd62ed3e146105c6578063ea1644d514610603578063f2fde38b1461062c576101a7565b806395d89b411461050a57806398a5c31514610535578063a9059cbb1461055e576101a7565b8063881dce60116100c6578063881dce60146104625780638da5cb5b1461048b5780638f70ccf7146104b65780638f9a55c0146104df576101a7565b8063715018a6146103f757806374010ece1461040e5780637d1db4a514610437576101a7565b80632fd689e31161015957806349bd5a5e1161013357806349bd5a5e1461034f5780636d8aa8f81461037a5780636fc3eaec146103a357806370a08231146103ba576101a7565b80632fd689e3146102d0578063313ce567146102fb57806346001d8e14610326576101a7565b8063043a791d146101ac57806306fdde03146101d5578063095ea7b3146102005780631694505e1461023d57806318160ddd1461026857806323b872dd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101d360048036038101906101ce9190612b17565b610655565b005b3480156101e157600080fd5b506101ea610712565b6040516101f79190612edd565b60405180910390f35b34801561020c57600080fd5b5061022760048036038101906102229190612aaa565b61074f565b6040516102349190612ea7565b60405180910390f35b34801561024957600080fd5b5061025261076d565b60405161025f9190612ec2565b60405180910390f35b34801561027457600080fd5b5061027d610793565b60405161028a91906130ff565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190612a57565b6107a3565b6040516102c79190612ea7565b60405180910390f35b3480156102dc57600080fd5b506102e561087c565b6040516102f291906130ff565b60405180910390f35b34801561030757600080fd5b50610310610882565b60405161031d9190613174565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190612b17565b61088b565b005b34801561035b57600080fd5b50610364610948565b6040516103719190612e8c565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190612aea565b61096e565b005b3480156103af57600080fd5b506103b8610a20565b005b3480156103c657600080fd5b506103e160048036038101906103dc91906129bd565b610a92565b6040516103ee91906130ff565b60405180910390f35b34801561040357600080fd5b5061040c610ae3565b005b34801561041a57600080fd5b5061043560048036038101906104309190612b17565b610c36565b005b34801561044357600080fd5b5061044c610ca1565b60405161045991906130ff565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612b17565b610ca7565b005b34801561049757600080fd5b506104a0610d6b565b6040516104ad9190612e8c565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612aea565b610d94565b005b3480156104eb57600080fd5b506104f4610e45565b60405161050191906130ff565b60405180910390f35b34801561051657600080fd5b5061051f610e4b565b60405161052c9190612edd565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190612b17565b610e88565b005b34801561056a57600080fd5b5061058560048036038101906105809190612aaa565b610ef3565b6040516105929190612ea7565b60405180910390f35b3480156105a757600080fd5b506105b0610f11565b6040516105bd9190612e8c565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190612a17565b610f3b565b6040516105fa91906130ff565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190612b17565b610fc2565b005b34801561063857600080fd5b50610653600480360381019061064e91906129bd565b61102d565b005b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106966111ef565b73ffffffffffffffffffffffffffffffffffffffff16146106b657600080fd5b600181101580156106c95750600a548111155b610708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ff90612f3f565b60405180910390fd5b80600a8190555050565b60606040518060400160405280600881526020017f546568206d30306e000000000000000000000000000000000000000000000000815250905090565b600061076361075c6111ef565b84846111f7565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006107b08484846113c2565b610871846107bc6111ef565b61086c8560405180606001604052806028815260200161395f60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108226111ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7c9092919063ffffffff16565b6111f7565b600190509392505050565b60175481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108cc6111ef565b73ffffffffffffffffffffffffffffffffffffffff16146108ec57600080fd5b600181101580156108ff5750600c548111155b61093e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093590612fff565b60405180910390fd5b80600c8190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109766111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa9061303f565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a616111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610a8157600080fd5b6000479050610a8f81611ee0565b50565b6000610adc600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4c565b9050919050565b610aeb6111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f9061303f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c776111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610c9757600080fd5b8060158190555050565b60155481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce86111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610d0857600080fd5b610d1130610a92565b8111158015610d205750600081115b610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d56906130df565b60405180910390fd5b610d6881611fba565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9c6111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e209061303f565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600481526020017f6d30306e00000000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec96111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610ee957600080fd5b8060178190555050565b6000610f07610f006111ef565b84846113c2565b6001905092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110036111ef565b73ffffffffffffffffffffffffffffffffffffffff161461102357600080fd5b8060168190555050565b6110356111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061303f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990612f9f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e906130bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90612fbf565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b591906130ff565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114299061307f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149990612eff565b60405180910390fd5b600081116114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc9061305f565b60405180910390fd5b6114ed610d6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561155b575061152b610d6b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a805760148054906101000a900460ff166115ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a490612f1f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116585750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c5573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116c557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561171f5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c4576015548111156117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90612f7f565b60405180910390fd5b5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118715750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118a957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561190657601654816118bb84610a92565b6118c591906131e4565b10611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc9061309f565b60405180910390fd5b5b600061191130610a92565b9050600060175482101590508080156119375750601460159054906101000a900460ff16155b80156119915750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119a95750601460169054906101000a900460ff165b80156119ff5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a555750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57611a6382611fba565b60004790506000811115611a7b57611a7a47611ee0565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b275750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bda5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bd95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611be85760009050611e6a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c935750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cef5742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600d81905550600a54600e819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e69576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015611e3b575042611c20600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3891906131e4565b10155b15611e55576001600d819055506006600e81905550611e68565b600b54600d81905550600c54600e819055505b5b5b611e7684848484612242565b50505050565b6000838311158290611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb9190612edd565b60405180910390fd5b5060008385611ed391906132c5565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f48573d6000803e3d6000fd5b5050565b6000600754821115611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a90612f5f565b60405180910390fd5b6000611f9d61226f565b9050611fb2818461229a90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ff257611ff1613456565b5b6040519080825280602002602001820160405280156120205781602001602082028036833780820191505090505b509050308160008151811061203857612037613427565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120da57600080fd5b505afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211291906129ea565b8160018151811061212657612125613427565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061218d30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f7565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121f195949392919061311a565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806122505761224f6122e4565b5b61225b848484612327565b80612269576122686124f2565b5b50505050565b600080600061227c612506565b91509150612293818361229a90919063ffffffff16565b9250505090565b60006122dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612565565b905092915050565b6000600d541480156122f857506000600e54145b1561230257612325565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612339876125c8565b95509550955095509550955061239786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612478816126d8565b6124828483612795565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124df91906130ff565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a7640000905061253a670de0b6b3a764000060075461229a90919063ffffffff16565b82101561255857600754670de0b6b3a7640000935093505050612561565b81819350935050505b9091565b600080831182906125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a39190612edd565b60405180910390fd5b50600083856125bb919061323a565b9050809150509392505050565b60008060008060008060008060006125e58a600d54600e546127cf565b92509250925060006125f561226f565b905060008060006126088e878787612865565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061267283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7c565b905092915050565b600080828461268991906131e4565b9050838110156126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c590612fdf565b60405180910390fd5b8091505092915050565b60006126e261226f565b905060006126f982846128ee90919063ffffffff16565b905061274d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127aa8260075461263090919063ffffffff16565b6007819055506127c58160085461267a90919063ffffffff16565b6008819055505050565b6000806000806127fb60646127ed888a6128ee90919063ffffffff16565b61229a90919063ffffffff16565b905060006128256064612817888b6128ee90919063ffffffff16565b61229a90919063ffffffff16565b9050600061284e82612840858c61263090919063ffffffff16565b61263090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061287e85896128ee90919063ffffffff16565b9050600061289586896128ee90919063ffffffff16565b905060006128ac87896128ee90919063ffffffff16565b905060006128d5826128c7858761263090919063ffffffff16565b61263090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129015760009050612963565b6000828461290f919061326b565b905082848261291e919061323a565b1461295e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129559061301f565b60405180910390fd5b809150505b92915050565b60008135905061297881613919565b92915050565b60008151905061298d81613919565b92915050565b6000813590506129a281613930565b92915050565b6000813590506129b781613947565b92915050565b6000602082840312156129d3576129d2613485565b5b60006129e184828501612969565b91505092915050565b600060208284031215612a00576129ff613485565b5b6000612a0e8482850161297e565b91505092915050565b60008060408385031215612a2e57612a2d613485565b5b6000612a3c85828601612969565b9250506020612a4d85828601612969565b9150509250929050565b600080600060608486031215612a7057612a6f613485565b5b6000612a7e86828701612969565b9350506020612a8f86828701612969565b9250506040612aa0868287016129a8565b9150509250925092565b60008060408385031215612ac157612ac0613485565b5b6000612acf85828601612969565b9250506020612ae0858286016129a8565b9150509250929050565b600060208284031215612b0057612aff613485565b5b6000612b0e84828501612993565b91505092915050565b600060208284031215612b2d57612b2c613485565b5b6000612b3b848285016129a8565b91505092915050565b6000612b508383612b5c565b60208301905092915050565b612b65816132f9565b82525050565b612b74816132f9565b82525050565b6000612b858261319f565b612b8f81856131c2565b9350612b9a8361318f565b8060005b83811015612bcb578151612bb28882612b44565b9750612bbd836131b5565b925050600181019050612b9e565b5085935050505092915050565b612be18161330b565b82525050565b612bf08161334e565b82525050565b612bff81613360565b82525050565b6000612c10826131aa565b612c1a81856131d3565b9350612c2a818560208601613396565b612c338161348a565b840191505092915050565b6000612c4b6023836131d3565b9150612c568261349b565b604082019050919050565b6000612c6e6018836131d3565b9150612c79826134ea565b602082019050919050565b6000612c916047836131d3565b9150612c9c82613513565b606082019050919050565b6000612cb4602a836131d3565b9150612cbf82613588565b604082019050919050565b6000612cd7601c836131d3565b9150612ce2826135d7565b602082019050919050565b6000612cfa6026836131d3565b9150612d0582613600565b604082019050919050565b6000612d1d6022836131d3565b9150612d288261364f565b604082019050919050565b6000612d40601b836131d3565b9150612d4b8261369e565b602082019050919050565b6000612d636048836131d3565b9150612d6e826136c7565b606082019050919050565b6000612d866021836131d3565b9150612d918261373c565b604082019050919050565b6000612da96020836131d3565b9150612db48261378b565b602082019050919050565b6000612dcc6029836131d3565b9150612dd7826137b4565b604082019050919050565b6000612def6025836131d3565b9150612dfa82613803565b604082019050919050565b6000612e126023836131d3565b9150612e1d82613852565b604082019050919050565b6000612e356024836131d3565b9150612e40826138a1565b604082019050919050565b6000612e58600c836131d3565b9150612e63826138f0565b602082019050919050565b612e7781613337565b82525050565b612e8681613341565b82525050565b6000602082019050612ea16000830184612b6b565b92915050565b6000602082019050612ebc6000830184612bd8565b92915050565b6000602082019050612ed76000830184612be7565b92915050565b60006020820190508181036000830152612ef78184612c05565b905092915050565b60006020820190508181036000830152612f1881612c3e565b9050919050565b60006020820190508181036000830152612f3881612c61565b9050919050565b60006020820190508181036000830152612f5881612c84565b9050919050565b60006020820190508181036000830152612f7881612ca7565b9050919050565b60006020820190508181036000830152612f9881612cca565b9050919050565b60006020820190508181036000830152612fb881612ced565b9050919050565b60006020820190508181036000830152612fd881612d10565b9050919050565b60006020820190508181036000830152612ff881612d33565b9050919050565b6000602082019050818103600083015261301881612d56565b9050919050565b6000602082019050818103600083015261303881612d79565b9050919050565b6000602082019050818103600083015261305881612d9c565b9050919050565b6000602082019050818103600083015261307881612dbf565b9050919050565b6000602082019050818103600083015261309881612de2565b9050919050565b600060208201905081810360008301526130b881612e05565b9050919050565b600060208201905081810360008301526130d881612e28565b9050919050565b600060208201905081810360008301526130f881612e4b565b9050919050565b60006020820190506131146000830184612e6e565b92915050565b600060a08201905061312f6000830188612e6e565b61313c6020830187612bf6565b818103604083015261314e8186612b7a565b905061315d6060830185612b6b565b61316a6080830184612e6e565b9695505050505050565b60006020820190506131896000830184612e7d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131ef82613337565b91506131fa83613337565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561322f5761322e6133c9565b5b828201905092915050565b600061324582613337565b915061325083613337565b9250826132605761325f6133f8565b5b828204905092915050565b600061327682613337565b915061328183613337565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132ba576132b96133c9565b5b828202905092915050565b60006132d082613337565b91506132db83613337565b9250828210156132ee576132ed6133c9565b5b828203905092915050565b600061330482613317565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061335982613372565b9050919050565b600061336b82613337565b9050919050565b600061337d82613384565b9050919050565b600061338f82613317565b9050919050565b60005b838110156133b4578082015181840152602081019050613399565b838111156133c3576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f6275792066656500000000000000000000000000000000000000000000000000604082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f73656c6c20666565000000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b613922816132f9565b811461392d57600080fd5b50565b6139398161330b565b811461394457600080fd5b50565b61395081613337565b811461395b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208c758063e6682b469287b6cb4e079ee506b06e3f6c60e9df792a352e8c18a9cc64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063c04a541411610064578063c04a54141461059b578063dd62ed3e146105c6578063ea1644d514610603578063f2fde38b1461062c576101a7565b806395d89b411461050a57806398a5c31514610535578063a9059cbb1461055e576101a7565b8063881dce60116100c6578063881dce60146104625780638da5cb5b1461048b5780638f70ccf7146104b65780638f9a55c0146104df576101a7565b8063715018a6146103f757806374010ece1461040e5780637d1db4a514610437576101a7565b80632fd689e31161015957806349bd5a5e1161013357806349bd5a5e1461034f5780636d8aa8f81461037a5780636fc3eaec146103a357806370a08231146103ba576101a7565b80632fd689e3146102d0578063313ce567146102fb57806346001d8e14610326576101a7565b8063043a791d146101ac57806306fdde03146101d5578063095ea7b3146102005780631694505e1461023d57806318160ddd1461026857806323b872dd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101d360048036038101906101ce9190612b17565b610655565b005b3480156101e157600080fd5b506101ea610712565b6040516101f79190612edd565b60405180910390f35b34801561020c57600080fd5b5061022760048036038101906102229190612aaa565b61074f565b6040516102349190612ea7565b60405180910390f35b34801561024957600080fd5b5061025261076d565b60405161025f9190612ec2565b60405180910390f35b34801561027457600080fd5b5061027d610793565b60405161028a91906130ff565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190612a57565b6107a3565b6040516102c79190612ea7565b60405180910390f35b3480156102dc57600080fd5b506102e561087c565b6040516102f291906130ff565b60405180910390f35b34801561030757600080fd5b50610310610882565b60405161031d9190613174565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190612b17565b61088b565b005b34801561035b57600080fd5b50610364610948565b6040516103719190612e8c565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190612aea565b61096e565b005b3480156103af57600080fd5b506103b8610a20565b005b3480156103c657600080fd5b506103e160048036038101906103dc91906129bd565b610a92565b6040516103ee91906130ff565b60405180910390f35b34801561040357600080fd5b5061040c610ae3565b005b34801561041a57600080fd5b5061043560048036038101906104309190612b17565b610c36565b005b34801561044357600080fd5b5061044c610ca1565b60405161045991906130ff565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612b17565b610ca7565b005b34801561049757600080fd5b506104a0610d6b565b6040516104ad9190612e8c565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612aea565b610d94565b005b3480156104eb57600080fd5b506104f4610e45565b60405161050191906130ff565b60405180910390f35b34801561051657600080fd5b5061051f610e4b565b60405161052c9190612edd565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190612b17565b610e88565b005b34801561056a57600080fd5b5061058560048036038101906105809190612aaa565b610ef3565b6040516105929190612ea7565b60405180910390f35b3480156105a757600080fd5b506105b0610f11565b6040516105bd9190612e8c565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190612a17565b610f3b565b6040516105fa91906130ff565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190612b17565b610fc2565b005b34801561063857600080fd5b50610653600480360381019061064e91906129bd565b61102d565b005b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106966111ef565b73ffffffffffffffffffffffffffffffffffffffff16146106b657600080fd5b600181101580156106c95750600a548111155b610708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ff90612f3f565b60405180910390fd5b80600a8190555050565b60606040518060400160405280600881526020017f546568206d30306e000000000000000000000000000000000000000000000000815250905090565b600061076361075c6111ef565b84846111f7565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006107b08484846113c2565b610871846107bc6111ef565b61086c8560405180606001604052806028815260200161395f60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108226111ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7c9092919063ffffffff16565b6111f7565b600190509392505050565b60175481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108cc6111ef565b73ffffffffffffffffffffffffffffffffffffffff16146108ec57600080fd5b600181101580156108ff5750600c548111155b61093e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093590612fff565b60405180910390fd5b80600c8190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109766111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa9061303f565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a616111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610a8157600080fd5b6000479050610a8f81611ee0565b50565b6000610adc600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4c565b9050919050565b610aeb6111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f9061303f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c776111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610c9757600080fd5b8060158190555050565b60155481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce86111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610d0857600080fd5b610d1130610a92565b8111158015610d205750600081115b610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d56906130df565b60405180910390fd5b610d6881611fba565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9c6111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e209061303f565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600481526020017f6d30306e00000000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec96111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610ee957600080fd5b8060178190555050565b6000610f07610f006111ef565b84846113c2565b6001905092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110036111ef565b73ffffffffffffffffffffffffffffffffffffffff161461102357600080fd5b8060168190555050565b6110356111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061303f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990612f9f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e906130bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90612fbf565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b591906130ff565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114299061307f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149990612eff565b60405180910390fd5b600081116114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc9061305f565b60405180910390fd5b6114ed610d6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561155b575061152b610d6b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a805760148054906101000a900460ff166115ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a490612f1f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116585750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c5573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116c557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561171f5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c4576015548111156117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90612f7f565b60405180910390fd5b5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118715750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118a957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561190657601654816118bb84610a92565b6118c591906131e4565b10611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc9061309f565b60405180910390fd5b5b600061191130610a92565b9050600060175482101590508080156119375750601460159054906101000a900460ff16155b80156119915750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119a95750601460169054906101000a900460ff165b80156119ff5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a555750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57611a6382611fba565b60004790506000811115611a7b57611a7a47611ee0565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b275750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bda5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bd95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611be85760009050611e6a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c935750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cef5742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600d81905550600a54600e819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e69576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015611e3b575042611c20600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3891906131e4565b10155b15611e55576001600d819055506006600e81905550611e68565b600b54600d81905550600c54600e819055505b5b5b611e7684848484612242565b50505050565b6000838311158290611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb9190612edd565b60405180910390fd5b5060008385611ed391906132c5565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f48573d6000803e3d6000fd5b5050565b6000600754821115611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a90612f5f565b60405180910390fd5b6000611f9d61226f565b9050611fb2818461229a90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ff257611ff1613456565b5b6040519080825280602002602001820160405280156120205781602001602082028036833780820191505090505b509050308160008151811061203857612037613427565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120da57600080fd5b505afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211291906129ea565b8160018151811061212657612125613427565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061218d30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f7565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121f195949392919061311a565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806122505761224f6122e4565b5b61225b848484612327565b80612269576122686124f2565b5b50505050565b600080600061227c612506565b91509150612293818361229a90919063ffffffff16565b9250505090565b60006122dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612565565b905092915050565b6000600d541480156122f857506000600e54145b1561230257612325565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612339876125c8565b95509550955095509550955061239786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612478816126d8565b6124828483612795565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124df91906130ff565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a7640000905061253a670de0b6b3a764000060075461229a90919063ffffffff16565b82101561255857600754670de0b6b3a7640000935093505050612561565b81819350935050505b9091565b600080831182906125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a39190612edd565b60405180910390fd5b50600083856125bb919061323a565b9050809150509392505050565b60008060008060008060008060006125e58a600d54600e546127cf565b92509250925060006125f561226f565b905060008060006126088e878787612865565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061267283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7c565b905092915050565b600080828461268991906131e4565b9050838110156126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c590612fdf565b60405180910390fd5b8091505092915050565b60006126e261226f565b905060006126f982846128ee90919063ffffffff16565b905061274d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127aa8260075461263090919063ffffffff16565b6007819055506127c58160085461267a90919063ffffffff16565b6008819055505050565b6000806000806127fb60646127ed888a6128ee90919063ffffffff16565b61229a90919063ffffffff16565b905060006128256064612817888b6128ee90919063ffffffff16565b61229a90919063ffffffff16565b9050600061284e82612840858c61263090919063ffffffff16565b61263090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061287e85896128ee90919063ffffffff16565b9050600061289586896128ee90919063ffffffff16565b905060006128ac87896128ee90919063ffffffff16565b905060006128d5826128c7858761263090919063ffffffff16565b61263090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129015760009050612963565b6000828461290f919061326b565b905082848261291e919061323a565b1461295e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129559061301f565b60405180910390fd5b809150505b92915050565b60008135905061297881613919565b92915050565b60008151905061298d81613919565b92915050565b6000813590506129a281613930565b92915050565b6000813590506129b781613947565b92915050565b6000602082840312156129d3576129d2613485565b5b60006129e184828501612969565b91505092915050565b600060208284031215612a00576129ff613485565b5b6000612a0e8482850161297e565b91505092915050565b60008060408385031215612a2e57612a2d613485565b5b6000612a3c85828601612969565b9250506020612a4d85828601612969565b9150509250929050565b600080600060608486031215612a7057612a6f613485565b5b6000612a7e86828701612969565b9350506020612a8f86828701612969565b9250506040612aa0868287016129a8565b9150509250925092565b60008060408385031215612ac157612ac0613485565b5b6000612acf85828601612969565b9250506020612ae0858286016129a8565b9150509250929050565b600060208284031215612b0057612aff613485565b5b6000612b0e84828501612993565b91505092915050565b600060208284031215612b2d57612b2c613485565b5b6000612b3b848285016129a8565b91505092915050565b6000612b508383612b5c565b60208301905092915050565b612b65816132f9565b82525050565b612b74816132f9565b82525050565b6000612b858261319f565b612b8f81856131c2565b9350612b9a8361318f565b8060005b83811015612bcb578151612bb28882612b44565b9750612bbd836131b5565b925050600181019050612b9e565b5085935050505092915050565b612be18161330b565b82525050565b612bf08161334e565b82525050565b612bff81613360565b82525050565b6000612c10826131aa565b612c1a81856131d3565b9350612c2a818560208601613396565b612c338161348a565b840191505092915050565b6000612c4b6023836131d3565b9150612c568261349b565b604082019050919050565b6000612c6e6018836131d3565b9150612c79826134ea565b602082019050919050565b6000612c916047836131d3565b9150612c9c82613513565b606082019050919050565b6000612cb4602a836131d3565b9150612cbf82613588565b604082019050919050565b6000612cd7601c836131d3565b9150612ce2826135d7565b602082019050919050565b6000612cfa6026836131d3565b9150612d0582613600565b604082019050919050565b6000612d1d6022836131d3565b9150612d288261364f565b604082019050919050565b6000612d40601b836131d3565b9150612d4b8261369e565b602082019050919050565b6000612d636048836131d3565b9150612d6e826136c7565b606082019050919050565b6000612d866021836131d3565b9150612d918261373c565b604082019050919050565b6000612da96020836131d3565b9150612db48261378b565b602082019050919050565b6000612dcc6029836131d3565b9150612dd7826137b4565b604082019050919050565b6000612def6025836131d3565b9150612dfa82613803565b604082019050919050565b6000612e126023836131d3565b9150612e1d82613852565b604082019050919050565b6000612e356024836131d3565b9150612e40826138a1565b604082019050919050565b6000612e58600c836131d3565b9150612e63826138f0565b602082019050919050565b612e7781613337565b82525050565b612e8681613341565b82525050565b6000602082019050612ea16000830184612b6b565b92915050565b6000602082019050612ebc6000830184612bd8565b92915050565b6000602082019050612ed76000830184612be7565b92915050565b60006020820190508181036000830152612ef78184612c05565b905092915050565b60006020820190508181036000830152612f1881612c3e565b9050919050565b60006020820190508181036000830152612f3881612c61565b9050919050565b60006020820190508181036000830152612f5881612c84565b9050919050565b60006020820190508181036000830152612f7881612ca7565b9050919050565b60006020820190508181036000830152612f9881612cca565b9050919050565b60006020820190508181036000830152612fb881612ced565b9050919050565b60006020820190508181036000830152612fd881612d10565b9050919050565b60006020820190508181036000830152612ff881612d33565b9050919050565b6000602082019050818103600083015261301881612d56565b9050919050565b6000602082019050818103600083015261303881612d79565b9050919050565b6000602082019050818103600083015261305881612d9c565b9050919050565b6000602082019050818103600083015261307881612dbf565b9050919050565b6000602082019050818103600083015261309881612de2565b9050919050565b600060208201905081810360008301526130b881612e05565b9050919050565b600060208201905081810360008301526130d881612e28565b9050919050565b600060208201905081810360008301526130f881612e4b565b9050919050565b60006020820190506131146000830184612e6e565b92915050565b600060a08201905061312f6000830188612e6e565b61313c6020830187612bf6565b818103604083015261314e8186612b7a565b905061315d6060830185612b6b565b61316a6080830184612e6e565b9695505050505050565b60006020820190506131896000830184612e7d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131ef82613337565b91506131fa83613337565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561322f5761322e6133c9565b5b828201905092915050565b600061324582613337565b915061325083613337565b9250826132605761325f6133f8565b5b828204905092915050565b600061327682613337565b915061328183613337565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132ba576132b96133c9565b5b828202905092915050565b60006132d082613337565b91506132db83613337565b9250828210156132ee576132ed6133c9565b5b828203905092915050565b600061330482613317565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061335982613372565b9050919050565b600061336b82613337565b9050919050565b600061337d82613384565b9050919050565b600061338f82613317565b9050919050565b60005b838110156133b4578082015181840152602081019050613399565b838111156133c3576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f6275792066656500000000000000000000000000000000000000000000000000604082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f73656c6c20666565000000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b613922816132f9565b811461392d57600080fd5b50565b6139398161330b565b811461394457600080fd5b50565b61395081613337565b811461395b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208c758063e6682b469287b6cb4e079ee506b06e3f6c60e9df792a352e8c18a9cc64736f6c63430008070033
Deployed Bytecode Sourcemap
5405:13975:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18790:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7880:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8917:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6718:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8157:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9118:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7046:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8066:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19096:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6766:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18267:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14616:198;;;;;;;;;;;;;:::i;:::-;;8260:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2884:148;;;;;;;;;;;;;:::i;:::-;;18408:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6916:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14381:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2670:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14272:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6980:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7971:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13942:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8518:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8406:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8725:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18598:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3044:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18790:277;18875:19;;;;;;;;;;;18859:35;;:12;:10;:12::i;:::-;:35;;;18851:44;;;;;;18924:1;18914:6;:11;;:37;;;;;18939:12;;18929:6;:22;;18914:37;18906:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;19053:6;19038:12;:21;;;;18790:277;:::o;7880:83::-;7917:13;7950:5;;;;;;;;;;;;;;;;;7943:12;;7880:83;:::o;8917:193::-;9019:4;9041:39;9050:12;:10;:12::i;:::-;9064:7;9073:6;9041:8;:39::i;:::-;9098:4;9091:11;;8917:193;;;;:::o;6718:41::-;;;;;;;;;;;;;:::o;8157:95::-;8210:7;6006:11;8230:14;;8157:95;:::o;9118:446::-;9250:4;9267:36;9277:6;9285:9;9296:6;9267:9;:36::i;:::-;9314:220;9337:6;9358:12;:10;:12::i;:::-;9385:138;9441:6;9385:138;;;;;;;;;;;;;;;;;:11;:19;9397:6;9385:19;;;;;;;;;;;;;;;:33;9405:12;:10;:12::i;:::-;9385:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9314:8;:220::i;:::-;9552:4;9545:11;;9118:446;;;;;:::o;7046:48::-;;;;:::o;8066:83::-;8107:5;5629:1;8125:16;;8066:83;:::o;19096:281::-;19182:19;;;;;;;;;;;19166:35;;:12;:10;:12::i;:::-;:35;;;19158:44;;;;;;19231:1;19221:6;:11;;:38;;;;;19246:13;;19236:6;:23;;19221:38;19213:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;19363:6;19347:13;:22;;;;19096:281;:::o;6766:28::-;;;;;;;;;;;;;:::o;18267:101::-;2807:12;:10;:12::i;:::-;2797:22;;:6;;;;;;;;;;:22;;;2789:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18348:12:::1;18334:11;;:26;;;;;;;;;;;;;;;;;;18267:101:::0;:::o;14616:198::-;14682:19;;;;;;;;;;;14666:35;;:12;:10;:12::i;:::-;:35;;;14658:44;;;;;;14713:26;14742:21;14713:50;;14774:32;14787:18;14774:12;:32::i;:::-;14647:167;14616:198::o;8260:138::-;8326:7;8353:37;8373:7;:16;8381:7;8373:16;;;;;;;;;;;;;;;;8353:19;:37::i;:::-;8346:44;;8260:138;;;:::o;2884:148::-;2807:12;:10;:12::i;:::-;2797:22;;:6;;;;;;;;;;:22;;;2789:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2991:1:::1;2954:40;;2975:6;::::0;::::1;;;;;;;;2954:40;;;;;;;;;;;;3022:1;3005:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2884:148::o:0;18408:155::-;18498:19;;;;;;;;;;;18482:35;;:12;:10;:12::i;:::-;:35;;;18474:44;;;;;;18544:11;18529:12;:26;;;;18408:155;:::o;6916:41::-;;;;:::o;14381:227::-;14461:19;;;;;;;;;;;14445:35;;:12;:10;:12::i;:::-;:35;;;14437:44;;;;;;14510:24;14528:4;14510:9;:24::i;:::-;14500:6;:34;;:48;;;;;14547:1;14538:6;:10;14500:48;14492:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14576:24;14593:6;14576:16;:24::i;:::-;14381:227;:::o;2670:79::-;2708:7;2735:6;;;;;;;;;;;2728:13;;2670:79;:::o;14272:101::-;2807:12;:10;:12::i;:::-;2797:22;;:6;;;;;;;;;;:22;;;2789:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14353:12:::1;14339:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;14272:101:::0;:::o;6980:43::-;;;;:::o;7971:87::-;8010:13;8043:7;;;;;;;;;;;;;;;;;8036:14;;7971:87;:::o;13942:186::-;14049:19;;;;;;;;;;;14033:35;;:12;:10;:12::i;:::-;:35;;;14025:44;;;;;;14102:18;14080:19;:40;;;;13942:186;:::o;8518:199::-;8623:4;8645:42;8655:12;:10;:12::i;:::-;8669:9;8680:6;8645:9;:42::i;:::-;8705:4;8698:11;;8518:199;;;;:::o;8406:104::-;8456:7;8483:19;;;;;;;;;;;8476:26;;8406:104;:::o;8725:184::-;8842:7;8874:11;:18;8886:5;8874:18;;;;;;;;;;;;;;;:27;8893:7;8874:27;;;;;;;;;;;;;;;;8867:34;;8725:184;;;;:::o;18598:162::-;18691:19;;;;;;;;;;;18675:35;;:12;:10;:12::i;:::-;:35;;;18667:44;;;;;;18739:13;18722:14;:30;;;;18598:162;:::o;3044:244::-;2807:12;:10;:12::i;:::-;2797:22;;:6;;;;;;;;;;:22;;;2789:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3153:1:::1;3133:22;;:8;:22;;;;3125:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3243:8;3214:38;;3235:6;::::0;::::1;;;;;;;;3214:38;;;;;;;;;;;;3272:8;3263:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3044:244:::0;:::o;1429:98::-;1482:7;1509:10;1502:17;;1429:98;:::o;10267:369::-;10411:1;10394:19;;:5;:19;;;;10386:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10492:1;10473:21;;:7;:21;;;;10465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10574:6;10544:11;:18;10556:5;10544:18;;;;;;;;;;;;;;;:27;10563:7;10544:27;;;;;;;;;;;;;;;:36;;;;10612:7;10596:32;;10605:5;10596:32;;;10621:6;10596:32;;;;;;:::i;:::-;;;;;;;;10267:369;;;:::o;10644:2750::-;10782:1;10766:18;;:4;:18;;;;10758:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10859:1;10845:16;;:2;:16;;;;10837:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10929:1;10920:6;:10;10912:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11001:7;:5;:7::i;:::-;10993:15;;:4;:15;;;;:32;;;;;11018:7;:5;:7::i;:::-;11012:13;;:2;:13;;;;10993:32;10989:1336;;;11095:11;;;;;;;;;;11090:99;;11127:34;;;;;;;;;;:::i;:::-;;;;;;;;11090:99;11227:13;;;;;;;;;;;11221:19;;:2;:19;;;:55;;;;;11260:15;;;;;;;;;;;11244:32;;:4;:32;;;;11221:55;11217:311;;;11315:4;11301:19;;:2;:19;;;;:44;;;;;11340:4;11324:21;;:4;:21;;;;11301:44;:73;;;;;11355:19;;;;;;;;;;;11349:25;;:2;:25;;;;11301:73;:104;;;;;11386:19;;;;;;;;;;;11378:27;;:4;:27;;;;11301:104;11297:216;;;11448:12;;11438:6;:22;;11430:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11297:216;11217:311;11554:13;;;;;;;;;;;11548:19;;:2;:19;;;;:48;;;;;11577:19;;;;;;;;;;;11571:25;;:2;:25;;;;11548:48;:71;;;;;11614:4;11600:19;;:2;:19;;;;11548:71;11544:199;;;11673:14;;11664:6;11648:13;11658:2;11648:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11640:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11544:199;11771:28;11802:24;11820:4;11802:9;:24::i;:::-;11771:55;;11841:12;11880:19;;11856:20;:43;;11841:58;;11932:7;:18;;;;;11944:6;;;;;;;;;;;11943:7;11932:18;:43;;;;;11962:13;;;;;;;;;;;11954:21;;:4;:21;;;;11932:43;:58;;;;;11979:11;;;;;;;;;;;11932:58;:87;;;;;11995:18;:24;12014:4;11995:24;;;;;;;;;;;;;;;;;;;;;;;;;11994:25;11932:87;:114;;;;;12024:18;:22;12043:2;12024:22;;;;;;;;;;;;;;;;;;;;;;;;;12023:23;11932:114;11928:386;;;12067:38;12084:20;12067:16;:38::i;:::-;12124:26;12153:21;12124:50;;12218:1;12197:18;:22;12193:106;;;12244:35;12257:21;12244:12;:35::i;:::-;12193:106;12048:266;11928:386;11027:1298;;10989:1336;12345:12;12360:4;12345:19;;12410:18;:24;12429:4;12410:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12438:18;:22;12457:2;12438:22;;;;;;;;;;;;;;;;;;;;;;;;;12410:50;12409:102;;;;12474:13;;;;;;;;;;;12466:21;;:4;:21;;;;:44;;;;;12497:13;;;;;;;;;;;12491:19;;:2;:19;;;;12466:44;12409:102;12405:928;;;12538:5;12528:15;;12405:928;;;12620:13;;;;;;;;;;;12612:21;;:4;:21;;;:55;;;;;12651:15;;;;;;;;;;;12637:30;;:2;:30;;;;12612:55;12609:222;;;12706:15;12692:7;:11;12700:2;12692:11;;;;;;;;;;;;;;;:29;;;;12756:14;;12744:9;:26;;;;12803:12;;12793:7;:22;;;;12609:222;12951:13;;;;;;;;;;;12945:19;;:2;:19;;;:55;;;;;12984:15;;;;;;;;;;;12968:32;;:4;:32;;;;12945:55;12941:381;;;13042:1;13025:7;:13;13033:4;13025:13;;;;;;;;;;;;;;;;:18;;:68;;;;;13077:15;13065:7;13048;:13;13056:4;13048:13;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;13025:68;13021:286;;;13130:1;13118:9;:13;;;;13164:1;13154:7;:11;;;;13021:286;;;13226:15;;13214:9;:27;;;;13274:13;;13264:7;:23;;;;13021:286;12941:381;12405:928;13345:41;13360:4;13366:2;13370:6;13378:7;13345:14;:41::i;:::-;10747:2647;10644:2750;;;:::o;3656:224::-;3776:7;3809:1;3804;:6;;3812:12;3796:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3836:9;3852:1;3848;:5;;;;:::i;:::-;3836:17;;3871:1;3864:8;;;3656:224;;;;;:::o;14136:101::-;14193:19;;;;;;;;;;;:28;;:36;14222:6;14193:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14136:101;:::o;9572:323::-;9667:7;9725;;9714;:18;;9692:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9813:19;9835:10;:8;:10::i;:::-;9813:32;;9863:24;9875:11;9863:7;:11;;:24;;;;:::i;:::-;9856:31;;;9572:323;;;:::o;13402:483::-;7214:4;7205:6;;:13;;;;;;;;;;;;;;;;;;13480:21:::1;13518:1;13504:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13480:40;;13549:4;13531;13536:1;13531:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13575:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13565:4;13570:1;13565:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13608:62;13625:4;13640:15;;;;;;;;;;;13658:11;13608:8;:62::i;:::-;13681:15;;;;;;;;;;;:66;;;13762:11;13788:1;13804:4;13831;13851:15;13681:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13469:416;7250:5:::0;7241:6;;:14;;;;;;;;;;;;;;;;;;13402:483;:::o;14822:282::-;14978:7;14973:28;;14987:14;:12;:14::i;:::-;14973:28;15012:44;15030:6;15038:9;15049:6;15012:17;:44::i;:::-;15072:7;15067:29;;15081:15;:13;:15::i;:::-;15067:29;14822:282;;;;:::o;17797:166::-;17839:7;17860:15;17877;17896:19;:17;:19::i;:::-;17859:56;;;;17935:20;17947:7;17935;:11;;:20;;;;:::i;:::-;17928:27;;;;17797:166;:::o;4142:132::-;4200:7;4227:39;4231:1;4234;4227:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4220:46;;4142:132;;;;:::o;9903:231::-;9963:1;9950:9;;:14;:30;;;;;9979:1;9968:7;;:12;9950:30;9946:43;;;9982:7;;9946:43;10025:9;;10005:17;:29;;;;10063:7;;10045:15;:25;;;;10103:1;10091:9;:13;;;;10125:1;10115:7;:11;;;;9903:231;:::o;15112:610::-;15259:15;15289:23;15327:12;15354:23;15392:12;15419:13;15446:19;15457:7;15446:10;:19::i;:::-;15244:221;;;;;;;;;;;;15494:28;15514:7;15494;:15;15502:6;15494:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15476:7;:15;15484:6;15476:15;;;;;;;;;;;;;;;:46;;;;15554:39;15577:15;15554:7;:18;15562:9;15554:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15533:7;:18;15541:9;15533:18;;;;;;;;;;;;;;;:60;;;;15604:16;15614:5;15604:9;:16::i;:::-;15631:23;15643:4;15649;15631:11;:23::i;:::-;15687:9;15670:44;;15679:6;15670:44;;;15698:15;15670:44;;;;;;:::i;:::-;;;;;;;;15233:489;;;;;;15112:610;;;:::o;10142:117::-;10198:17;;10186:9;:29;;;;10236:15;;10226:7;:25;;;;10142:117::o;17971:263::-;18022:7;18031;18051:15;18069:7;;18051:25;;18087:15;6006:11;18087:25;;18137:20;6006:11;18137:7;;:11;;:20;;;;:::i;:::-;18127:7;:30;18123:61;;;18167:7;;6006:11;18159:25;;;;;;;;18123:61;18209:7;18218;18201:25;;;;;;17971:263;;;:::o;4282:223::-;4402:7;4434:1;4430;:5;4437:12;4422:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4461:9;4477:1;4473;:5;;;;:::i;:::-;4461:17;;4496:1;4489:8;;;4282:223;;;;;:::o;16141:625::-;16241:7;16263;16285;16307;16329;16351;16387:23;16412:12;16426:13;16456:40;16468:7;16477:9;;16488:7;;16456:11;:40::i;:::-;16386:110;;;;;;16507:19;16529:10;:8;:10::i;:::-;16507:32;;16551:15;16568:23;16593:12;16622:46;16634:7;16643:4;16649:5;16656:11;16622;:46::i;:::-;16550:118;;;;;;16697:7;16706:15;16723:4;16729:15;16746:4;16752:5;16689:69;;;;;;;;;;;;;;;;;;;16141:625;;;;;;;:::o;3512:136::-;3570:7;3597:43;3601:1;3604;3597:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3590:50;;3512:136;;;;:::o;3325:179::-;3383:7;3403:9;3419:1;3415;:5;;;;:::i;:::-;3403:17;;3444:1;3439;:6;;3431:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3495:1;3488:8;;;3325:179;;;;:::o;15730:211::-;15783:19;15805:10;:8;:10::i;:::-;15783:32;;15826:13;15842:22;15852:11;15842:5;:9;;:22;;;;:::i;:::-;15826:38;;15900:33;15927:5;15900:7;:22;15916:4;15900:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15875:7;:22;15891:4;15875:22;;;;;;;;;;;;;;;:58;;;;15772:169;;15730:211;:::o;15949:147::-;16027:17;16039:4;16027:7;;:11;;:17;;;;:::i;:::-;16017:7;:27;;;;16068:20;16083:4;16068:10;;:14;;:20;;;;:::i;:::-;16055:10;:33;;;;15949:147;;:::o;16774:471::-;16943:7;16965;16987;17022:12;17037:30;17063:3;17037:21;17049:8;17037:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17022:45;;17078:13;17094:28;17118:3;17094:19;17106:6;17094:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17078:44;;17133:23;17159:28;17181:5;17159:17;17171:4;17159:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17133:54;;17208:15;17225:4;17231:5;17200:37;;;;;;;;;16774:471;;;;;;;:::o;17253:536::-;17447:7;17469;17491;17526:15;17544:24;17556:11;17544:7;:11;;:24;;;;:::i;:::-;17526:42;;17579:12;17594:21;17603:11;17594:4;:8;;:21;;;;:::i;:::-;17579:36;;17626:13;17642:22;17652:11;17642:5;:9;;:22;;;;:::i;:::-;17626:38;;17675:23;17701:28;17723:5;17701:17;17713:4;17701:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17675:54;;17750:7;17759:15;17776:4;17742:39;;;;;;;;;;17253:536;;;;;;;;:::o;3888:246::-;3946:7;3975:1;3970;:6;3966:47;;;4000:1;3993:8;;;;3966:47;4023:9;4039:1;4035;:5;;;;:::i;:::-;4023:17;;4068:1;4063;4059;:5;;;;:::i;:::-;:10;4051:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4125:1;4118:8;;;3888:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:119;;;1045:79;;:::i;:::-;1007:119;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;920:351;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:119;;;1408:79;;:::i;:::-;1370:119;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1277:474;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:119;;;1905:79;;:::i;:::-;1867:119;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1757:619;;;;;:::o;2382:474::-;2450:6;2458;2507:2;2495:9;2486:7;2482:23;2478:32;2475:119;;;2513:79;;:::i;:::-;2475:119;2633:1;2658:53;2703:7;2694:6;2683:9;2679:22;2658:53;:::i;:::-;2648:63;;2604:117;2760:2;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2731:118;2382:474;;;;;:::o;2862:323::-;2918:6;2967:2;2955:9;2946:7;2942:23;2938:32;2935:119;;;2973:79;;:::i;:::-;2935:119;3093:1;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3064:114;2862:323;;;;:::o;3191:329::-;3250:6;3299:2;3287:9;3278:7;3274:23;3270:32;3267:119;;;3305:79;;:::i;:::-;3267:119;3425:1;3450:53;3495:7;3486:6;3475:9;3471:22;3450:53;:::i;:::-;3440:63;;3396:117;3191:329;;;;:::o;3526:179::-;3595:10;3616:46;3658:3;3650:6;3616:46;:::i;:::-;3694:4;3689:3;3685:14;3671:28;;3526:179;;;;:::o;3711:108::-;3788:24;3806:5;3788:24;:::i;:::-;3783:3;3776:37;3711:108;;:::o;3825:118::-;3912:24;3930:5;3912:24;:::i;:::-;3907:3;3900:37;3825:118;;:::o;3979:732::-;4098:3;4127:54;4175:5;4127:54;:::i;:::-;4197:86;4276:6;4271:3;4197:86;:::i;:::-;4190:93;;4307:56;4357:5;4307:56;:::i;:::-;4386:7;4417:1;4402:284;4427:6;4424:1;4421:13;4402:284;;;4503:6;4497:13;4530:63;4589:3;4574:13;4530:63;:::i;:::-;4523:70;;4616:60;4669:6;4616:60;:::i;:::-;4606:70;;4462:224;4449:1;4446;4442:9;4437:14;;4402:284;;;4406:14;4702:3;4695:10;;4103:608;;;3979:732;;;;:::o;4717:109::-;4798:21;4813:5;4798:21;:::i;:::-;4793:3;4786:34;4717:109;;:::o;4832:183::-;4945:63;5002:5;4945:63;:::i;:::-;4940:3;4933:76;4832:183;;:::o;5021:147::-;5116:45;5155:5;5116:45;:::i;:::-;5111:3;5104:58;5021:147;;:::o;5174:364::-;5262:3;5290:39;5323:5;5290:39;:::i;:::-;5345:71;5409:6;5404:3;5345:71;:::i;:::-;5338:78;;5425:52;5470:6;5465:3;5458:4;5451:5;5447:16;5425:52;:::i;:::-;5502:29;5524:6;5502:29;:::i;:::-;5497:3;5493:39;5486:46;;5266:272;5174:364;;;;:::o;5544:366::-;5686:3;5707:67;5771:2;5766:3;5707:67;:::i;:::-;5700:74;;5783:93;5872:3;5783:93;:::i;:::-;5901:2;5896:3;5892:12;5885:19;;5544:366;;;:::o;5916:::-;6058:3;6079:67;6143:2;6138:3;6079:67;:::i;:::-;6072:74;;6155:93;6244:3;6155:93;:::i;:::-;6273:2;6268:3;6264:12;6257:19;;5916:366;;;:::o;6288:::-;6430:3;6451:67;6515:2;6510:3;6451:67;:::i;:::-;6444:74;;6527:93;6616:3;6527:93;:::i;:::-;6645:2;6640:3;6636:12;6629:19;;6288:366;;;:::o;6660:::-;6802:3;6823:67;6887:2;6882:3;6823:67;:::i;:::-;6816:74;;6899:93;6988:3;6899:93;:::i;:::-;7017:2;7012:3;7008:12;7001:19;;6660:366;;;:::o;7032:::-;7174:3;7195:67;7259:2;7254:3;7195:67;:::i;:::-;7188:74;;7271:93;7360:3;7271:93;:::i;:::-;7389:2;7384:3;7380:12;7373:19;;7032:366;;;:::o;7404:::-;7546:3;7567:67;7631:2;7626:3;7567:67;:::i;:::-;7560:74;;7643:93;7732:3;7643:93;:::i;:::-;7761:2;7756:3;7752:12;7745:19;;7404:366;;;:::o;7776:::-;7918:3;7939:67;8003:2;7998:3;7939:67;:::i;:::-;7932:74;;8015:93;8104:3;8015:93;:::i;:::-;8133:2;8128:3;8124:12;8117:19;;7776:366;;;:::o;8148:::-;8290:3;8311:67;8375:2;8370:3;8311:67;:::i;:::-;8304:74;;8387:93;8476:3;8387:93;:::i;:::-;8505:2;8500:3;8496:12;8489:19;;8148:366;;;:::o;8520:::-;8662:3;8683:67;8747:2;8742:3;8683:67;:::i;:::-;8676:74;;8759:93;8848:3;8759:93;:::i;:::-;8877:2;8872:3;8868:12;8861:19;;8520:366;;;:::o;8892:::-;9034:3;9055:67;9119:2;9114:3;9055:67;:::i;:::-;9048:74;;9131:93;9220:3;9131:93;:::i;:::-;9249:2;9244:3;9240:12;9233:19;;8892:366;;;:::o;9264:::-;9406:3;9427:67;9491:2;9486:3;9427:67;:::i;:::-;9420:74;;9503:93;9592:3;9503:93;:::i;:::-;9621:2;9616:3;9612:12;9605:19;;9264:366;;;:::o;9636:::-;9778:3;9799:67;9863:2;9858:3;9799:67;:::i;:::-;9792:74;;9875:93;9964:3;9875:93;:::i;:::-;9993:2;9988:3;9984:12;9977:19;;9636:366;;;:::o;10008:::-;10150:3;10171:67;10235:2;10230:3;10171:67;:::i;:::-;10164:74;;10247:93;10336:3;10247:93;:::i;:::-;10365:2;10360:3;10356:12;10349:19;;10008:366;;;:::o;10380:::-;10522:3;10543:67;10607:2;10602:3;10543:67;:::i;:::-;10536:74;;10619:93;10708:3;10619:93;:::i;:::-;10737:2;10732:3;10728:12;10721:19;;10380:366;;;:::o;10752:::-;10894:3;10915:67;10979:2;10974:3;10915:67;:::i;:::-;10908:74;;10991:93;11080:3;10991:93;:::i;:::-;11109:2;11104:3;11100:12;11093:19;;10752:366;;;:::o;11124:::-;11266:3;11287:67;11351:2;11346:3;11287:67;:::i;:::-;11280:74;;11363:93;11452:3;11363:93;:::i;:::-;11481:2;11476:3;11472:12;11465:19;;11124:366;;;:::o;11496:118::-;11583:24;11601:5;11583:24;:::i;:::-;11578:3;11571:37;11496:118;;:::o;11620:112::-;11703:22;11719:5;11703:22;:::i;:::-;11698:3;11691:35;11620:112;;:::o;11738:222::-;11831:4;11869:2;11858:9;11854:18;11846:26;;11882:71;11950:1;11939:9;11935:17;11926:6;11882:71;:::i;:::-;11738:222;;;;:::o;11966:210::-;12053:4;12091:2;12080:9;12076:18;12068:26;;12104:65;12166:1;12155:9;12151:17;12142:6;12104:65;:::i;:::-;11966:210;;;;:::o;12182:274::-;12301:4;12339:2;12328:9;12324:18;12316:26;;12352:97;12446:1;12435:9;12431:17;12422:6;12352:97;:::i;:::-;12182:274;;;;:::o;12462:313::-;12575:4;12613:2;12602:9;12598:18;12590:26;;12662:9;12656:4;12652:20;12648:1;12637:9;12633:17;12626:47;12690:78;12763:4;12754:6;12690:78;:::i;:::-;12682:86;;12462:313;;;;:::o;12781:419::-;12947:4;12985:2;12974:9;12970:18;12962:26;;13034:9;13028:4;13024:20;13020:1;13009:9;13005:17;12998:47;13062:131;13188:4;13062:131;:::i;:::-;13054:139;;12781:419;;;:::o;13206:::-;13372:4;13410:2;13399:9;13395:18;13387:26;;13459:9;13453:4;13449:20;13445:1;13434:9;13430:17;13423:47;13487:131;13613:4;13487:131;:::i;:::-;13479:139;;13206:419;;;:::o;13631:::-;13797:4;13835:2;13824:9;13820:18;13812:26;;13884:9;13878:4;13874:20;13870:1;13859:9;13855:17;13848:47;13912:131;14038:4;13912:131;:::i;:::-;13904:139;;13631:419;;;:::o;14056:::-;14222:4;14260:2;14249:9;14245:18;14237:26;;14309:9;14303:4;14299:20;14295:1;14284:9;14280:17;14273:47;14337:131;14463:4;14337:131;:::i;:::-;14329:139;;14056:419;;;:::o;14481:::-;14647:4;14685:2;14674:9;14670:18;14662:26;;14734:9;14728:4;14724:20;14720:1;14709:9;14705:17;14698:47;14762:131;14888:4;14762:131;:::i;:::-;14754:139;;14481:419;;;:::o;14906:::-;15072:4;15110:2;15099:9;15095:18;15087:26;;15159:9;15153:4;15149:20;15145:1;15134:9;15130:17;15123:47;15187:131;15313:4;15187:131;:::i;:::-;15179:139;;14906:419;;;:::o;15331:::-;15497:4;15535:2;15524:9;15520:18;15512:26;;15584:9;15578:4;15574:20;15570:1;15559:9;15555:17;15548:47;15612:131;15738:4;15612:131;:::i;:::-;15604:139;;15331:419;;;:::o;15756:::-;15922:4;15960:2;15949:9;15945:18;15937:26;;16009:9;16003:4;15999:20;15995:1;15984:9;15980:17;15973:47;16037:131;16163:4;16037:131;:::i;:::-;16029:139;;15756:419;;;:::o;16181:::-;16347:4;16385:2;16374:9;16370:18;16362:26;;16434:9;16428:4;16424:20;16420:1;16409:9;16405:17;16398:47;16462:131;16588:4;16462:131;:::i;:::-;16454:139;;16181:419;;;:::o;16606:::-;16772:4;16810:2;16799:9;16795:18;16787:26;;16859:9;16853:4;16849:20;16845:1;16834:9;16830:17;16823:47;16887:131;17013:4;16887:131;:::i;:::-;16879:139;;16606:419;;;:::o;17031:::-;17197:4;17235:2;17224:9;17220:18;17212:26;;17284:9;17278:4;17274:20;17270:1;17259:9;17255:17;17248:47;17312:131;17438:4;17312:131;:::i;:::-;17304:139;;17031:419;;;:::o;17456:::-;17622:4;17660:2;17649:9;17645:18;17637:26;;17709:9;17703:4;17699:20;17695:1;17684:9;17680:17;17673:47;17737:131;17863:4;17737:131;:::i;:::-;17729:139;;17456:419;;;:::o;17881:::-;18047:4;18085:2;18074:9;18070:18;18062:26;;18134:9;18128:4;18124:20;18120:1;18109:9;18105:17;18098:47;18162:131;18288:4;18162:131;:::i;:::-;18154:139;;17881:419;;;:::o;18306:::-;18472:4;18510:2;18499:9;18495:18;18487:26;;18559:9;18553:4;18549:20;18545:1;18534:9;18530:17;18523:47;18587:131;18713:4;18587:131;:::i;:::-;18579:139;;18306:419;;;:::o;18731:::-;18897:4;18935:2;18924:9;18920:18;18912:26;;18984:9;18978:4;18974:20;18970:1;18959:9;18955:17;18948:47;19012:131;19138:4;19012:131;:::i;:::-;19004:139;;18731:419;;;:::o;19156:::-;19322:4;19360:2;19349:9;19345:18;19337:26;;19409:9;19403:4;19399:20;19395:1;19384:9;19380:17;19373:47;19437:131;19563:4;19437:131;:::i;:::-;19429:139;;19156:419;;;:::o;19581:222::-;19674:4;19712:2;19701:9;19697:18;19689:26;;19725:71;19793:1;19782:9;19778:17;19769:6;19725:71;:::i;:::-;19581:222;;;;:::o;19809:831::-;20072:4;20110:3;20099:9;20095:19;20087:27;;20124:71;20192:1;20181:9;20177:17;20168:6;20124:71;:::i;:::-;20205:80;20281:2;20270:9;20266:18;20257:6;20205:80;:::i;:::-;20332:9;20326:4;20322:20;20317:2;20306:9;20302:18;20295:48;20360:108;20463:4;20454:6;20360:108;:::i;:::-;20352:116;;20478:72;20546:2;20535:9;20531:18;20522:6;20478:72;:::i;:::-;20560:73;20628:3;20617:9;20613:19;20604:6;20560:73;:::i;:::-;19809:831;;;;;;;;:::o;20646:214::-;20735:4;20773:2;20762:9;20758:18;20750:26;;20786:67;20850:1;20839:9;20835:17;20826:6;20786:67;:::i;:::-;20646:214;;;;:::o;20947:132::-;21014:4;21037:3;21029:11;;21067:4;21062:3;21058:14;21050:22;;20947:132;;;:::o;21085:114::-;21152:6;21186:5;21180:12;21170:22;;21085:114;;;:::o;21205:99::-;21257:6;21291:5;21285:12;21275:22;;21205:99;;;:::o;21310:113::-;21380:4;21412;21407:3;21403:14;21395:22;;21310:113;;;:::o;21429:184::-;21528:11;21562:6;21557:3;21550:19;21602:4;21597:3;21593:14;21578:29;;21429:184;;;;:::o;21619:169::-;21703:11;21737:6;21732:3;21725:19;21777:4;21772:3;21768:14;21753:29;;21619:169;;;;:::o;21794:305::-;21834:3;21853:20;21871:1;21853:20;:::i;:::-;21848:25;;21887:20;21905:1;21887:20;:::i;:::-;21882:25;;22041:1;21973:66;21969:74;21966:1;21963:81;21960:107;;;22047:18;;:::i;:::-;21960:107;22091:1;22088;22084:9;22077:16;;21794:305;;;;:::o;22105:185::-;22145:1;22162:20;22180:1;22162:20;:::i;:::-;22157:25;;22196:20;22214:1;22196:20;:::i;:::-;22191:25;;22235:1;22225:35;;22240:18;;:::i;:::-;22225:35;22282:1;22279;22275:9;22270:14;;22105:185;;;;:::o;22296:348::-;22336:7;22359:20;22377:1;22359:20;:::i;:::-;22354:25;;22393:20;22411:1;22393:20;:::i;:::-;22388:25;;22581:1;22513:66;22509:74;22506:1;22503:81;22498:1;22491:9;22484:17;22480:105;22477:131;;;22588:18;;:::i;:::-;22477:131;22636:1;22633;22629:9;22618:20;;22296:348;;;;:::o;22650:191::-;22690:4;22710:20;22728:1;22710:20;:::i;:::-;22705:25;;22744:20;22762:1;22744:20;:::i;:::-;22739:25;;22783:1;22780;22777:8;22774:34;;;22788:18;;:::i;:::-;22774:34;22833:1;22830;22826:9;22818:17;;22650:191;;;;:::o;22847:96::-;22884:7;22913:24;22931:5;22913:24;:::i;:::-;22902:35;;22847:96;;;:::o;22949:90::-;22983:7;23026:5;23019:13;23012:21;23001:32;;22949:90;;;:::o;23045:126::-;23082:7;23122:42;23115:5;23111:54;23100:65;;23045:126;;;:::o;23177:77::-;23214:7;23243:5;23232:16;;23177:77;;;:::o;23260:86::-;23295:7;23335:4;23328:5;23324:16;23313:27;;23260:86;;;:::o;23352:152::-;23428:9;23461:37;23492:5;23461:37;:::i;:::-;23448:50;;23352:152;;;:::o;23510:121::-;23568:9;23601:24;23619:5;23601:24;:::i;:::-;23588:37;;23510:121;;;:::o;23637:126::-;23687:9;23720:37;23751:5;23720:37;:::i;:::-;23707:50;;23637:126;;;:::o;23769:113::-;23819:9;23852:24;23870:5;23852:24;:::i;:::-;23839:37;;23769:113;;;:::o;23888:307::-;23956:1;23966:113;23980:6;23977:1;23974:13;23966:113;;;24065:1;24060:3;24056:11;24050:18;24046:1;24041:3;24037:11;24030:39;24002:2;23999:1;23995:10;23990:15;;23966:113;;;24097:6;24094:1;24091:13;24088:101;;;24177:1;24168:6;24163:3;24159:16;24152:27;24088:101;23937:258;23888:307;;;:::o;24201:180::-;24249:77;24246:1;24239:88;24346:4;24343:1;24336:15;24370:4;24367:1;24360:15;24387:180;24435:77;24432:1;24425:88;24532:4;24529:1;24522:15;24556:4;24553:1;24546:15;24573:180;24621:77;24618:1;24611:88;24718:4;24715:1;24708:15;24742:4;24739:1;24732:15;24759:180;24807:77;24804:1;24797:88;24904:4;24901:1;24894:15;24928:4;24925:1;24918:15;25068:117;25177:1;25174;25167:12;25191:102;25232:6;25283:2;25279:7;25274:2;25267:5;25263:14;25259:28;25249:38;;25191:102;;;:::o;25299:222::-;25439:34;25435:1;25427:6;25423:14;25416:58;25508:5;25503:2;25495:6;25491:15;25484:30;25299:222;:::o;25527:174::-;25667:26;25663:1;25655:6;25651:14;25644:50;25527:174;:::o;25707:295::-;25847:34;25843:1;25835:6;25831:14;25824:58;25916:34;25911:2;25903:6;25899:15;25892:59;25985:9;25980:2;25972:6;25968:15;25961:34;25707:295;:::o;26008:229::-;26148:34;26144:1;26136:6;26132:14;26125:58;26217:12;26212:2;26204:6;26200:15;26193:37;26008:229;:::o;26243:178::-;26383:30;26379:1;26371:6;26367:14;26360:54;26243:178;:::o;26427:225::-;26567:34;26563:1;26555:6;26551:14;26544:58;26636:8;26631:2;26623:6;26619:15;26612:33;26427:225;:::o;26658:221::-;26798:34;26794:1;26786:6;26782:14;26775:58;26867:4;26862:2;26854:6;26850:15;26843:29;26658:221;:::o;26885:177::-;27025:29;27021:1;27013:6;27009:14;27002:53;26885:177;:::o;27068:296::-;27208:34;27204:1;27196:6;27192:14;27185:58;27277:34;27272:2;27264:6;27260:15;27253:59;27346:10;27341:2;27333:6;27329:15;27322:35;27068:296;:::o;27370:220::-;27510:34;27506:1;27498:6;27494:14;27487:58;27579:3;27574:2;27566:6;27562:15;27555:28;27370:220;:::o;27596:182::-;27736:34;27732:1;27724:6;27720:14;27713:58;27596:182;:::o;27784:228::-;27924:34;27920:1;27912:6;27908:14;27901:58;27993:11;27988:2;27980:6;27976:15;27969:36;27784:228;:::o;28018:224::-;28158:34;28154:1;28146:6;28142:14;28135:58;28227:7;28222:2;28214:6;28210:15;28203:32;28018:224;:::o;28248:222::-;28388:34;28384:1;28376:6;28372:14;28365:58;28457:5;28452:2;28444:6;28440:15;28433:30;28248:222;:::o;28476:223::-;28616:34;28612:1;28604:6;28600:14;28593:58;28685:6;28680:2;28672:6;28668:15;28661:31;28476:223;:::o;28705:162::-;28845:14;28841:1;28833:6;28829:14;28822:38;28705:162;:::o;28873:122::-;28946:24;28964:5;28946:24;:::i;:::-;28939:5;28936:35;28926:63;;28985:1;28982;28975:12;28926:63;28873:122;:::o;29001:116::-;29071:21;29086:5;29071:21;:::i;:::-;29064:5;29061:32;29051:60;;29107:1;29104;29097:12;29051:60;29001:116;:::o;29123:122::-;29196:24;29214:5;29196:24;:::i;:::-;29189:5;29186:35;29176:63;;29235:1;29232;29225:12;29176:63;29123:122;:::o
Swarm Source
ipfs://8c758063e6682b469287b6cb4e079ee506b06e3f6c60e9df792a352e8c18a9cc
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.