ERC-20
Overview
Max Total Supply
1,000,000,000,000 IDEAL
Holders
61
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
9,107,999,999.99999908 IDEALValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
IdealProtocol
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-19 */ // File: Ideal.sol /** Twitter- @IdealERC Taxes - 0/0 */ pragma solidity 0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract IdealProtocol is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _feeAddr1; uint256 private _feeAddr2; uint256 private _standardTax; address payable private _feeAddrWallet; string private constant _name = "Ideal Protocol"; string private constant _symbol = "IDEAL"; uint8 private constant _decimals = 9; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 private _maxTxAmount = 10000000000 * 10**9; uint256 private _maxWalletSize = 20000000000 * 10**9; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet = payable(_msgSender()); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet] = true; _standardTax=8; 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 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 setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } 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 _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()) { require(!bots[from] && !bots[to]); _feeAddr1 = 0; _feeAddr2 = _standardTax; if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } }else{ _feeAddr1 = 0; _feeAddr2 = 0; } _tokenTransfer(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function setStandardTax(uint256 newTax) external onlyOwner{ require(newTax<_standardTax); _standardTax=newTax; } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function sendETHToFee(uint256 amount) private { _feeAddrWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; cooldownEnabled = true; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } 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 manualswap() external { require(_msgSender() == _feeAddrWallet); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).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); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052683635c9adc5dea000006000196200001d91906200042d565b6000196200002c919062000494565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010556801158e460913d00000601155348015620000a657600080fd5b506000620000b9620003c360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000167620003c360201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001be620003c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000212620003cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008600c819055506200034d620003c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003b59190620004e0565b60405180910390a3620004fd565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200043a82620003f4565b91506200044783620003f4565b9250826200045a5762000459620003fe565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004a182620003f4565b9150620004ae83620003f4565b9250828203905081811115620004c957620004c862000465565b5b92915050565b620004da81620003f4565b82525050565b6000602082019050620004f76000830184620004cf565b92915050565b612fb7806200050d6000396000f3fe6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b60405161013091906121aa565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612265565b610418565b60405161016d91906122c0565b60405180910390f35b34801561018257600080fd5b5061018b610436565b60405161019891906122ea565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612305565b610447565b6040516101d591906122c0565b60405180910390f35b3480156101ea57600080fd5b506101f3610520565b6040516102009190612374565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906123bb565b610529565b005b34801561023e57600080fd5b506102476105db565b005b34801561025557600080fd5b50610270600480360381019061026b91906123e8565b61064d565b60405161027d91906122ea565b60405180910390f35b34801561029257600080fd5b5061029b61069e565b005b3480156102a957600080fd5b506102b26107f1565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612415565b6108a8565b005b3480156102e957600080fd5b506102f2610955565b6040516102ff9190612451565b60405180910390f35b34801561031457600080fd5b5061031d61097e565b60405161032a91906121aa565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612265565b6109bb565b60405161036791906122c0565b60405180910390f35b34801561037c57600080fd5b506103856109d9565b005b34801561039357600080fd5b5061039c610a53565b005b3480156103aa57600080fd5b506103c560048036038101906103c0919061246c565b610f55565b6040516103d291906122ea565b60405180910390f35b60606040518060400160405280600e81526020017f496465616c2050726f746f636f6c000000000000000000000000000000000000815250905090565b600061042c610425610fdc565b8484610fe4565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104548484846111ad565b61051584610460610fdc565b61051085604051806060016040528060288152602001612f5a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c6610fdc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ae9092919063ffffffff16565b610fe4565b600190509392505050565b60006009905090565b610531610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b5906124f8565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061c610fdc565b73ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600047905061064a81611712565b50565b6000610697600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461177e565b9050919050565b6106a6610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a906124f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f9610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d906124f8565b60405180910390fd5b683635c9adc5dea00000601081905550683635c9adc5dea00000601181905550565b6108b0610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610934906124f8565b60405180910390fd5b600c54811061094b57600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f494445414c000000000000000000000000000000000000000000000000000000815250905090565b60006109cf6109c8610fdc565b84846111ad565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1a610fdc565b73ffffffffffffffffffffffffffffffffffffffff1614610a3a57600080fd5b6000610a453061064d565b9050610a50816117ec565b50565b610a5b610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf906124f8565b60405180910390fd5b600f60149054906101000a900460ff1615610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f90612564565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000610fe4565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c379190612599565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc29190612599565b6040518363ffffffff1660e01b8152600401610cdf9291906125c6565b6020604051808303816000875af1158015610cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d229190612599565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dab3061064d565b600080610db6610955565b426040518863ffffffff1660e01b8152600401610dd896959493929190612634565b60606040518083038185885af1158015610df6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e1b91906126aa565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f0e9291906126fd565b6020604051808303816000875af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f51919061273b565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a906127da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061286c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111a091906122ea565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361121c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611213906128fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612990565b60405180910390fd5b600081116112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612a22565b60405180910390fd5b6112d6610955565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113445750611314610955565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561168d57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113ed5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6113f657600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114b25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115085750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115205750600f60179054906101000a900460ff165b156115c35760105481111561156a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156190612a8e565b60405180910390fd5b601154816115778461064d565b6115819190612add565b11156115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990612b5d565b60405180910390fd5b5b60006115ce3061064d565b9050600f60159054906101000a900460ff1615801561163b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116535750600f60169054906101000a900460ff165b801561165f5750600081115b156116875761166d816117ec565b600047905060008111156116855761168447611712565b5b505b5061169e565b6000600a819055506000600b819055505b6116a9838383611a65565b505050565b60008383111582906116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed91906121aa565b60405180910390fd5b50600083856117059190612b7d565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561177a573d6000803e3d6000fd5b5050565b60006008548211156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90612c23565b60405180910390fd5b60006117cf611a75565b90506117e48184611aa090919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561182457611823612c43565b5b6040519080825280602002602001820160405280156118525781602001602082028036833780820191505090505b509050308160008151811061186a57611869612c72565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119359190612599565b8160018151811061194957611948612c72565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119b030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fe4565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a14959493929190612d5f565b600060405180830381600087803b158015611a2e57600080fd5b505af1158015611a42573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611a70838383611aea565b505050565b6000806000611a82611cb5565b91509150611a998183611aa090919063ffffffff16565b9250505090565b6000611ae283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d17565b905092915050565b600080600080600080611afc87611d7a565b955095509550955095509550611b5a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bef85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c3b81611e8a565b611c458483611f47565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ca291906122ea565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea000009050611ceb683635c9adc5dea00000600854611aa090919063ffffffff16565b821015611d0a57600854683635c9adc5dea00000935093505050611d13565b81819350935050505b9091565b60008083118290611d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5591906121aa565b60405180910390fd5b5060008385611d6d9190612de8565b9050809150509392505050565b6000806000806000806000806000611d978a600a54600b54611f81565b9250925092506000611da7611a75565b90506000806000611dba8e878787612017565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116ae565b905092915050565b6000808284611e3b9190612add565b905083811015611e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7790612e65565b60405180910390fd5b8091505092915050565b6000611e94611a75565b90506000611eab82846120a090919063ffffffff16565b9050611eff81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611f5c82600854611de290919063ffffffff16565b600881905550611f7781600954611e2c90919063ffffffff16565b6009819055505050565b600080600080611fad6064611f9f888a6120a090919063ffffffff16565b611aa090919063ffffffff16565b90506000611fd76064611fc9888b6120a090919063ffffffff16565b611aa090919063ffffffff16565b9050600061200082611ff2858c611de290919063ffffffff16565b611de290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061203085896120a090919063ffffffff16565b9050600061204786896120a090919063ffffffff16565b9050600061205e87896120a090919063ffffffff16565b90506000612087826120798587611de290919063ffffffff16565b611de290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036120b25760009050612114565b600082846120c09190612e85565b90508284826120cf9190612de8565b1461210f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210690612f39565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612154578082015181840152602081019050612139565b60008484015250505050565b6000601f19601f8301169050919050565b600061217c8261211a565b6121868185612125565b9350612196818560208601612136565b61219f81612160565b840191505092915050565b600060208201905081810360008301526121c48184612171565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121fc826121d1565b9050919050565b61220c816121f1565b811461221757600080fd5b50565b60008135905061222981612203565b92915050565b6000819050919050565b6122428161222f565b811461224d57600080fd5b50565b60008135905061225f81612239565b92915050565b6000806040838503121561227c5761227b6121cc565b5b600061228a8582860161221a565b925050602061229b85828601612250565b9150509250929050565b60008115159050919050565b6122ba816122a5565b82525050565b60006020820190506122d560008301846122b1565b92915050565b6122e48161222f565b82525050565b60006020820190506122ff60008301846122db565b92915050565b60008060006060848603121561231e5761231d6121cc565b5b600061232c8682870161221a565b935050602061233d8682870161221a565b925050604061234e86828701612250565b9150509250925092565b600060ff82169050919050565b61236e81612358565b82525050565b60006020820190506123896000830184612365565b92915050565b612398816122a5565b81146123a357600080fd5b50565b6000813590506123b58161238f565b92915050565b6000602082840312156123d1576123d06121cc565b5b60006123df848285016123a6565b91505092915050565b6000602082840312156123fe576123fd6121cc565b5b600061240c8482850161221a565b91505092915050565b60006020828403121561242b5761242a6121cc565b5b600061243984828501612250565b91505092915050565b61244b816121f1565b82525050565b60006020820190506124666000830184612442565b92915050565b60008060408385031215612483576124826121cc565b5b60006124918582860161221a565b92505060206124a28582860161221a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124e2602083612125565b91506124ed826124ac565b602082019050919050565b60006020820190508181036000830152612511816124d5565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061254e601783612125565b915061255982612518565b602082019050919050565b6000602082019050818103600083015261257d81612541565b9050919050565b60008151905061259381612203565b92915050565b6000602082840312156125af576125ae6121cc565b5b60006125bd84828501612584565b91505092915050565b60006040820190506125db6000830185612442565b6125e86020830184612442565b9392505050565b6000819050919050565b6000819050919050565b600061261e612619612614846125ef565b6125f9565b61222f565b9050919050565b61262e81612603565b82525050565b600060c0820190506126496000830189612442565b61265660208301886122db565b6126636040830187612625565b6126706060830186612625565b61267d6080830185612442565b61268a60a08301846122db565b979650505050505050565b6000815190506126a481612239565b92915050565b6000806000606084860312156126c3576126c26121cc565b5b60006126d186828701612695565b93505060206126e286828701612695565b92505060406126f386828701612695565b9150509250925092565b60006040820190506127126000830185612442565b61271f60208301846122db565b9392505050565b6000815190506127358161238f565b92915050565b600060208284031215612751576127506121cc565b5b600061275f84828501612726565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006127c4602483612125565b91506127cf82612768565b604082019050919050565b600060208201905081810360008301526127f3816127b7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612856602283612125565b9150612861826127fa565b604082019050919050565b6000602082019050818103600083015261288581612849565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128e8602583612125565b91506128f38261288c565b604082019050919050565b60006020820190508181036000830152612917816128db565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061297a602383612125565b91506129858261291e565b604082019050919050565b600060208201905081810360008301526129a98161296d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a0c602983612125565b9150612a17826129b0565b604082019050919050565b60006020820190508181036000830152612a3b816129ff565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612a78601983612125565b9150612a8382612a42565b602082019050919050565b60006020820190508181036000830152612aa781612a6b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ae88261222f565b9150612af38361222f565b9250828201905080821115612b0b57612b0a612aae565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612b47601a83612125565b9150612b5282612b11565b602082019050919050565b60006020820190508181036000830152612b7681612b3a565b9050919050565b6000612b888261222f565b9150612b938361222f565b9250828203905081811115612bab57612baa612aae565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c0d602a83612125565b9150612c1882612bb1565b604082019050919050565b60006020820190508181036000830152612c3c81612c00565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cd6816121f1565b82525050565b6000612ce88383612ccd565b60208301905092915050565b6000602082019050919050565b6000612d0c82612ca1565b612d168185612cac565b9350612d2183612cbd565b8060005b83811015612d52578151612d398882612cdc565b9750612d4483612cf4565b925050600181019050612d25565b5085935050505092915050565b600060a082019050612d7460008301886122db565b612d816020830187612625565b8181036040830152612d938186612d01565b9050612da26060830185612442565b612daf60808301846122db565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612df38261222f565b9150612dfe8361222f565b925082612e0e57612e0d612db9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612e4f601b83612125565b9150612e5a82612e19565b602082019050919050565b60006020820190508181036000830152612e7e81612e42565b9050919050565b6000612e908261222f565b9150612e9b8361222f565b9250828202612ea98161222f565b91508282048414831517612ec057612ebf612aae565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f23602183612125565b9150612f2e82612ec7565b604082019050919050565b60006020820190508181036000830152612f5281612f16565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207f25a6f7f813ca536959a3391f7bc4d544d03c02cd14fe665942d6fa8ba9395c64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b60405161013091906121aa565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612265565b610418565b60405161016d91906122c0565b60405180910390f35b34801561018257600080fd5b5061018b610436565b60405161019891906122ea565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612305565b610447565b6040516101d591906122c0565b60405180910390f35b3480156101ea57600080fd5b506101f3610520565b6040516102009190612374565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906123bb565b610529565b005b34801561023e57600080fd5b506102476105db565b005b34801561025557600080fd5b50610270600480360381019061026b91906123e8565b61064d565b60405161027d91906122ea565b60405180910390f35b34801561029257600080fd5b5061029b61069e565b005b3480156102a957600080fd5b506102b26107f1565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612415565b6108a8565b005b3480156102e957600080fd5b506102f2610955565b6040516102ff9190612451565b60405180910390f35b34801561031457600080fd5b5061031d61097e565b60405161032a91906121aa565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612265565b6109bb565b60405161036791906122c0565b60405180910390f35b34801561037c57600080fd5b506103856109d9565b005b34801561039357600080fd5b5061039c610a53565b005b3480156103aa57600080fd5b506103c560048036038101906103c0919061246c565b610f55565b6040516103d291906122ea565b60405180910390f35b60606040518060400160405280600e81526020017f496465616c2050726f746f636f6c000000000000000000000000000000000000815250905090565b600061042c610425610fdc565b8484610fe4565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104548484846111ad565b61051584610460610fdc565b61051085604051806060016040528060288152602001612f5a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c6610fdc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ae9092919063ffffffff16565b610fe4565b600190509392505050565b60006009905090565b610531610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b5906124f8565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061c610fdc565b73ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600047905061064a81611712565b50565b6000610697600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461177e565b9050919050565b6106a6610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a906124f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f9610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d906124f8565b60405180910390fd5b683635c9adc5dea00000601081905550683635c9adc5dea00000601181905550565b6108b0610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610934906124f8565b60405180910390fd5b600c54811061094b57600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f494445414c000000000000000000000000000000000000000000000000000000815250905090565b60006109cf6109c8610fdc565b84846111ad565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1a610fdc565b73ffffffffffffffffffffffffffffffffffffffff1614610a3a57600080fd5b6000610a453061064d565b9050610a50816117ec565b50565b610a5b610fdc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf906124f8565b60405180910390fd5b600f60149054906101000a900460ff1615610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f90612564565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000610fe4565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c379190612599565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc29190612599565b6040518363ffffffff1660e01b8152600401610cdf9291906125c6565b6020604051808303816000875af1158015610cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d229190612599565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dab3061064d565b600080610db6610955565b426040518863ffffffff1660e01b8152600401610dd896959493929190612634565b60606040518083038185885af1158015610df6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e1b91906126aa565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f0e9291906126fd565b6020604051808303816000875af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f51919061273b565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a906127da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061286c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111a091906122ea565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361121c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611213906128fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612990565b60405180910390fd5b600081116112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612a22565b60405180910390fd5b6112d6610955565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113445750611314610955565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561168d57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113ed5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6113f657600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114b25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115085750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115205750600f60179054906101000a900460ff165b156115c35760105481111561156a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156190612a8e565b60405180910390fd5b601154816115778461064d565b6115819190612add565b11156115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990612b5d565b60405180910390fd5b5b60006115ce3061064d565b9050600f60159054906101000a900460ff1615801561163b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116535750600f60169054906101000a900460ff165b801561165f5750600081115b156116875761166d816117ec565b600047905060008111156116855761168447611712565b5b505b5061169e565b6000600a819055506000600b819055505b6116a9838383611a65565b505050565b60008383111582906116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed91906121aa565b60405180910390fd5b50600083856117059190612b7d565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561177a573d6000803e3d6000fd5b5050565b60006008548211156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90612c23565b60405180910390fd5b60006117cf611a75565b90506117e48184611aa090919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561182457611823612c43565b5b6040519080825280602002602001820160405280156118525781602001602082028036833780820191505090505b509050308160008151811061186a57611869612c72565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119359190612599565b8160018151811061194957611948612c72565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119b030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fe4565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a14959493929190612d5f565b600060405180830381600087803b158015611a2e57600080fd5b505af1158015611a42573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611a70838383611aea565b505050565b6000806000611a82611cb5565b91509150611a998183611aa090919063ffffffff16565b9250505090565b6000611ae283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d17565b905092915050565b600080600080600080611afc87611d7a565b955095509550955095509550611b5a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bef85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c3b81611e8a565b611c458483611f47565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ca291906122ea565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea000009050611ceb683635c9adc5dea00000600854611aa090919063ffffffff16565b821015611d0a57600854683635c9adc5dea00000935093505050611d13565b81819350935050505b9091565b60008083118290611d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5591906121aa565b60405180910390fd5b5060008385611d6d9190612de8565b9050809150509392505050565b6000806000806000806000806000611d978a600a54600b54611f81565b9250925092506000611da7611a75565b90506000806000611dba8e878787612017565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116ae565b905092915050565b6000808284611e3b9190612add565b905083811015611e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7790612e65565b60405180910390fd5b8091505092915050565b6000611e94611a75565b90506000611eab82846120a090919063ffffffff16565b9050611eff81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611f5c82600854611de290919063ffffffff16565b600881905550611f7781600954611e2c90919063ffffffff16565b6009819055505050565b600080600080611fad6064611f9f888a6120a090919063ffffffff16565b611aa090919063ffffffff16565b90506000611fd76064611fc9888b6120a090919063ffffffff16565b611aa090919063ffffffff16565b9050600061200082611ff2858c611de290919063ffffffff16565b611de290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061203085896120a090919063ffffffff16565b9050600061204786896120a090919063ffffffff16565b9050600061205e87896120a090919063ffffffff16565b90506000612087826120798587611de290919063ffffffff16565b611de290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036120b25760009050612114565b600082846120c09190612e85565b90508284826120cf9190612de8565b1461210f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210690612f39565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612154578082015181840152602081019050612139565b60008484015250505050565b6000601f19601f8301169050919050565b600061217c8261211a565b6121868185612125565b9350612196818560208601612136565b61219f81612160565b840191505092915050565b600060208201905081810360008301526121c48184612171565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121fc826121d1565b9050919050565b61220c816121f1565b811461221757600080fd5b50565b60008135905061222981612203565b92915050565b6000819050919050565b6122428161222f565b811461224d57600080fd5b50565b60008135905061225f81612239565b92915050565b6000806040838503121561227c5761227b6121cc565b5b600061228a8582860161221a565b925050602061229b85828601612250565b9150509250929050565b60008115159050919050565b6122ba816122a5565b82525050565b60006020820190506122d560008301846122b1565b92915050565b6122e48161222f565b82525050565b60006020820190506122ff60008301846122db565b92915050565b60008060006060848603121561231e5761231d6121cc565b5b600061232c8682870161221a565b935050602061233d8682870161221a565b925050604061234e86828701612250565b9150509250925092565b600060ff82169050919050565b61236e81612358565b82525050565b60006020820190506123896000830184612365565b92915050565b612398816122a5565b81146123a357600080fd5b50565b6000813590506123b58161238f565b92915050565b6000602082840312156123d1576123d06121cc565b5b60006123df848285016123a6565b91505092915050565b6000602082840312156123fe576123fd6121cc565b5b600061240c8482850161221a565b91505092915050565b60006020828403121561242b5761242a6121cc565b5b600061243984828501612250565b91505092915050565b61244b816121f1565b82525050565b60006020820190506124666000830184612442565b92915050565b60008060408385031215612483576124826121cc565b5b60006124918582860161221a565b92505060206124a28582860161221a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124e2602083612125565b91506124ed826124ac565b602082019050919050565b60006020820190508181036000830152612511816124d5565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061254e601783612125565b915061255982612518565b602082019050919050565b6000602082019050818103600083015261257d81612541565b9050919050565b60008151905061259381612203565b92915050565b6000602082840312156125af576125ae6121cc565b5b60006125bd84828501612584565b91505092915050565b60006040820190506125db6000830185612442565b6125e86020830184612442565b9392505050565b6000819050919050565b6000819050919050565b600061261e612619612614846125ef565b6125f9565b61222f565b9050919050565b61262e81612603565b82525050565b600060c0820190506126496000830189612442565b61265660208301886122db565b6126636040830187612625565b6126706060830186612625565b61267d6080830185612442565b61268a60a08301846122db565b979650505050505050565b6000815190506126a481612239565b92915050565b6000806000606084860312156126c3576126c26121cc565b5b60006126d186828701612695565b93505060206126e286828701612695565b92505060406126f386828701612695565b9150509250925092565b60006040820190506127126000830185612442565b61271f60208301846122db565b9392505050565b6000815190506127358161238f565b92915050565b600060208284031215612751576127506121cc565b5b600061275f84828501612726565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006127c4602483612125565b91506127cf82612768565b604082019050919050565b600060208201905081810360008301526127f3816127b7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612856602283612125565b9150612861826127fa565b604082019050919050565b6000602082019050818103600083015261288581612849565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128e8602583612125565b91506128f38261288c565b604082019050919050565b60006020820190508181036000830152612917816128db565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061297a602383612125565b91506129858261291e565b604082019050919050565b600060208201905081810360008301526129a98161296d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a0c602983612125565b9150612a17826129b0565b604082019050919050565b60006020820190508181036000830152612a3b816129ff565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612a78601983612125565b9150612a8382612a42565b602082019050919050565b60006020820190508181036000830152612aa781612a6b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ae88261222f565b9150612af38361222f565b9250828201905080821115612b0b57612b0a612aae565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612b47601a83612125565b9150612b5282612b11565b602082019050919050565b60006020820190508181036000830152612b7681612b3a565b9050919050565b6000612b888261222f565b9150612b938361222f565b9250828203905081811115612bab57612baa612aae565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c0d602a83612125565b9150612c1882612bb1565b604082019050919050565b60006020820190508181036000830152612c3c81612c00565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cd6816121f1565b82525050565b6000612ce88383612ccd565b60208301905092915050565b6000602082019050919050565b6000612d0c82612ca1565b612d168185612cac565b9350612d2183612cbd565b8060005b83811015612d52578151612d398882612cdc565b9750612d4483612cf4565b925050600181019050612d25565b5085935050505092915050565b600060a082019050612d7460008301886122db565b612d816020830187612625565b8181036040830152612d938186612d01565b9050612da26060830185612442565b612daf60808301846122db565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612df38261222f565b9150612dfe8361222f565b925082612e0e57612e0d612db9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612e4f601b83612125565b9150612e5a82612e19565b602082019050919050565b60006020820190508181036000830152612e7e81612e42565b9050919050565b6000612e908261222f565b9150612e9b8361222f565b9250828202612ea98161222f565b91508282048414831517612ec057612ebf612aae565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f23602183612125565b9150612f2e82612ec7565b604082019050919050565b60006020820190508181036000830152612f5281612f16565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207f25a6f7f813ca536959a3391f7bc4d544d03c02cd14fe665942d6fa8ba9395c64736f6c63430008110033
Deployed Bytecode Sourcemap
3549:10000:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6172:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5597:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6341:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5506:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6662:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11664:193;;;;;;;;;;;;;:::i;:::-;;5700:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2630:148;;;;;;;;;;;;;:::i;:::-;;9390:118;;;;;;;;;;;;;:::i;:::-;;9251:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2416:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5411:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5846:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11462:194;;;;;;;;;;;;;:::i;:::-;;9620:773;;;;;;;;;;;;;:::i;:::-;;6021:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5320:83;5357:13;5390:5;;;;;;;;;;;;;;;;;5383:12;;5320:83;:::o;6172:161::-;6247:4;6264:39;6273:12;:10;:12::i;:::-;6287:7;6296:6;6264:8;:39::i;:::-;6321:4;6314:11;;6172:161;;;;:::o;5597:95::-;5650:7;4055:21;5670:14;;5597:95;:::o;6341:313::-;6439:4;6456:36;6466:6;6474:9;6485:6;6456:9;:36::i;:::-;6503:121;6512:6;6520:12;:10;:12::i;:::-;6534:89;6572:6;6534:89;;;;;;;;;;;;;;;;;:11;:19;6546:6;6534:19;;;;;;;;;;;;;;;:33;6554:12;:10;:12::i;:::-;6534:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6503:8;:121::i;:::-;6642:4;6635:11;;6341:313;;;;;:::o;5506:83::-;5547:5;4458:1;5565:16;;5506:83;:::o;6662:103::-;2553:12;:10;:12::i;:::-;2543:22;;:6;;;;;;;;;;:22;;;2535:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6752:5:::1;6734:15;;:23;;;;;;;;;;;;;;;;;;6662:103:::0;:::o;11664:193::-;11730:14;;;;;;;;;;;11714:30;;:12;:10;:12::i;:::-;:30;;;11706:39;;;;;;11756:26;11785:21;11756:50;;11817:32;11830:18;11817:12;:32::i;:::-;11695:162;11664:193::o;5700:138::-;5766:7;5793:37;5813:7;:16;5821:7;5813:16;;;;;;;;;;;;;;;;5793:19;:37::i;:::-;5786:44;;5700:138;;;:::o;2630:148::-;2553:12;:10;:12::i;:::-;2543:22;;:6;;;;;;;;;;:22;;;2535:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2737:1:::1;2700:40;;2721:6;::::0;::::1;;;;;;;;2700:40;;;;;;;;;;;;2768:1;2751:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2630:148::o:0;9390:118::-;2553:12;:10;:12::i;:::-;2543:22;;:6;;;;;;;;;;:22;;;2535:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4055:21:::1;9443:12;:22;;;;4055:21;9476:14;:24;;;;9390:118::o:0;9251:131::-;2553:12;:10;:12::i;:::-;2543:22;;:6;;;;;;;;;;:22;;;2535:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9333:12:::1;;9326:6;:19;9318:28;;;::::0;::::1;;9368:6;9355:12;:19;;;;9251:131:::0;:::o;2416:79::-;2454:7;2481:6;;;;;;;;;;;2474:13;;2416:79;:::o;5411:87::-;5450:13;5483:7;;;;;;;;;;;;;;;;;5476:14;;5411:87;:::o;5846:167::-;5924:4;5941:42;5951:12;:10;:12::i;:::-;5965:9;5976:6;5941:9;:42::i;:::-;6001:4;5994:11;;5846:167;;;;:::o;11462:194::-;11528:14;;;;;;;;;;;11512:30;;:12;:10;:12::i;:::-;:30;;;11504:39;;;;;;11554:23;11580:24;11598:4;11580:9;:24::i;:::-;11554:50;;11615:33;11632:15;11615:16;:33::i;:::-;11493:163;11462:194::o;9620:773::-;2553:12;:10;:12::i;:::-;2543:22;;:6;;;;;;;;;;:22;;;2535:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9684:11:::1;;;;;;;;;;;9683:12;9675:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9733:35;9790:42;9733:100;;9862:16;9844:15;;:34;;;;;;;;;;;;;;;;;;9889:58;9906:4;9921:15;;;;;;;;;;;4055:21;9889:8;:58::i;:::-;9992:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9974:56;;;10039:4;10046:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9974:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9958:13;;:112;;;;;;;;;;;;;;;;;;10081:15;;;;;;;;;;;:31;;;10120:21;10151:4;10157:24;10175:4;10157:9;:24::i;:::-;10182:1;10184::::0;10186:7:::1;:5;:7::i;:::-;10194:15;10081:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10235:4;10221:11;;:18;;;;;;;;;;;;;;;;;;10268:4;10250:15;;:22;;;;;;;;;;;;;;;;;;10299:4;10285:11;;:18;;;;;;;;;;;;;;;;;;10321:13;;;;;;;;;;;10314:29;;;10352:15;;;;;;;;;;;10370:14;10314:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9664:729;9620:773::o:0;6021:143::-;6102:7;6129:11;:18;6141:5;6129:18;;;;;;;;;;;;;;;:27;6148:7;6129:27;;;;;;;;;;;;;;;;6122:34;;6021:143;;;;:::o;134:98::-;187:7;214:10;207:17;;134:98;:::o;7035:335::-;7145:1;7128:19;;:5;:19;;;7120:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7226:1;7207:21;;:7;:21;;;7199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7308:6;7278:11;:18;7290:5;7278:18;;;;;;;;;;;;;;;:27;7297:7;7278:27;;;;;;;;;;;;;;;:36;;;;7346:7;7330:32;;7339:5;7330:32;;;7355:6;7330:32;;;;;;:::i;:::-;;;;;;;;7035:335;;;:::o;7378:1374::-;7482:1;7466:18;;:4;:18;;;7458:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7559:1;7545:16;;:2;:16;;;7537:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7629:1;7620:6;:10;7612:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7703:7;:5;:7::i;:::-;7695:15;;:4;:15;;;;:32;;;;;7720:7;:5;:7::i;:::-;7714:13;;:2;:13;;;;7695:32;7691:1011;;;7753:4;:10;7758:4;7753:10;;;;;;;;;;;;;;;;;;;;;;;;;7752:11;:24;;;;;7768:4;:8;7773:2;7768:8;;;;;;;;;;;;;;;;;;;;;;;;;7767:9;7752:24;7744:33;;;;;;7804:1;7792:9;:13;;;;7832:12;;7820:9;:24;;;;7871:13;;;;;;;;;;;7863:21;;:4;:21;;;:55;;;;;7902:15;;;;;;;;;;;7888:30;;:2;:30;;;;7863:55;:83;;;;;7924:18;:22;7943:2;7924:22;;;;;;;;;;;;;;;;;;;;;;;;;7922:24;7863:83;:102;;;;;7950:15;;;;;;;;;;;7863:102;7859:332;;;8033:12;;8023:6;:22;;8015:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8128:14;;8118:6;8102:13;8112:2;8102:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8094:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7859:332;8209:28;8240:24;8258:4;8240:9;:24::i;:::-;8209:55;;8284:6;;;;;;;;;;;8283:7;:32;;;;;8302:13;;;;;;;;;;;8294:21;;:4;:21;;;;8283:32;:47;;;;;8319:11;;;;;;;;;;;8283:47;:73;;;;;8355:1;8334:20;:22;8283:73;8279:344;;;8377:38;8394:20;8377:16;:38::i;:::-;8434:26;8463:21;8434:50;;8527:1;8506:18;:22;8503:105;;;8553:35;8566:21;8553:12;:35::i;:::-;8503:105;8358:265;8279:344;7729:905;7691:1011;;;8663:1;8651:9;:13;;;;8689:1;8677:9;:13;;;;7691:1011;8714:30;8729:4;8734:2;8737:6;8714:14;:30::i;:::-;7378:1374;;;:::o;1271:190::-;1357:7;1390:1;1385;:6;;1393:12;1377:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1417:9;1433:1;1429;:5;;;;:::i;:::-;1417:17;;1452:1;1445:8;;;1271:190;;;;;:::o;9516:96::-;9573:14;;;;;;;;;;;:23;;:31;9597:6;9573:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9516:96;:::o;6773:254::-;6840:7;6879;;6868;:18;;6860:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6944:19;6967:10;:8;:10::i;:::-;6944:33;;6995:24;7007:11;6995:7;:11;;:24;;;;:::i;:::-;6988:31;;;6773:254;;;:::o;8760:483::-;4907:4;4898:6;;:13;;;;;;;;;;;;;;;;;;8838:21:::1;8876:1;8862:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8838:40;;8907:4;8889;8894:1;8889:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8933:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8923:4;8928:1;8923:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8966:62;8983:4;8998:15;;;;;;;;;;;9016:11;8966:8;:62::i;:::-;9039:15;;;;;;;;;;;:66;;;9120:11;9146:1;9162:4;9189;9209:15;9039:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8827:416;4943:5:::0;4934:6;;:14;;;;;;;;;;;;;;;;;;8760:483;:::o;10401:146::-;10495:44;10513:6;10521:9;10532:6;10495:17;:44::i;:::-;10401:146;;;:::o;13119:163::-;13160:7;13181:15;13198;13217:19;:17;:19::i;:::-;13180:56;;;;13254:20;13266:7;13254;:11;;:20;;;;:::i;:::-;13247:27;;;;13119:163;:::o;1723:132::-;1781:7;1808:39;1812:1;1815;1808:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1801:46;;1723:132;;;;:::o;10555:487::-;10654:15;10671:23;10696:12;10710:23;10735:12;10749:13;10766:19;10777:7;10766:10;:19::i;:::-;10653:132;;;;;;;;;;;;10814:28;10834:7;10814;:15;10822:6;10814:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10796:7;:15;10804:6;10796:15;;;;;;;;;;;;;;;:46;;;;10874:39;10897:15;10874:7;:18;10882:9;10874:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10853:7;:18;10861:9;10853:18;;;;;;;;;;;;;;;:60;;;;10924:16;10934:5;10924:9;:16::i;:::-;10951:23;10963:4;10969;10951:11;:23::i;:::-;11007:9;10990:44;;10999:6;10990:44;;;11018:15;10990:44;;;;;;:::i;:::-;;;;;;;;10642:400;;;;;;10555:487;;;:::o;13290:256::-;13340:7;13349;13369:15;13387:7;;13369:25;;13405:15;4055:21;13405:25;;13455:20;4055:21;13455:7;;:11;;:20;;;;:::i;:::-;13445:7;:30;13441:61;;;13485:7;;4055:21;13477:25;;;;;;;;13441:61;13521:7;13530;13513:25;;;;;;13290:256;;;:::o;1863:189::-;1949:7;1981:1;1977;:5;1984:12;1969:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2008:9;2024:1;2020;:5;;;;:::i;:::-;2008:17;;2043:1;2036:8;;;1863:189;;;;;:::o;11867:471::-;11926:7;11935;11944;11953;11962;11971;11992:23;12017:12;12031:13;12048:42;12060:7;12069:9;;12080;;12048:11;:42::i;:::-;11991:99;;;;;;12101:19;12124:10;:8;:10::i;:::-;12101:33;;12146:15;12163:23;12188:12;12204:46;12216:7;12225:4;12231:5;12238:11;12204;:46::i;:::-;12145:105;;;;;;12269:7;12278:15;12295:4;12301:15;12318:4;12324:5;12261:69;;;;;;;;;;;;;;;;;;;11867:471;;;;;;;:::o;1127:136::-;1185:7;1212:43;1216:1;1219;1212:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1205:50;;1127:136;;;;:::o;940:179::-;998:7;1018:9;1034:1;1030;:5;;;;:::i;:::-;1018:17;;1059:1;1054;:6;;1046:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1110:1;1103:8;;;940:179;;;;:::o;11050:212::-;11103:19;11126:10;:8;:10::i;:::-;11103:33;;11147:13;11163:22;11173:11;11163:5;:9;;:22;;;;:::i;:::-;11147:38;;11221:33;11248:5;11221:7;:22;11237:4;11221:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11196:7;:22;11212:4;11196:22;;;;;;;;;;;;;;;:58;;;;11092:170;;11050:212;:::o;11270:147::-;11348:17;11360:4;11348:7;;:11;;:17;;;;:::i;:::-;11338:7;:27;;;;11389:20;11404:4;11389:10;;:14;;:20;;;;:::i;:::-;11376:10;:33;;;;11270:147;;:::o;12346:351::-;12439:7;12448;12457;12477:12;12492:28;12516:3;12492:19;12504:6;12492:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12477:43;;12531:13;12547:29;12572:3;12547:20;12559:7;12547;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12531:45;;12587:23;12613:28;12635:5;12613:17;12625:4;12613:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12587:54;;12660:15;12677:4;12683:5;12652:37;;;;;;;;;12346:351;;;;;;;:::o;12705:409::-;12815:7;12824;12833;12853:15;12871:24;12883:11;12871:7;:11;;:24;;;;:::i;:::-;12853:42;;12906:12;12921:21;12930:11;12921:4;:8;;:21;;;;:::i;:::-;12906:36;;12953:13;12969:22;12979:11;12969:5;:9;;:22;;;;:::i;:::-;12953:38;;13002:23;13028:28;13050:5;13028:17;13040:4;13028:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13002:54;;13075:7;13084:15;13101:4;13067:39;;;;;;;;;;12705:409;;;;;;;;:::o;1469:246::-;1527:7;1556:1;1551;:6;1547:47;;1581:1;1574:8;;;;1547:47;1604:9;1620:1;1616;:5;;;;:::i;:::-;1604:17;;1649:1;1644;1640;:5;;;;:::i;:::-;:10;1632:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1706:1;1699:8;;;1469:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:116::-;4923:21;4938:5;4923:21;:::i;:::-;4916:5;4913:32;4903:60;;4959:1;4956;4949:12;4903:60;4853:116;:::o;4975:133::-;5018:5;5056:6;5043:20;5034:29;;5072:30;5096:5;5072:30;:::i;:::-;4975:133;;;;:::o;5114:323::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:50;5412:7;5403:6;5392:9;5388:22;5370:50;:::i;:::-;5360:60;;5316:114;5114:323;;;;:::o;5443:329::-;5502:6;5551:2;5539:9;5530:7;5526:23;5522:32;5519:119;;;5557:79;;:::i;:::-;5519:119;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5443:329;;;;:::o;5778:::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:118::-;6200:24;6218:5;6200:24;:::i;:::-;6195:3;6188:37;6113:118;;:::o;6237:222::-;6330:4;6368:2;6357:9;6353:18;6345:26;;6381:71;6449:1;6438:9;6434:17;6425:6;6381:71;:::i;:::-;6237:222;;;;:::o;6465:474::-;6533:6;6541;6590:2;6578:9;6569:7;6565:23;6561:32;6558:119;;;6596:79;;:::i;:::-;6558:119;6716:1;6741:53;6786:7;6777:6;6766:9;6762:22;6741:53;:::i;:::-;6731:63;;6687:117;6843:2;6869:53;6914:7;6905:6;6894:9;6890:22;6869:53;:::i;:::-;6859:63;;6814:118;6465:474;;;;;:::o;6945:182::-;7085:34;7081:1;7073:6;7069:14;7062:58;6945:182;:::o;7133:366::-;7275:3;7296:67;7360:2;7355:3;7296:67;:::i;:::-;7289:74;;7372:93;7461:3;7372:93;:::i;:::-;7490:2;7485:3;7481:12;7474:19;;7133:366;;;:::o;7505:419::-;7671:4;7709:2;7698:9;7694:18;7686:26;;7758:9;7752:4;7748:20;7744:1;7733:9;7729:17;7722:47;7786:131;7912:4;7786:131;:::i;:::-;7778:139;;7505:419;;;:::o;7930:173::-;8070:25;8066:1;8058:6;8054:14;8047:49;7930:173;:::o;8109:366::-;8251:3;8272:67;8336:2;8331:3;8272:67;:::i;:::-;8265:74;;8348:93;8437:3;8348:93;:::i;:::-;8466:2;8461:3;8457:12;8450:19;;8109:366;;;:::o;8481:419::-;8647:4;8685:2;8674:9;8670:18;8662:26;;8734:9;8728:4;8724:20;8720:1;8709:9;8705:17;8698:47;8762:131;8888:4;8762:131;:::i;:::-;8754:139;;8481:419;;;:::o;8906:143::-;8963:5;8994:6;8988:13;8979:22;;9010:33;9037:5;9010:33;:::i;:::-;8906:143;;;;:::o;9055:351::-;9125:6;9174:2;9162:9;9153:7;9149:23;9145:32;9142:119;;;9180:79;;:::i;:::-;9142:119;9300:1;9325:64;9381:7;9372:6;9361:9;9357:22;9325:64;:::i;:::-;9315:74;;9271:128;9055:351;;;;:::o;9412:332::-;9533:4;9571:2;9560:9;9556:18;9548:26;;9584:71;9652:1;9641:9;9637:17;9628:6;9584:71;:::i;:::-;9665:72;9733:2;9722:9;9718:18;9709:6;9665:72;:::i;:::-;9412:332;;;;;:::o;9750:85::-;9795:7;9824:5;9813:16;;9750:85;;;:::o;9841:60::-;9869:3;9890:5;9883:12;;9841:60;;;:::o;9907:158::-;9965:9;9998:61;10016:42;10025:32;10051:5;10025:32;:::i;:::-;10016:42;:::i;:::-;9998:61;:::i;:::-;9985:74;;9907:158;;;:::o;10071:147::-;10166:45;10205:5;10166:45;:::i;:::-;10161:3;10154:58;10071:147;;:::o;10224:807::-;10473:4;10511:3;10500:9;10496:19;10488:27;;10525:71;10593:1;10582:9;10578:17;10569:6;10525:71;:::i;:::-;10606:72;10674:2;10663:9;10659:18;10650:6;10606:72;:::i;:::-;10688:80;10764:2;10753:9;10749:18;10740:6;10688:80;:::i;:::-;10778;10854:2;10843:9;10839:18;10830:6;10778:80;:::i;:::-;10868:73;10936:3;10925:9;10921:19;10912:6;10868:73;:::i;:::-;10951;11019:3;11008:9;11004:19;10995:6;10951:73;:::i;:::-;10224:807;;;;;;;;;:::o;11037:143::-;11094:5;11125:6;11119:13;11110:22;;11141:33;11168:5;11141:33;:::i;:::-;11037:143;;;;:::o;11186:663::-;11274:6;11282;11290;11339:2;11327:9;11318:7;11314:23;11310:32;11307:119;;;11345:79;;:::i;:::-;11307:119;11465:1;11490:64;11546:7;11537:6;11526:9;11522:22;11490:64;:::i;:::-;11480:74;;11436:128;11603:2;11629:64;11685:7;11676:6;11665:9;11661:22;11629:64;:::i;:::-;11619:74;;11574:129;11742:2;11768:64;11824:7;11815:6;11804:9;11800:22;11768:64;:::i;:::-;11758:74;;11713:129;11186:663;;;;;:::o;11855:332::-;11976:4;12014:2;12003:9;11999:18;11991:26;;12027:71;12095:1;12084:9;12080:17;12071:6;12027:71;:::i;:::-;12108:72;12176:2;12165:9;12161:18;12152:6;12108:72;:::i;:::-;11855:332;;;;;:::o;12193:137::-;12247:5;12278:6;12272:13;12263:22;;12294:30;12318:5;12294:30;:::i;:::-;12193:137;;;;:::o;12336:345::-;12403:6;12452:2;12440:9;12431:7;12427:23;12423:32;12420:119;;;12458:79;;:::i;:::-;12420:119;12578:1;12603:61;12656:7;12647:6;12636:9;12632:22;12603:61;:::i;:::-;12593:71;;12549:125;12336:345;;;;:::o;12687:223::-;12827:34;12823:1;12815:6;12811:14;12804:58;12896:6;12891:2;12883:6;12879:15;12872:31;12687:223;:::o;12916:366::-;13058:3;13079:67;13143:2;13138:3;13079:67;:::i;:::-;13072:74;;13155:93;13244:3;13155:93;:::i;:::-;13273:2;13268:3;13264:12;13257:19;;12916:366;;;:::o;13288:419::-;13454:4;13492:2;13481:9;13477:18;13469:26;;13541:9;13535:4;13531:20;13527:1;13516:9;13512:17;13505:47;13569:131;13695:4;13569:131;:::i;:::-;13561:139;;13288:419;;;:::o;13713:221::-;13853:34;13849:1;13841:6;13837:14;13830:58;13922:4;13917:2;13909:6;13905:15;13898:29;13713:221;:::o;13940:366::-;14082:3;14103:67;14167:2;14162:3;14103:67;:::i;:::-;14096:74;;14179:93;14268:3;14179:93;:::i;:::-;14297:2;14292:3;14288:12;14281:19;;13940:366;;;:::o;14312:419::-;14478:4;14516:2;14505:9;14501:18;14493:26;;14565:9;14559:4;14555:20;14551:1;14540:9;14536:17;14529:47;14593:131;14719:4;14593:131;:::i;:::-;14585:139;;14312:419;;;:::o;14737:224::-;14877:34;14873:1;14865:6;14861:14;14854:58;14946:7;14941:2;14933:6;14929:15;14922:32;14737:224;:::o;14967:366::-;15109:3;15130:67;15194:2;15189:3;15130:67;:::i;:::-;15123:74;;15206:93;15295:3;15206:93;:::i;:::-;15324:2;15319:3;15315:12;15308:19;;14967:366;;;:::o;15339:419::-;15505:4;15543:2;15532:9;15528:18;15520:26;;15592:9;15586:4;15582:20;15578:1;15567:9;15563:17;15556:47;15620:131;15746:4;15620:131;:::i;:::-;15612:139;;15339:419;;;:::o;15764:222::-;15904:34;15900:1;15892:6;15888:14;15881:58;15973:5;15968:2;15960:6;15956:15;15949:30;15764:222;:::o;15992:366::-;16134:3;16155:67;16219:2;16214:3;16155:67;:::i;:::-;16148:74;;16231:93;16320:3;16231:93;:::i;:::-;16349:2;16344:3;16340:12;16333:19;;15992:366;;;:::o;16364:419::-;16530:4;16568:2;16557:9;16553:18;16545:26;;16617:9;16611:4;16607:20;16603:1;16592:9;16588:17;16581:47;16645:131;16771:4;16645:131;:::i;:::-;16637:139;;16364:419;;;:::o;16789:228::-;16929:34;16925:1;16917:6;16913:14;16906:58;16998:11;16993:2;16985:6;16981:15;16974:36;16789:228;:::o;17023:366::-;17165:3;17186:67;17250:2;17245:3;17186:67;:::i;:::-;17179:74;;17262:93;17351:3;17262:93;:::i;:::-;17380:2;17375:3;17371:12;17364:19;;17023:366;;;:::o;17395:419::-;17561:4;17599:2;17588:9;17584:18;17576:26;;17648:9;17642:4;17638:20;17634:1;17623:9;17619:17;17612:47;17676:131;17802:4;17676:131;:::i;:::-;17668:139;;17395:419;;;:::o;17820:175::-;17960:27;17956:1;17948:6;17944:14;17937:51;17820:175;:::o;18001:366::-;18143:3;18164:67;18228:2;18223:3;18164:67;:::i;:::-;18157:74;;18240:93;18329:3;18240:93;:::i;:::-;18358:2;18353:3;18349:12;18342:19;;18001:366;;;:::o;18373:419::-;18539:4;18577:2;18566:9;18562:18;18554:26;;18626:9;18620:4;18616:20;18612:1;18601:9;18597:17;18590:47;18654:131;18780:4;18654:131;:::i;:::-;18646:139;;18373:419;;;:::o;18798:180::-;18846:77;18843:1;18836:88;18943:4;18940:1;18933:15;18967:4;18964:1;18957:15;18984:191;19024:3;19043:20;19061:1;19043:20;:::i;:::-;19038:25;;19077:20;19095:1;19077:20;:::i;:::-;19072:25;;19120:1;19117;19113:9;19106:16;;19141:3;19138:1;19135:10;19132:36;;;19148:18;;:::i;:::-;19132:36;18984:191;;;;:::o;19181:176::-;19321:28;19317:1;19309:6;19305:14;19298:52;19181:176;:::o;19363:366::-;19505:3;19526:67;19590:2;19585:3;19526:67;:::i;:::-;19519:74;;19602:93;19691:3;19602:93;:::i;:::-;19720:2;19715:3;19711:12;19704:19;;19363:366;;;:::o;19735:419::-;19901:4;19939:2;19928:9;19924:18;19916:26;;19988:9;19982:4;19978:20;19974:1;19963:9;19959:17;19952:47;20016:131;20142:4;20016:131;:::i;:::-;20008:139;;19735:419;;;:::o;20160:194::-;20200:4;20220:20;20238:1;20220:20;:::i;:::-;20215:25;;20254:20;20272:1;20254:20;:::i;:::-;20249:25;;20298:1;20295;20291:9;20283:17;;20322:1;20316:4;20313:11;20310:37;;;20327:18;;:::i;:::-;20310:37;20160:194;;;;:::o;20360:229::-;20500:34;20496:1;20488:6;20484:14;20477:58;20569:12;20564:2;20556:6;20552:15;20545:37;20360:229;:::o;20595:366::-;20737:3;20758:67;20822:2;20817:3;20758:67;:::i;:::-;20751:74;;20834:93;20923:3;20834:93;:::i;:::-;20952:2;20947:3;20943:12;20936:19;;20595:366;;;:::o;20967:419::-;21133:4;21171:2;21160:9;21156:18;21148:26;;21220:9;21214:4;21210:20;21206:1;21195:9;21191:17;21184:47;21248:131;21374:4;21248:131;:::i;:::-;21240:139;;20967:419;;;:::o;21392:180::-;21440:77;21437:1;21430:88;21537:4;21534:1;21527:15;21561:4;21558:1;21551:15;21578:180;21626:77;21623:1;21616:88;21723:4;21720:1;21713:15;21747:4;21744:1;21737:15;21764:114;21831:6;21865:5;21859:12;21849:22;;21764:114;;;:::o;21884:184::-;21983:11;22017:6;22012:3;22005:19;22057:4;22052:3;22048:14;22033:29;;21884:184;;;;:::o;22074:132::-;22141:4;22164:3;22156:11;;22194:4;22189:3;22185:14;22177:22;;22074:132;;;:::o;22212:108::-;22289:24;22307:5;22289:24;:::i;:::-;22284:3;22277:37;22212:108;;:::o;22326:179::-;22395:10;22416:46;22458:3;22450:6;22416:46;:::i;:::-;22494:4;22489:3;22485:14;22471:28;;22326:179;;;;:::o;22511:113::-;22581:4;22613;22608:3;22604:14;22596:22;;22511:113;;;:::o;22660:732::-;22779:3;22808:54;22856:5;22808:54;:::i;:::-;22878:86;22957:6;22952:3;22878:86;:::i;:::-;22871:93;;22988:56;23038:5;22988:56;:::i;:::-;23067:7;23098:1;23083:284;23108:6;23105:1;23102:13;23083:284;;;23184:6;23178:13;23211:63;23270:3;23255:13;23211:63;:::i;:::-;23204:70;;23297:60;23350:6;23297:60;:::i;:::-;23287:70;;23143:224;23130:1;23127;23123:9;23118:14;;23083:284;;;23087:14;23383:3;23376:10;;22784:608;;;22660:732;;;;:::o;23398:831::-;23661:4;23699:3;23688:9;23684:19;23676:27;;23713:71;23781:1;23770:9;23766:17;23757:6;23713:71;:::i;:::-;23794:80;23870:2;23859:9;23855:18;23846:6;23794:80;:::i;:::-;23921:9;23915:4;23911:20;23906:2;23895:9;23891:18;23884:48;23949:108;24052:4;24043:6;23949:108;:::i;:::-;23941:116;;24067:72;24135:2;24124:9;24120:18;24111:6;24067:72;:::i;:::-;24149:73;24217:3;24206:9;24202:19;24193:6;24149:73;:::i;:::-;23398:831;;;;;;;;:::o;24235:180::-;24283:77;24280:1;24273:88;24380:4;24377:1;24370:15;24404:4;24401:1;24394:15;24421:185;24461:1;24478:20;24496:1;24478:20;:::i;:::-;24473:25;;24512:20;24530:1;24512:20;:::i;:::-;24507:25;;24551:1;24541:35;;24556:18;;:::i;:::-;24541:35;24598:1;24595;24591:9;24586:14;;24421:185;;;;:::o;24612:177::-;24752:29;24748:1;24740:6;24736:14;24729:53;24612:177;:::o;24795:366::-;24937:3;24958:67;25022:2;25017:3;24958:67;:::i;:::-;24951:74;;25034:93;25123:3;25034:93;:::i;:::-;25152:2;25147:3;25143:12;25136:19;;24795:366;;;:::o;25167:419::-;25333:4;25371:2;25360:9;25356:18;25348:26;;25420:9;25414:4;25410:20;25406:1;25395:9;25391:17;25384:47;25448:131;25574:4;25448:131;:::i;:::-;25440:139;;25167:419;;;:::o;25592:410::-;25632:7;25655:20;25673:1;25655:20;:::i;:::-;25650:25;;25689:20;25707:1;25689:20;:::i;:::-;25684:25;;25744:1;25741;25737:9;25766:30;25784:11;25766:30;:::i;:::-;25755:41;;25945:1;25936:7;25932:15;25929:1;25926:22;25906:1;25899:9;25879:83;25856:139;;25975:18;;:::i;:::-;25856:139;25640:362;25592:410;;;;:::o;26008:220::-;26148:34;26144:1;26136:6;26132:14;26125:58;26217:3;26212:2;26204:6;26200:15;26193:28;26008:220;:::o;26234:366::-;26376:3;26397:67;26461:2;26456:3;26397:67;:::i;:::-;26390:74;;26473:93;26562:3;26473:93;:::i;:::-;26591:2;26586:3;26582:12;26575:19;;26234:366;;;:::o;26606:419::-;26772:4;26810:2;26799:9;26795:18;26787:26;;26859:9;26853:4;26849:20;26845:1;26834:9;26830:17;26823:47;26887:131;27013:4;26887:131;:::i;:::-;26879:139;;26606:419;;;:::o
Swarm Source
ipfs://7f25a6f7f813ca536959a3391f7bc4d544d03c02cd14fe665942d6fa8ba9395c
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.