ERC-20
Overview
Max Total Supply
1,000,000,000,000 TFT
Holders
12
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TopFamousToken
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-26 */ // SPDX-License-Identifier: Unlicensed /** TopFamousToken($TFT) Telegram: https://t.me/TFTOfficial Twitter: https://twitter.com/TopFamousToken */ pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( 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 TopFamousToken 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 = 1e12 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public _feeAddr1 = 0; uint256 public _feeAddr2 = 15; address payable private _feeAddrWallet1; address payable private _feeAddrWallet2; string private constant _name = "TopFamousToken"; string private constant _symbol = "TFT"; 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 = _tTotal; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet1 = payable(0x3E21Bf2B28121dEfFBfF5f503Fd420d672c39C72); _feeAddrWallet2 = payable(0x3E21Bf2B28121dEfFBfF5f503Fd420d672c39C72); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet1] = true; _isExcludedFromFee[_feeAddrWallet2] = true; emit Transfer(address(0x0000000000000000000000000000000000000000), _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]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(amount <= _maxTxAmount); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (15 seconds); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _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 sendETHToFee(uint256 amount) private { _feeAddrWallet1.transfer(amount.div(2)); _feeAddrWallet2.transfer(amount.div(2)); } 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; _maxTxAmount = 1e10 * 10**9; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function removeStrictTxLimit() public onlyOwner { _maxTxAmount = 1e12 * 10**9; } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } 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() == _feeAddrWallet1); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet1); 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); } function _setFeeAddr1(uint256 feeAddr1) external onlyOwner() { require(feeAddr1 >= 1 && feeAddr1 <= 25, 'feeAddr1 should be in 1 - 25'); _feeAddr1 = feeAddr1; } function _setFeeAddr2(uint256 feeAddr2) external onlyOwner() { require(feeAddr2 >= 1 && feeAddr2 <= 25, 'feeAddr2 should be in 1 - 25'); _feeAddr2 = feeAddr2; } function _setFeeAddrWallet1(address payable feeAddrWallet1) external onlyOwner() { _feeAddrWallet1 = feeAddrWallet1; _isExcludedFromFee[_feeAddrWallet1] = true; } function _setFeeAddrWallet2(address payable feeAddrWallet2) external onlyOwner() { _feeAddrWallet2 = feeAddrWallet2; _isExcludedFromFee[_feeAddrWallet2] = true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_feeAddr1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeAddr2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeAddr1","type":"uint256"}],"name":"_setFeeAddr1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeAddr2","type":"uint256"}],"name":"_setFeeAddr2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"feeAddrWallet1","type":"address"}],"name":"_setFeeAddrWallet1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"feeAddrWallet2","type":"address"}],"name":"_setFeeAddrWallet2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","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":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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
6080604052683635c9adc5dea000006000196200001d919062000531565b6000196200002c9190620004ec565b6008556000600a55600f600b556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550683635c9adc5dea00000601055348015620000a457600080fd5b506000620000b76200048d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350733e21bf2b28121deffbff5f503fd420d672c39c72600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733e21bf2b28121deffbff5f503fd420d672c39c72600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620002166200048d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200026a6200049560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004176200048d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200047f9190620004cf565b60405180910390a3620005c7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004c98162000527565b82525050565b6000602082019050620004e66000830184620004be565b92915050565b6000620004f98262000527565b9150620005068362000527565b9250828210156200051c576200051b62000569565b5b828203905092915050565b6000819050919050565b60006200053e8262000527565b91506200054b8362000527565b9250826200055e576200055d62000598565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b613a5680620005d76000396000f3fe60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063c274ebee1161006f578063c274ebee14610475578063c3c8cd80146104a0578063c9567bf9146104b7578063dd62ed3e146104ce578063e6aa397c1461050b578063ff8726021461053457610156565b80638da5cb5b1461036557806395d89b4114610390578063a4199e1d146103bb578063a9059cbb146103e6578063b515566a14610423578063bb6b2b541461044c57610156565b8063313ce56711610108578063313ce5671461027d5780635932ead1146102a85780636fc3eaec146102d157806370a08231146102e857806371201f6514610325578063715018a61461034e57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063273123b71461022b57806327f40ce11461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061054b565b60405161017d91906130f5565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612c18565b610588565b6040516101ba91906130da565b60405180910390f35b3480156101cf57600080fd5b506101d86105a6565b6040516101e59190613297565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612bc9565b6105b7565b60405161022291906130da565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190612b12565b610690565b005b34801561026057600080fd5b5061027b60048036038101906102769190612ce7565b610780565b005b34801561028957600080fd5b50610292610870565b60405161029f919061330c565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612c95565b610879565b005b3480156102dd57600080fd5b506102e661092b565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612b12565b61099d565b60405161031c9190613297565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612b64565b6109ee565b005b34801561035a57600080fd5b50610363610b41565b005b34801561037157600080fd5b5061037a610c94565b604051610387919061300c565b60405180910390f35b34801561039c57600080fd5b506103a5610cbd565b6040516103b291906130f5565b60405180910390f35b3480156103c757600080fd5b506103d0610cfa565b6040516103dd9190613297565b60405180910390f35b3480156103f257600080fd5b5061040d60048036038101906104089190612c18565b610d00565b60405161041a91906130da565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190612c54565b610d1e565b005b34801561045857600080fd5b50610473600480360381019061046e9190612ce7565b610e6e565b005b34801561048157600080fd5b5061048a610f5e565b6040516104979190613297565b60405180910390f35b3480156104ac57600080fd5b506104b5610f64565b005b3480156104c357600080fd5b506104cc610fde565b005b3480156104da57600080fd5b506104f560048036038101906104f09190612b8d565b61153a565b6040516105029190613297565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d9190612b64565b6115c1565b005b34801561054057600080fd5b50610549611714565b005b60606040518060400160405280600e81526020017f546f7046616d6f7573546f6b656e000000000000000000000000000000000000815250905090565b600061059c6105956117bb565b84846117c3565b6001905092915050565b6000683635c9adc5dea00000905090565b60006105c484848461198e565b610685846105d06117bb565b610680856040518060600160405280602881526020016139f960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106366117bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e6c9092919063ffffffff16565b6117c3565b600190509392505050565b6106986117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906131f7565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6107886117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080c906131f7565b60405180910390fd5b60018110158015610827575060198111155b610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90613197565b60405180910390fd5b80600a8190555050565b60006009905090565b6108816117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610905906131f7565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096c6117bb565b73ffffffffffffffffffffffffffffffffffffffff161461098c57600080fd5b600047905061099a81611ed0565b50565b60006109e7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcb565b9050919050565b6109f66117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a906131f7565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b496117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd906131f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5446540000000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b6000610d14610d0d6117bb565b848461198e565b6001905092915050565b610d266117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa906131f7565b60405180910390fd5b60005b8151811015610e6a57600160066000848481518110610dfe577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e62906135bf565b915050610db6565b5050565b610e766117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa906131f7565b60405180910390fd5b60018110158015610f15575060198111155b610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b906131b7565b60405180910390fd5b80600b8190555050565b600b5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fa56117bb565b73ffffffffffffffffffffffffffffffffffffffff1614610fc557600080fd5b6000610fd03061099d565b9050610fdb81612039565b50565b610fe66117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a906131f7565b60405180910390fd5b600f60149054906101000a900460ff16156110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba90613277565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061115330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006117c3565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561119957600080fd5b505afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190612b3b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561123357600080fd5b505afa158015611247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126b9190612b3b565b6040518363ffffffff1660e01b8152600401611288929190613027565b602060405180830381600087803b1580156112a257600080fd5b505af11580156112b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da9190612b3b565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113633061099d565b60008061136e610c94565b426040518863ffffffff1660e01b815260040161139096959493929190613079565b6060604051808303818588803b1580156113a957600080fd5b505af11580156113bd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113e29190612d10565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114e4929190613050565b602060405180830381600087803b1580156114fe57600080fd5b505af1158015611512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115369190612cbe565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c96117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d906131f7565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61171c6117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a0906131f7565b60405180910390fd5b683635c9adc5dea00000601081905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90613257565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a90613157565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119819190613297565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f590613237565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6590613117565b60405180910390fd5b60008111611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa890613217565b60405180910390fd5b611ab9610c94565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b275750611af7610c94565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e5c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bd05750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bd957600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c845750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cda5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf25750600f60179054906101000a900460ff165b15611da257601054811115611d0657600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611d5157600080fd5b600f42611d5e91906133cd565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611dad3061099d565b9050600f60159054906101000a900460ff16158015611e1a5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e325750600f60169054906101000a900460ff165b15611e5a57611e4081612039565b60004790506000811115611e5857611e5747611ed0565b5b505b505b611e67838383612333565b505050565b6000838311158290611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab91906130f5565b60405180910390fd5b5060008385611ec391906134ae565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f2060028461234390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f4b573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f9c60028461234390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611fc7573d6000803e3d6000fd5b5050565b6000600854821115612012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200990613137565b60405180910390fd5b600061201c61238d565b9050612031818461234390919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612097577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120c55781602001602082028036833780820191505090505b5090503081600081518110612103577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a557600080fd5b505afa1580156121b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121dd9190612b3b565b81600181518110612217577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117c3565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122e29594939291906132b2565b600060405180830381600087803b1580156122fc57600080fd5b505af1158015612310573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b61233e8383836123b8565b505050565b600061238583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612583565b905092915050565b600080600061239a6125e6565b915091506123b1818361234390919063ffffffff16565b9250505090565b6000806000806000806123ca87612648565b95509550955095509550955061242886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124bd85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126fa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061250981612758565b6125138483612815565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125709190613297565b60405180910390a3505050505050505050565b600080831182906125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c191906130f5565b60405180910390fd5b50600083856125d99190613423565b9050809150509392505050565b600080600060085490506000683635c9adc5dea00000905061261c683635c9adc5dea0000060085461234390919063ffffffff16565b82101561263b57600854683635c9adc5dea00000935093505050612644565b81819350935050505b9091565b60008060008060008060008060006126658a600a54600b5461284f565b925092509250600061267561238d565b905060008060006126888e8787876128e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e6c565b905092915050565b600080828461270991906133cd565b90508381101561274e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274590613177565b60405180910390fd5b8091505092915050565b600061276261238d565b90506000612779828461296e90919063ffffffff16565b90506127cd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126fa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61282a826008546126b090919063ffffffff16565b600881905550612845816009546126fa90919063ffffffff16565b6009819055505050565b60008060008061287b606461286d888a61296e90919063ffffffff16565b61234390919063ffffffff16565b905060006128a56064612897888b61296e90919063ffffffff16565b61234390919063ffffffff16565b905060006128ce826128c0858c6126b090919063ffffffff16565b6126b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128fe858961296e90919063ffffffff16565b90506000612915868961296e90919063ffffffff16565b9050600061292c878961296e90919063ffffffff16565b905060006129558261294785876126b090919063ffffffff16565b6126b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561298157600090506129e3565b6000828461298f9190613454565b905082848261299e9190613423565b146129de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d5906131d7565b60405180910390fd5b809150505b92915050565b60006129fc6129f78461334c565b613327565b90508083825260208201905082856020860282011115612a1b57600080fd5b60005b85811015612a4b5781612a318882612a55565b845260208401935060208301925050600181019050612a1e565b5050509392505050565b600081359050612a648161399c565b92915050565b600081519050612a798161399c565b92915050565b600081359050612a8e816139b3565b92915050565b600082601f830112612aa557600080fd5b8135612ab58482602086016129e9565b91505092915050565b600081359050612acd816139ca565b92915050565b600081519050612ae2816139ca565b92915050565b600081359050612af7816139e1565b92915050565b600081519050612b0c816139e1565b92915050565b600060208284031215612b2457600080fd5b6000612b3284828501612a55565b91505092915050565b600060208284031215612b4d57600080fd5b6000612b5b84828501612a6a565b91505092915050565b600060208284031215612b7657600080fd5b6000612b8484828501612a7f565b91505092915050565b60008060408385031215612ba057600080fd5b6000612bae85828601612a55565b9250506020612bbf85828601612a55565b9150509250929050565b600080600060608486031215612bde57600080fd5b6000612bec86828701612a55565b9350506020612bfd86828701612a55565b9250506040612c0e86828701612ae8565b9150509250925092565b60008060408385031215612c2b57600080fd5b6000612c3985828601612a55565b9250506020612c4a85828601612ae8565b9150509250929050565b600060208284031215612c6657600080fd5b600082013567ffffffffffffffff811115612c8057600080fd5b612c8c84828501612a94565b91505092915050565b600060208284031215612ca757600080fd5b6000612cb584828501612abe565b91505092915050565b600060208284031215612cd057600080fd5b6000612cde84828501612ad3565b91505092915050565b600060208284031215612cf957600080fd5b6000612d0784828501612ae8565b91505092915050565b600080600060608486031215612d2557600080fd5b6000612d3386828701612afd565b9350506020612d4486828701612afd565b9250506040612d5586828701612afd565b9150509250925092565b6000612d6b8383612d77565b60208301905092915050565b612d80816134e2565b82525050565b612d8f816134e2565b82525050565b6000612da082613388565b612daa81856133ab565b9350612db583613378565b8060005b83811015612de6578151612dcd8882612d5f565b9750612dd88361339e565b925050600181019050612db9565b5085935050505092915050565b612dfc81613506565b82525050565b612e0b81613549565b82525050565b6000612e1c82613393565b612e2681856133bc565b9350612e3681856020860161355b565b612e3f81613695565b840191505092915050565b6000612e576023836133bc565b9150612e62826136a6565b604082019050919050565b6000612e7a602a836133bc565b9150612e85826136f5565b604082019050919050565b6000612e9d6022836133bc565b9150612ea882613744565b604082019050919050565b6000612ec0601b836133bc565b9150612ecb82613793565b602082019050919050565b6000612ee3601c836133bc565b9150612eee826137bc565b602082019050919050565b6000612f06601c836133bc565b9150612f11826137e5565b602082019050919050565b6000612f296021836133bc565b9150612f348261380e565b604082019050919050565b6000612f4c6020836133bc565b9150612f578261385d565b602082019050919050565b6000612f6f6029836133bc565b9150612f7a82613886565b604082019050919050565b6000612f926025836133bc565b9150612f9d826138d5565b604082019050919050565b6000612fb56024836133bc565b9150612fc082613924565b604082019050919050565b6000612fd86017836133bc565b9150612fe382613973565b602082019050919050565b612ff781613532565b82525050565b6130068161353c565b82525050565b60006020820190506130216000830184612d86565b92915050565b600060408201905061303c6000830185612d86565b6130496020830184612d86565b9392505050565b60006040820190506130656000830185612d86565b6130726020830184612fee565b9392505050565b600060c08201905061308e6000830189612d86565b61309b6020830188612fee565b6130a86040830187612e02565b6130b56060830186612e02565b6130c26080830185612d86565b6130cf60a0830184612fee565b979650505050505050565b60006020820190506130ef6000830184612df3565b92915050565b6000602082019050818103600083015261310f8184612e11565b905092915050565b6000602082019050818103600083015261313081612e4a565b9050919050565b6000602082019050818103600083015261315081612e6d565b9050919050565b6000602082019050818103600083015261317081612e90565b9050919050565b6000602082019050818103600083015261319081612eb3565b9050919050565b600060208201905081810360008301526131b081612ed6565b9050919050565b600060208201905081810360008301526131d081612ef9565b9050919050565b600060208201905081810360008301526131f081612f1c565b9050919050565b6000602082019050818103600083015261321081612f3f565b9050919050565b6000602082019050818103600083015261323081612f62565b9050919050565b6000602082019050818103600083015261325081612f85565b9050919050565b6000602082019050818103600083015261327081612fa8565b9050919050565b6000602082019050818103600083015261329081612fcb565b9050919050565b60006020820190506132ac6000830184612fee565b92915050565b600060a0820190506132c76000830188612fee565b6132d46020830187612e02565b81810360408301526132e68186612d95565b90506132f56060830185612d86565b6133026080830184612fee565b9695505050505050565b60006020820190506133216000830184612ffd565b92915050565b6000613331613342565b905061333d828261358e565b919050565b6000604051905090565b600067ffffffffffffffff82111561336757613366613666565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006133d882613532565b91506133e383613532565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561341857613417613608565b5b828201905092915050565b600061342e82613532565b915061343983613532565b92508261344957613448613637565b5b828204905092915050565b600061345f82613532565b915061346a83613532565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134a3576134a2613608565b5b828202905092915050565b60006134b982613532565b91506134c483613532565b9250828210156134d7576134d6613608565b5b828203905092915050565b60006134ed82613512565b9050919050565b60006134ff82613512565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061355482613532565b9050919050565b60005b8381101561357957808201518184015260208101905061355e565b83811115613588576000848401525b50505050565b61359782613695565b810181811067ffffffffffffffff821117156135b6576135b5613666565b5b80604052505050565b60006135ca82613532565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135fd576135fc613608565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f66656541646472312073686f756c6420626520696e2031202d20323500000000600082015250565b7f66656541646472322073686f756c6420626520696e2031202d20323500000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6139a5816134e2565b81146139b057600080fd5b50565b6139bc816134f4565b81146139c757600080fd5b50565b6139d381613506565b81146139de57600080fd5b50565b6139ea81613532565b81146139f557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a59824daeef79d55c2eeae47e044c72b741f089296a996fe90758eed99741fdd64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063c274ebee1161006f578063c274ebee14610475578063c3c8cd80146104a0578063c9567bf9146104b7578063dd62ed3e146104ce578063e6aa397c1461050b578063ff8726021461053457610156565b80638da5cb5b1461036557806395d89b4114610390578063a4199e1d146103bb578063a9059cbb146103e6578063b515566a14610423578063bb6b2b541461044c57610156565b8063313ce56711610108578063313ce5671461027d5780635932ead1146102a85780636fc3eaec146102d157806370a08231146102e857806371201f6514610325578063715018a61461034e57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063273123b71461022b57806327f40ce11461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061054b565b60405161017d91906130f5565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612c18565b610588565b6040516101ba91906130da565b60405180910390f35b3480156101cf57600080fd5b506101d86105a6565b6040516101e59190613297565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612bc9565b6105b7565b60405161022291906130da565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190612b12565b610690565b005b34801561026057600080fd5b5061027b60048036038101906102769190612ce7565b610780565b005b34801561028957600080fd5b50610292610870565b60405161029f919061330c565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612c95565b610879565b005b3480156102dd57600080fd5b506102e661092b565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612b12565b61099d565b60405161031c9190613297565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612b64565b6109ee565b005b34801561035a57600080fd5b50610363610b41565b005b34801561037157600080fd5b5061037a610c94565b604051610387919061300c565b60405180910390f35b34801561039c57600080fd5b506103a5610cbd565b6040516103b291906130f5565b60405180910390f35b3480156103c757600080fd5b506103d0610cfa565b6040516103dd9190613297565b60405180910390f35b3480156103f257600080fd5b5061040d60048036038101906104089190612c18565b610d00565b60405161041a91906130da565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190612c54565b610d1e565b005b34801561045857600080fd5b50610473600480360381019061046e9190612ce7565b610e6e565b005b34801561048157600080fd5b5061048a610f5e565b6040516104979190613297565b60405180910390f35b3480156104ac57600080fd5b506104b5610f64565b005b3480156104c357600080fd5b506104cc610fde565b005b3480156104da57600080fd5b506104f560048036038101906104f09190612b8d565b61153a565b6040516105029190613297565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d9190612b64565b6115c1565b005b34801561054057600080fd5b50610549611714565b005b60606040518060400160405280600e81526020017f546f7046616d6f7573546f6b656e000000000000000000000000000000000000815250905090565b600061059c6105956117bb565b84846117c3565b6001905092915050565b6000683635c9adc5dea00000905090565b60006105c484848461198e565b610685846105d06117bb565b610680856040518060600160405280602881526020016139f960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106366117bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e6c9092919063ffffffff16565b6117c3565b600190509392505050565b6106986117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906131f7565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6107886117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080c906131f7565b60405180910390fd5b60018110158015610827575060198111155b610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90613197565b60405180910390fd5b80600a8190555050565b60006009905090565b6108816117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610905906131f7565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096c6117bb565b73ffffffffffffffffffffffffffffffffffffffff161461098c57600080fd5b600047905061099a81611ed0565b50565b60006109e7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcb565b9050919050565b6109f66117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a906131f7565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b496117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcd906131f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5446540000000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b6000610d14610d0d6117bb565b848461198e565b6001905092915050565b610d266117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa906131f7565b60405180910390fd5b60005b8151811015610e6a57600160066000848481518110610dfe577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e62906135bf565b915050610db6565b5050565b610e766117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa906131f7565b60405180910390fd5b60018110158015610f15575060198111155b610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b906131b7565b60405180910390fd5b80600b8190555050565b600b5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fa56117bb565b73ffffffffffffffffffffffffffffffffffffffff1614610fc557600080fd5b6000610fd03061099d565b9050610fdb81612039565b50565b610fe66117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a906131f7565b60405180910390fd5b600f60149054906101000a900460ff16156110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba90613277565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061115330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006117c3565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561119957600080fd5b505afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d19190612b3b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561123357600080fd5b505afa158015611247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126b9190612b3b565b6040518363ffffffff1660e01b8152600401611288929190613027565b602060405180830381600087803b1580156112a257600080fd5b505af11580156112b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da9190612b3b565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113633061099d565b60008061136e610c94565b426040518863ffffffff1660e01b815260040161139096959493929190613079565b6060604051808303818588803b1580156113a957600080fd5b505af11580156113bd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113e29190612d10565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114e4929190613050565b602060405180830381600087803b1580156114fe57600080fd5b505af1158015611512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115369190612cbe565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c96117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d906131f7565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61171c6117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a0906131f7565b60405180910390fd5b683635c9adc5dea00000601081905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90613257565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a90613157565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119819190613297565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f590613237565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6590613117565b60405180910390fd5b60008111611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa890613217565b60405180910390fd5b611ab9610c94565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b275750611af7610c94565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e5c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bd05750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bd957600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c845750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cda5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf25750600f60179054906101000a900460ff165b15611da257601054811115611d0657600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611d5157600080fd5b600f42611d5e91906133cd565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611dad3061099d565b9050600f60159054906101000a900460ff16158015611e1a5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e325750600f60169054906101000a900460ff165b15611e5a57611e4081612039565b60004790506000811115611e5857611e5747611ed0565b5b505b505b611e67838383612333565b505050565b6000838311158290611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab91906130f5565b60405180910390fd5b5060008385611ec391906134ae565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f2060028461234390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f4b573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f9c60028461234390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611fc7573d6000803e3d6000fd5b5050565b6000600854821115612012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200990613137565b60405180910390fd5b600061201c61238d565b9050612031818461234390919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612097577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120c55781602001602082028036833780820191505090505b5090503081600081518110612103577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a557600080fd5b505afa1580156121b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121dd9190612b3b565b81600181518110612217577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117c3565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122e29594939291906132b2565b600060405180830381600087803b1580156122fc57600080fd5b505af1158015612310573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b61233e8383836123b8565b505050565b600061238583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612583565b905092915050565b600080600061239a6125e6565b915091506123b1818361234390919063ffffffff16565b9250505090565b6000806000806000806123ca87612648565b95509550955095509550955061242886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124bd85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126fa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061250981612758565b6125138483612815565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125709190613297565b60405180910390a3505050505050505050565b600080831182906125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c191906130f5565b60405180910390fd5b50600083856125d99190613423565b9050809150509392505050565b600080600060085490506000683635c9adc5dea00000905061261c683635c9adc5dea0000060085461234390919063ffffffff16565b82101561263b57600854683635c9adc5dea00000935093505050612644565b81819350935050505b9091565b60008060008060008060008060006126658a600a54600b5461284f565b925092509250600061267561238d565b905060008060006126888e8787876128e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e6c565b905092915050565b600080828461270991906133cd565b90508381101561274e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274590613177565b60405180910390fd5b8091505092915050565b600061276261238d565b90506000612779828461296e90919063ffffffff16565b90506127cd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126fa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61282a826008546126b090919063ffffffff16565b600881905550612845816009546126fa90919063ffffffff16565b6009819055505050565b60008060008061287b606461286d888a61296e90919063ffffffff16565b61234390919063ffffffff16565b905060006128a56064612897888b61296e90919063ffffffff16565b61234390919063ffffffff16565b905060006128ce826128c0858c6126b090919063ffffffff16565b6126b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128fe858961296e90919063ffffffff16565b90506000612915868961296e90919063ffffffff16565b9050600061292c878961296e90919063ffffffff16565b905060006129558261294785876126b090919063ffffffff16565b6126b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561298157600090506129e3565b6000828461298f9190613454565b905082848261299e9190613423565b146129de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d5906131d7565b60405180910390fd5b809150505b92915050565b60006129fc6129f78461334c565b613327565b90508083825260208201905082856020860282011115612a1b57600080fd5b60005b85811015612a4b5781612a318882612a55565b845260208401935060208301925050600181019050612a1e565b5050509392505050565b600081359050612a648161399c565b92915050565b600081519050612a798161399c565b92915050565b600081359050612a8e816139b3565b92915050565b600082601f830112612aa557600080fd5b8135612ab58482602086016129e9565b91505092915050565b600081359050612acd816139ca565b92915050565b600081519050612ae2816139ca565b92915050565b600081359050612af7816139e1565b92915050565b600081519050612b0c816139e1565b92915050565b600060208284031215612b2457600080fd5b6000612b3284828501612a55565b91505092915050565b600060208284031215612b4d57600080fd5b6000612b5b84828501612a6a565b91505092915050565b600060208284031215612b7657600080fd5b6000612b8484828501612a7f565b91505092915050565b60008060408385031215612ba057600080fd5b6000612bae85828601612a55565b9250506020612bbf85828601612a55565b9150509250929050565b600080600060608486031215612bde57600080fd5b6000612bec86828701612a55565b9350506020612bfd86828701612a55565b9250506040612c0e86828701612ae8565b9150509250925092565b60008060408385031215612c2b57600080fd5b6000612c3985828601612a55565b9250506020612c4a85828601612ae8565b9150509250929050565b600060208284031215612c6657600080fd5b600082013567ffffffffffffffff811115612c8057600080fd5b612c8c84828501612a94565b91505092915050565b600060208284031215612ca757600080fd5b6000612cb584828501612abe565b91505092915050565b600060208284031215612cd057600080fd5b6000612cde84828501612ad3565b91505092915050565b600060208284031215612cf957600080fd5b6000612d0784828501612ae8565b91505092915050565b600080600060608486031215612d2557600080fd5b6000612d3386828701612afd565b9350506020612d4486828701612afd565b9250506040612d5586828701612afd565b9150509250925092565b6000612d6b8383612d77565b60208301905092915050565b612d80816134e2565b82525050565b612d8f816134e2565b82525050565b6000612da082613388565b612daa81856133ab565b9350612db583613378565b8060005b83811015612de6578151612dcd8882612d5f565b9750612dd88361339e565b925050600181019050612db9565b5085935050505092915050565b612dfc81613506565b82525050565b612e0b81613549565b82525050565b6000612e1c82613393565b612e2681856133bc565b9350612e3681856020860161355b565b612e3f81613695565b840191505092915050565b6000612e576023836133bc565b9150612e62826136a6565b604082019050919050565b6000612e7a602a836133bc565b9150612e85826136f5565b604082019050919050565b6000612e9d6022836133bc565b9150612ea882613744565b604082019050919050565b6000612ec0601b836133bc565b9150612ecb82613793565b602082019050919050565b6000612ee3601c836133bc565b9150612eee826137bc565b602082019050919050565b6000612f06601c836133bc565b9150612f11826137e5565b602082019050919050565b6000612f296021836133bc565b9150612f348261380e565b604082019050919050565b6000612f4c6020836133bc565b9150612f578261385d565b602082019050919050565b6000612f6f6029836133bc565b9150612f7a82613886565b604082019050919050565b6000612f926025836133bc565b9150612f9d826138d5565b604082019050919050565b6000612fb56024836133bc565b9150612fc082613924565b604082019050919050565b6000612fd86017836133bc565b9150612fe382613973565b602082019050919050565b612ff781613532565b82525050565b6130068161353c565b82525050565b60006020820190506130216000830184612d86565b92915050565b600060408201905061303c6000830185612d86565b6130496020830184612d86565b9392505050565b60006040820190506130656000830185612d86565b6130726020830184612fee565b9392505050565b600060c08201905061308e6000830189612d86565b61309b6020830188612fee565b6130a86040830187612e02565b6130b56060830186612e02565b6130c26080830185612d86565b6130cf60a0830184612fee565b979650505050505050565b60006020820190506130ef6000830184612df3565b92915050565b6000602082019050818103600083015261310f8184612e11565b905092915050565b6000602082019050818103600083015261313081612e4a565b9050919050565b6000602082019050818103600083015261315081612e6d565b9050919050565b6000602082019050818103600083015261317081612e90565b9050919050565b6000602082019050818103600083015261319081612eb3565b9050919050565b600060208201905081810360008301526131b081612ed6565b9050919050565b600060208201905081810360008301526131d081612ef9565b9050919050565b600060208201905081810360008301526131f081612f1c565b9050919050565b6000602082019050818103600083015261321081612f3f565b9050919050565b6000602082019050818103600083015261323081612f62565b9050919050565b6000602082019050818103600083015261325081612f85565b9050919050565b6000602082019050818103600083015261327081612fa8565b9050919050565b6000602082019050818103600083015261329081612fcb565b9050919050565b60006020820190506132ac6000830184612fee565b92915050565b600060a0820190506132c76000830188612fee565b6132d46020830187612e02565b81810360408301526132e68186612d95565b90506132f56060830185612d86565b6133026080830184612fee565b9695505050505050565b60006020820190506133216000830184612ffd565b92915050565b6000613331613342565b905061333d828261358e565b919050565b6000604051905090565b600067ffffffffffffffff82111561336757613366613666565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006133d882613532565b91506133e383613532565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561341857613417613608565b5b828201905092915050565b600061342e82613532565b915061343983613532565b92508261344957613448613637565b5b828204905092915050565b600061345f82613532565b915061346a83613532565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134a3576134a2613608565b5b828202905092915050565b60006134b982613532565b91506134c483613532565b9250828210156134d7576134d6613608565b5b828203905092915050565b60006134ed82613512565b9050919050565b60006134ff82613512565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061355482613532565b9050919050565b60005b8381101561357957808201518184015260208101905061355e565b83811115613588576000848401525b50505050565b61359782613695565b810181811067ffffffffffffffff821117156135b6576135b5613666565b5b80604052505050565b60006135ca82613532565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135fd576135fc613608565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f66656541646472312073686f756c6420626520696e2031202d20323500000000600082015250565b7f66656541646472322073686f756c6420626520696e2031202d20323500000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6139a5816134e2565b81146139b057600080fd5b50565b6139bc816134f4565b81146139c757600080fd5b50565b6139d381613506565b81146139de57600080fd5b50565b6139ea81613532565b81146139f557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a59824daeef79d55c2eeae47e044c72b741f089296a996fe90758eed99741fdd64736f6c63430008040033
Deployed Bytecode Sourcemap
3641:10996:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6393:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5818:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6562:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10593:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13874:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5727:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6883:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11970:194;;;;;;;;;;;;;:::i;:::-;;5921:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14449:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2720:148;;;;;;;;;;;;;:::i;:::-;;2506:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5632:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4262:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6067:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10311:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14065:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4297:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11763:195;;;;;;;;;;;;;:::i;:::-;;9490:809;;;;;;;;;;;;;:::i;:::-;;6242:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14256:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10487:94;;;;;;;;;;;;;:::i;:::-;;5541:83;5578:13;5611:5;;;;;;;;;;;;;;;;;5604:12;;5541:83;:::o;6393:161::-;6468:4;6485:39;6494:12;:10;:12::i;:::-;6508:7;6517:6;6485:8;:39::i;:::-;6542:4;6535:11;;6393:161;;;;:::o;5818:95::-;5871:7;4148:12;5891:14;;5818:95;:::o;6562:313::-;6660:4;6677:36;6687:6;6695:9;6706:6;6677:9;:36::i;:::-;6724:121;6733:6;6741:12;:10;:12::i;:::-;6755:89;6793:6;6755:89;;;;;;;;;;;;;;;;;:11;:19;6767:6;6755:19;;;;;;;;;;;;;;;:33;6775:12;:10;:12::i;:::-;6755:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6724:8;:121::i;:::-;6863:4;6856:11;;6562:313;;;;;:::o;10593:88::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10668:5:::1;10653:4;:12;10658:6;10653:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10593:88:::0;:::o;13874:183::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13966:1:::1;13954:8;:13;;:31;;;;;13983:2;13971:8;:14;;13954:31;13946:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14041:8;14029:9;:20;;;;13874:183:::0;:::o;5727:83::-;5768:5;4567:1;5786:16;;5727:83;:::o;6883:103::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6973:5:::1;6955:15;;:23;;;;;;;;;;;;;;;;;;6883:103:::0;:::o;11970:194::-;12036:15;;;;;;;;;;;12020:31;;:12;:10;:12::i;:::-;:31;;;12012:40;;;;;;12063:26;12092:21;12063:50;;12124:32;12137:18;12124:12;:32::i;:::-;11970:194;:::o;5921:138::-;5987:7;6014:37;6034:7;:16;6042:7;6034:16;;;;;;;;;;;;;;;;6014:19;:37::i;:::-;6007:44;;5921:138;;;:::o;14449:185::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14559:14:::1;14541:15;;:32;;;;;;;;;;;;;;;;;;14622:4;14584:18;:35;14603:15;;;;;;;;;;;14584:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;14449:185:::0;:::o;2720:148::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2827:1:::1;2790:40;;2811:6;::::0;::::1;;;;;;;;2790:40;;;;;;;;;;;;2858:1;2841:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2720:148::o:0;2506:79::-;2544:7;2571:6;;;;;;;;;;;2564:13;;2506:79;:::o;5632:87::-;5671:13;5704:7;;;;;;;;;;;;;;;;;5697:14;;5632:87;:::o;4262:28::-;;;;:::o;6067:167::-;6145:4;6162:42;6172:12;:10;:12::i;:::-;6186:9;6197:6;6162:9;:42::i;:::-;6222:4;6215:11;;6067:167;;;;:::o;10311:164::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10385:6:::1;10380:88;10401:5;:12;10397:1;:16;10380:88;;;10452:4;10435;:14;10440:5;10446:1;10440:8;;;;;;;;;;;;;;;;;;;;;;10435:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10415:3;;;;;:::i;:::-;;;;10380:88;;;;10311:164:::0;:::o;14065:183::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14157:1:::1;14145:8;:13;;:31;;;;;14174:2;14162:8;:14;;14145:31;14137:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14232:8;14220:9;:20;;;;14065:183:::0;:::o;4297:29::-;;;;:::o;11763:195::-;11829:15;;;;;;;;;;;11813:31;;:12;:10;:12::i;:::-;:31;;;11805:40;;;;;;11856:23;11882:24;11900:4;11882:9;:24::i;:::-;11856:50;;11917:33;11934:15;11917:16;:33::i;:::-;11763:195;:::o;9490:809::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9554:11:::1;;;;;;;;;;;9553:12;9545:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9603:35;9660:42;9603:100;;9732:16;9714:15;;:34;;;;;;;;;;;;;;;;;;9759:58;9776:4;9791:15;;;;;;;;;;;4148:12;9759:8;:58::i;:::-;9862:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9844:56;;;9909:4;9916:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9844:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9828:13;;:112;;;;;;;;;;;;;;;;;;9951:15;;;;;;;;;;;:31;;;9990:21;10021:4;10027:24;10045:4;10027:9;:24::i;:::-;10052:1;10054::::0;10056:7:::1;:5;:7::i;:::-;10064:15;9951:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10105:4;10091:11;;:18;;;;;;;;;;;;;;;;;;10138:4;10120:15;;:22;;;;;;;;;;;;;;;;;;10168:12;10153;:27;;;;10205:4;10191:11;;:18;;;;;;;;;;;;;;;;;;10227:13;;;;;;;;;;;10220:29;;;10258:15;;;;;;;;;;;10276:14;10220:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2703:1;9490:809::o:0;6242:143::-;6323:7;6350:11;:18;6362:5;6350:18;;;;;;;;;;;;;;;:27;6369:7;6350:27;;;;;;;;;;;;;;;;6343:34;;6242:143;;;;:::o;14256:185::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14366:14:::1;14348:15;;:32;;;;;;;;;;;;;;;;;;14429:4;14391:18;:35;14410:15;;;;;;;;;;;14391:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;14256:185:::0;:::o;10487:94::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10561:12:::1;10546;:27;;;;10487:94::o:0;224:98::-;277:7;304:10;297:17;;224:98;:::o;7256:335::-;7366:1;7349:19;;:5;:19;;;;7341:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7447:1;7428:21;;:7;:21;;;;7420:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7529:6;7499:11;:18;7511:5;7499:18;;;;;;;;;;;;;;;:27;7518:7;7499:27;;;;;;;;;;;;;;;:36;;;;7567:7;7551:32;;7560:5;7551:32;;;7576:6;7551:32;;;;;;:::i;:::-;;;;;;;;7256:335;;;:::o;7599:1218::-;7703:1;7687:18;;:4;:18;;;;7679:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7780:1;7766:16;;:2;:16;;;;7758:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7850:1;7841:6;:10;7833:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7930:7;:5;:7::i;:::-;7922:15;;:4;:15;;;;:32;;;;;7947:7;:5;:7::i;:::-;7941:13;;:2;:13;;;;7922:32;7918:841;;;7980:4;:10;7985:4;7980:10;;;;;;;;;;;;;;;;;;;;;;;;;7979:11;:24;;;;;7995:4;:8;8000:2;7995:8;;;;;;;;;;;;;;;;;;;;;;;;;7994:9;7979:24;7971:33;;;;;;8031:13;;;;;;;;;;;8023:21;;:4;:21;;;:55;;;;;8062:15;;;;;;;;;;;8048:30;;:2;:30;;;;8023:55;:83;;;;;8084:18;:22;8103:2;8084:22;;;;;;;;;;;;;;;;;;;;;;;;;8082:24;8023:83;:102;;;;;8110:15;;;;;;;;;;;8023:102;8019:325;;;8193:12;;8183:6;:22;;8175:31;;;;;;8248:15;8233:8;:12;8242:2;8233:12;;;;;;;;;;;;;;;;:30;8225:39;;;;;;8317:10;8298:15;:30;;;;:::i;:::-;8283:8;:12;8292:2;8283:12;;;;;;;;;;;;;;;:45;;;;8019:325;8360:28;8391:24;8409:4;8391:9;:24::i;:::-;8360:55;;8435:6;;;;;;;;;;;8434:7;:32;;;;;8453:13;;;;;;;;;;;8445:21;;:4;:21;;;;8434:32;:47;;;;;8470:11;;;;;;;;;;;8434:47;8430:318;;;8502:38;8519:20;8502:16;:38::i;:::-;8559:26;8588:21;8559:50;;8652:1;8631:18;:22;8628:105;;;8678:35;8691:21;8678:12;:35::i;:::-;8628:105;8430:318;;7918:841;;8779:30;8794:4;8799:2;8802:6;8779:14;:30::i;:::-;7599:1218;;;:::o;1361:190::-;1447:7;1480:1;1475;:6;;1483:12;1467:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1507:9;1523:1;1519;:5;;;;:::i;:::-;1507:17;;1542:1;1535:8;;;1361:190;;;;;:::o;9324:154::-;9381:15;;;;;;;;;;;:24;;:39;9406:13;9417:1;9406:6;:10;;:13;;;;:::i;:::-;9381:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9431:15;;;;;;;;;;;:24;;:39;9456:13;9467:1;9456:6;:10;;:13;;;;:::i;:::-;9431:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9324:154;:::o;6994:254::-;7061:7;7100;;7089;:18;;7081:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7165:19;7188:10;:8;:10::i;:::-;7165:33;;7216:24;7228:11;7216:7;:11;;:24;;;;:::i;:::-;7209:31;;;6994:254;;;:::o;8825:483::-;4949:4;4940:6;;:13;;;;;;;;;;;;;;;;;;8903:21:::1;8941:1;8927:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8903:40;;8972:4;8954;8959:1;8954:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;8998:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8988:4;8993:1;8988:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9031:62;9048:4;9063:15;;;;;;;;;;;9081:11;9031:8;:62::i;:::-;9104:15;;;;;;;;;;;:66;;;9185:11;9211:1;9227:4;9254;9274:15;9104:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4964:1;4985:5:::0;4976:6;;:14;;;;;;;;;;;;;;;;;;8825:483;:::o;10697:146::-;10791:44;10809:6;10817:9;10828:6;10791:17;:44::i;:::-;10697:146;;;:::o;1813:132::-;1871:7;1898:39;1902:1;1905;1898:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1891:46;;1813:132;;;;:::o;13433:163::-;13474:7;13495:15;13512;13531:19;:17;:19::i;:::-;13494:56;;;;13568:20;13580:7;13568;:11;;:20;;;;:::i;:::-;13561:27;;;;13433:163;:::o;10851:488::-;10950:15;10967:23;10992:12;11006:23;11031:12;11045:13;11062:19;11073:7;11062:10;:19::i;:::-;10949:132;;;;;;;;;;;;11110:28;11130:7;11110;:15;11118:6;11110:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11092:7;:15;11100:6;11092:15;;;;;;;;;;;;;;;:46;;;;11170:39;11193:15;11170:7;:18;11178:9;11170:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11149:7;:18;11157:9;11149:18;;;;;;;;;;;;;;;:60;;;;11221:16;11231:5;11221:9;:16::i;:::-;11248:23;11260:4;11266;11248:11;:23::i;:::-;11304:9;11287:44;;11296:6;11287:44;;;11315:15;11287:44;;;;;;:::i;:::-;;;;;;;;10851:488;;;;;;;;;:::o;1953:189::-;2039:7;2071:1;2067;:5;2074:12;2059:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2098:9;2114:1;2110;:5;;;;:::i;:::-;2098:17;;2133:1;2126:8;;;1953:189;;;;;:::o;13604:262::-;13654:7;13663;13683:15;13701:7;;13683:25;;13719:15;4148:12;13719:25;;13775:20;4148:12;13775:7;;:11;;:20;;;;:::i;:::-;13765:7;:30;13761:61;;;13805:7;;4148:12;13797:25;;;;;;;;13761:61;13841:7;13850;13833:25;;;;;;13604:262;;;:::o;12178:471::-;12237:7;12246;12255;12264;12273;12282;12303:23;12328:12;12342:13;12359:42;12371:7;12380:9;;12391;;12359:11;:42::i;:::-;12302:99;;;;;;12412:19;12435:10;:8;:10::i;:::-;12412:33;;12457:15;12474:23;12499:12;12515:46;12527:7;12536:4;12542:5;12549:11;12515;:46::i;:::-;12456:105;;;;;;12580:7;12589:15;12606:4;12612:15;12629:4;12635:5;12572:69;;;;;;;;;;;;;;;;;;;12178:471;;;;;;;:::o;1217:136::-;1275:7;1302:43;1306:1;1309;1302:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1295:50;;1217:136;;;;:::o;1030:179::-;1088:7;1108:9;1124:1;1120;:5;;;;:::i;:::-;1108:17;;1149:1;1144;:6;;1136:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1200:1;1193:8;;;1030:179;;;;:::o;11347:212::-;11400:19;11423:10;:8;:10::i;:::-;11400:33;;11444:13;11460:22;11470:11;11460:5;:9;;:22;;;;:::i;:::-;11444:38;;11518:33;11545:5;11518:7;:22;11534:4;11518:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11493:7;:22;11509:4;11493:22;;;;;;;;;;;;;;;:58;;;;11347:212;;;:::o;11567:147::-;11645:17;11657:4;11645:7;;:11;;:17;;;;:::i;:::-;11635:7;:27;;;;11686:20;11701:4;11686:10;;:14;;:20;;;;:::i;:::-;11673:10;:33;;;;11567:147;;:::o;12657:351::-;12750:7;12759;12768;12788:12;12803:28;12827:3;12803:19;12815:6;12803:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12788:43;;12842:13;12858:29;12883:3;12858:20;12870:7;12858;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12842:45;;12898:23;12924:28;12946:5;12924:17;12936:4;12924:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12898:54;;12971:15;12988:4;12994:5;12963:37;;;;;;;;;12657:351;;;;;;;:::o;13016:409::-;13126:7;13135;13144;13164:15;13182:24;13194:11;13182:7;:11;;:24;;;;:::i;:::-;13164:42;;13217:12;13232:21;13241:11;13232:4;:8;;:21;;;;:::i;:::-;13217:36;;13264:13;13280:22;13290:11;13280:5;:9;;:22;;;;:::i;:::-;13264:38;;13313:23;13339:28;13361:5;13339:17;13351:4;13339:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13313:54;;13386:7;13395:15;13412:4;13378:39;;;;;;;;;;13016:409;;;;;;;;:::o;1559:246::-;1617:7;1646:1;1641;:6;1637:47;;;1671:1;1664:8;;;;1637:47;1694:9;1710:1;1706;:5;;;;:::i;:::-;1694:17;;1739:1;1734;1730;:5;;;;:::i;:::-;:10;1722:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1796:1;1789:8;;;1559:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:303::-;1228:5;1277:3;1270:4;1262:6;1258:17;1254:27;1244:2;;1295:1;1292;1285:12;1244:2;1335:6;1322:20;1360:94;1450:3;1442:6;1435:4;1427:6;1423:17;1360:94;:::i;:::-;1351:103;;1234:226;;;;;:::o;1466:133::-;1509:5;1547:6;1534:20;1525:29;;1563:30;1587:5;1563:30;:::i;:::-;1515:84;;;;:::o;1605:137::-;1659:5;1690:6;1684:13;1675:22;;1706:30;1730:5;1706:30;:::i;:::-;1665:77;;;;:::o;1748:139::-;1794:5;1832:6;1819:20;1810:29;;1848:33;1875:5;1848:33;:::i;:::-;1800:87;;;;:::o;1893:143::-;1950:5;1981:6;1975:13;1966:22;;1997:33;2024:5;1997:33;:::i;:::-;1956:80;;;;:::o;2042:262::-;2101:6;2150:2;2138:9;2129:7;2125:23;2121:32;2118:2;;;2166:1;2163;2156:12;2118:2;2209:1;2234:53;2279:7;2270:6;2259:9;2255:22;2234:53;:::i;:::-;2224:63;;2180:117;2108:196;;;;:::o;2310:284::-;2380:6;2429:2;2417:9;2408:7;2404:23;2400:32;2397:2;;;2445:1;2442;2435:12;2397:2;2488:1;2513:64;2569:7;2560:6;2549:9;2545:22;2513:64;:::i;:::-;2503:74;;2459:128;2387:207;;;;:::o;2600:278::-;2667:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:2;;;2732:1;2729;2722:12;2684:2;2775:1;2800:61;2853:7;2844:6;2833:9;2829:22;2800:61;:::i;:::-;2790:71;;2746:125;2674:204;;;;:::o;2884:407::-;2952:6;2960;3009:2;2997:9;2988:7;2984:23;2980:32;2977:2;;;3025:1;3022;3015:12;2977:2;3068:1;3093:53;3138:7;3129:6;3118:9;3114:22;3093:53;:::i;:::-;3083:63;;3039:117;3195:2;3221:53;3266:7;3257:6;3246:9;3242:22;3221:53;:::i;:::-;3211:63;;3166:118;2967:324;;;;;:::o;3297:552::-;3374:6;3382;3390;3439:2;3427:9;3418:7;3414:23;3410:32;3407:2;;;3455:1;3452;3445:12;3407:2;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3625:2;3651:53;3696:7;3687:6;3676:9;3672:22;3651:53;:::i;:::-;3641:63;;3596:118;3753:2;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3724:118;3397:452;;;;;:::o;3855:407::-;3923:6;3931;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;3996:1;3993;3986:12;3948:2;4039:1;4064:53;4109:7;4100:6;4089:9;4085:22;4064:53;:::i;:::-;4054:63;;4010:117;4166:2;4192:53;4237:7;4228:6;4217:9;4213:22;4192:53;:::i;:::-;4182:63;;4137:118;3938:324;;;;;:::o;4268:405::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:2;;;4417:1;4414;4407:12;4369:2;4488:1;4477:9;4473:17;4460:31;4518:18;4510:6;4507:30;4504:2;;;4550:1;4547;4540:12;4504:2;4578:78;4648:7;4639:6;4628:9;4624:22;4578:78;:::i;:::-;4568:88;;4431:235;4359:314;;;;:::o;4679:256::-;4735:6;4784:2;4772:9;4763:7;4759:23;4755:32;4752:2;;;4800:1;4797;4790:12;4752:2;4843:1;4868:50;4910:7;4901:6;4890:9;4886:22;4868:50;:::i;:::-;4858:60;;4814:114;4742:193;;;;:::o;4941:278::-;5008:6;5057:2;5045:9;5036:7;5032:23;5028:32;5025:2;;;5073:1;5070;5063:12;5025:2;5116:1;5141:61;5194:7;5185:6;5174:9;5170:22;5141:61;:::i;:::-;5131:71;;5087:125;5015:204;;;;:::o;5225:262::-;5284:6;5333:2;5321:9;5312:7;5308:23;5304:32;5301:2;;;5349:1;5346;5339:12;5301:2;5392:1;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5363:117;5291:196;;;;:::o;5493:596::-;5581:6;5589;5597;5646:2;5634:9;5625:7;5621:23;5617:32;5614:2;;;5662:1;5659;5652:12;5614:2;5705:1;5730:64;5786:7;5777:6;5766:9;5762:22;5730:64;:::i;:::-;5720:74;;5676:128;5843:2;5869:64;5925:7;5916:6;5905:9;5901:22;5869:64;:::i;:::-;5859:74;;5814:129;5982:2;6008:64;6064:7;6055:6;6044:9;6040:22;6008:64;:::i;:::-;5998:74;;5953:129;5604:485;;;;;:::o;6095:179::-;6164:10;6185:46;6227:3;6219:6;6185:46;:::i;:::-;6263:4;6258:3;6254:14;6240:28;;6175:99;;;;:::o;6280:108::-;6357:24;6375:5;6357:24;:::i;:::-;6352:3;6345:37;6335:53;;:::o;6394:118::-;6481:24;6499:5;6481:24;:::i;:::-;6476:3;6469:37;6459:53;;:::o;6548:732::-;6667:3;6696:54;6744:5;6696:54;:::i;:::-;6766:86;6845:6;6840:3;6766:86;:::i;:::-;6759:93;;6876:56;6926:5;6876:56;:::i;:::-;6955:7;6986:1;6971:284;6996:6;6993:1;6990:13;6971:284;;;7072:6;7066:13;7099:63;7158:3;7143:13;7099:63;:::i;:::-;7092:70;;7185:60;7238:6;7185:60;:::i;:::-;7175:70;;7031:224;7018:1;7015;7011:9;7006:14;;6971:284;;;6975:14;7271:3;7264:10;;6672:608;;;;;;;:::o;7286:109::-;7367:21;7382:5;7367:21;:::i;:::-;7362:3;7355:34;7345:50;;:::o;7401:147::-;7496:45;7535:5;7496:45;:::i;:::-;7491:3;7484:58;7474:74;;:::o;7554:364::-;7642:3;7670:39;7703:5;7670:39;:::i;:::-;7725:71;7789:6;7784:3;7725:71;:::i;:::-;7718:78;;7805:52;7850:6;7845:3;7838:4;7831:5;7827:16;7805:52;:::i;:::-;7882:29;7904:6;7882:29;:::i;:::-;7877:3;7873:39;7866:46;;7646:272;;;;;:::o;7924:366::-;8066:3;8087:67;8151:2;8146:3;8087:67;:::i;:::-;8080:74;;8163:93;8252:3;8163:93;:::i;:::-;8281:2;8276:3;8272:12;8265:19;;8070:220;;;:::o;8296:366::-;8438:3;8459:67;8523:2;8518:3;8459:67;:::i;:::-;8452:74;;8535:93;8624:3;8535:93;:::i;:::-;8653:2;8648:3;8644:12;8637:19;;8442:220;;;:::o;8668:366::-;8810:3;8831:67;8895:2;8890:3;8831:67;:::i;:::-;8824:74;;8907:93;8996:3;8907:93;:::i;:::-;9025:2;9020:3;9016:12;9009:19;;8814:220;;;:::o;9040:366::-;9182:3;9203:67;9267:2;9262:3;9203:67;:::i;:::-;9196:74;;9279:93;9368:3;9279:93;:::i;:::-;9397:2;9392:3;9388:12;9381:19;;9186:220;;;:::o;9412:366::-;9554:3;9575:67;9639:2;9634:3;9575:67;:::i;:::-;9568:74;;9651:93;9740:3;9651:93;:::i;:::-;9769:2;9764:3;9760:12;9753:19;;9558:220;;;:::o;9784:366::-;9926:3;9947:67;10011:2;10006:3;9947:67;:::i;:::-;9940:74;;10023:93;10112:3;10023:93;:::i;:::-;10141:2;10136:3;10132:12;10125:19;;9930:220;;;:::o;10156:366::-;10298:3;10319:67;10383:2;10378:3;10319:67;:::i;:::-;10312:74;;10395:93;10484:3;10395:93;:::i;:::-;10513:2;10508:3;10504:12;10497:19;;10302:220;;;:::o;10528:366::-;10670:3;10691:67;10755:2;10750:3;10691:67;:::i;:::-;10684:74;;10767:93;10856:3;10767:93;:::i;:::-;10885:2;10880:3;10876:12;10869:19;;10674:220;;;:::o;10900:366::-;11042:3;11063:67;11127:2;11122:3;11063:67;:::i;:::-;11056:74;;11139:93;11228:3;11139:93;:::i;:::-;11257:2;11252:3;11248:12;11241:19;;11046:220;;;:::o;11272:366::-;11414:3;11435:67;11499:2;11494:3;11435:67;:::i;:::-;11428:74;;11511:93;11600:3;11511:93;:::i;:::-;11629:2;11624:3;11620:12;11613:19;;11418:220;;;:::o;11644:366::-;11786:3;11807:67;11871:2;11866:3;11807:67;:::i;:::-;11800:74;;11883:93;11972:3;11883:93;:::i;:::-;12001:2;11996:3;11992:12;11985:19;;11790:220;;;:::o;12016:366::-;12158:3;12179:67;12243:2;12238:3;12179:67;:::i;:::-;12172:74;;12255:93;12344:3;12255:93;:::i;:::-;12373:2;12368:3;12364:12;12357:19;;12162:220;;;:::o;12388:118::-;12475:24;12493:5;12475:24;:::i;:::-;12470:3;12463:37;12453:53;;:::o;12512:112::-;12595:22;12611:5;12595:22;:::i;:::-;12590:3;12583:35;12573:51;;:::o;12630:222::-;12723:4;12761:2;12750:9;12746:18;12738:26;;12774:71;12842:1;12831:9;12827:17;12818:6;12774:71;:::i;:::-;12728:124;;;;:::o;12858:332::-;12979:4;13017:2;13006:9;13002:18;12994:26;;13030:71;13098:1;13087:9;13083:17;13074:6;13030:71;:::i;:::-;13111:72;13179:2;13168:9;13164:18;13155:6;13111:72;:::i;:::-;12984:206;;;;;:::o;13196:332::-;13317:4;13355:2;13344:9;13340:18;13332:26;;13368:71;13436:1;13425:9;13421:17;13412:6;13368:71;:::i;:::-;13449:72;13517:2;13506:9;13502:18;13493:6;13449:72;:::i;:::-;13322:206;;;;;:::o;13534:807::-;13783:4;13821:3;13810:9;13806:19;13798:27;;13835:71;13903:1;13892:9;13888:17;13879:6;13835:71;:::i;:::-;13916:72;13984:2;13973:9;13969:18;13960:6;13916:72;:::i;:::-;13998:80;14074:2;14063:9;14059:18;14050:6;13998:80;:::i;:::-;14088;14164:2;14153:9;14149:18;14140:6;14088:80;:::i;:::-;14178:73;14246:3;14235:9;14231:19;14222:6;14178:73;:::i;:::-;14261;14329:3;14318:9;14314:19;14305:6;14261:73;:::i;:::-;13788:553;;;;;;;;;:::o;14347:210::-;14434:4;14472:2;14461:9;14457:18;14449:26;;14485:65;14547:1;14536:9;14532:17;14523:6;14485:65;:::i;:::-;14439:118;;;;:::o;14563:313::-;14676:4;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:78;14864:4;14855:6;14791:78;:::i;:::-;14783:86;;14681:195;;;;:::o;14882:419::-;15048:4;15086:2;15075:9;15071:18;15063:26;;15135:9;15129:4;15125:20;15121:1;15110:9;15106:17;15099:47;15163:131;15289:4;15163:131;:::i;:::-;15155:139;;15053:248;;;:::o;15307:419::-;15473:4;15511:2;15500:9;15496:18;15488:26;;15560:9;15554:4;15550:20;15546:1;15535:9;15531:17;15524:47;15588:131;15714:4;15588:131;:::i;:::-;15580:139;;15478:248;;;:::o;15732:419::-;15898:4;15936:2;15925:9;15921:18;15913:26;;15985:9;15979:4;15975:20;15971:1;15960:9;15956:17;15949:47;16013:131;16139:4;16013:131;:::i;:::-;16005:139;;15903:248;;;:::o;16157:419::-;16323:4;16361:2;16350:9;16346:18;16338:26;;16410:9;16404:4;16400:20;16396:1;16385:9;16381:17;16374:47;16438:131;16564:4;16438:131;:::i;:::-;16430:139;;16328:248;;;:::o;16582:419::-;16748:4;16786:2;16775:9;16771:18;16763:26;;16835:9;16829:4;16825:20;16821:1;16810:9;16806:17;16799:47;16863:131;16989:4;16863:131;:::i;:::-;16855:139;;16753:248;;;:::o;17007:419::-;17173:4;17211:2;17200:9;17196:18;17188:26;;17260:9;17254:4;17250:20;17246:1;17235:9;17231:17;17224:47;17288:131;17414:4;17288:131;:::i;:::-;17280:139;;17178:248;;;:::o;17432:419::-;17598:4;17636:2;17625:9;17621:18;17613:26;;17685:9;17679:4;17675:20;17671:1;17660:9;17656:17;17649:47;17713:131;17839:4;17713:131;:::i;:::-;17705:139;;17603:248;;;:::o;17857:419::-;18023:4;18061:2;18050:9;18046:18;18038:26;;18110:9;18104:4;18100:20;18096:1;18085:9;18081:17;18074:47;18138:131;18264:4;18138:131;:::i;:::-;18130:139;;18028:248;;;:::o;18282:419::-;18448:4;18486:2;18475:9;18471:18;18463:26;;18535:9;18529:4;18525:20;18521:1;18510:9;18506:17;18499:47;18563:131;18689:4;18563:131;:::i;:::-;18555:139;;18453:248;;;:::o;18707:419::-;18873:4;18911:2;18900:9;18896:18;18888:26;;18960:9;18954:4;18950:20;18946:1;18935:9;18931:17;18924:47;18988:131;19114:4;18988:131;:::i;:::-;18980:139;;18878:248;;;:::o;19132:419::-;19298:4;19336:2;19325:9;19321:18;19313:26;;19385:9;19379:4;19375:20;19371:1;19360:9;19356:17;19349:47;19413:131;19539:4;19413:131;:::i;:::-;19405:139;;19303:248;;;:::o;19557:419::-;19723:4;19761:2;19750:9;19746:18;19738:26;;19810:9;19804:4;19800:20;19796:1;19785:9;19781:17;19774:47;19838:131;19964:4;19838:131;:::i;:::-;19830:139;;19728:248;;;:::o;19982:222::-;20075:4;20113:2;20102:9;20098:18;20090:26;;20126:71;20194:1;20183:9;20179:17;20170:6;20126:71;:::i;:::-;20080:124;;;;:::o;20210:831::-;20473:4;20511:3;20500:9;20496:19;20488:27;;20525:71;20593:1;20582:9;20578:17;20569:6;20525:71;:::i;:::-;20606:80;20682:2;20671:9;20667:18;20658:6;20606:80;:::i;:::-;20733:9;20727:4;20723:20;20718:2;20707:9;20703:18;20696:48;20761:108;20864:4;20855:6;20761:108;:::i;:::-;20753:116;;20879:72;20947:2;20936:9;20932:18;20923:6;20879:72;:::i;:::-;20961:73;21029:3;21018:9;21014:19;21005:6;20961:73;:::i;:::-;20478:563;;;;;;;;:::o;21047:214::-;21136:4;21174:2;21163:9;21159:18;21151:26;;21187:67;21251:1;21240:9;21236:17;21227:6;21187:67;:::i;:::-;21141:120;;;;:::o;21267:129::-;21301:6;21328:20;;:::i;:::-;21318:30;;21357:33;21385:4;21377:6;21357:33;:::i;:::-;21308:88;;;:::o;21402:75::-;21435:6;21468:2;21462:9;21452:19;;21442:35;:::o;21483:311::-;21560:4;21650:18;21642:6;21639:30;21636:2;;;21672:18;;:::i;:::-;21636:2;21722:4;21714:6;21710:17;21702:25;;21782:4;21776;21772:15;21764:23;;21565:229;;;:::o;21800:132::-;21867:4;21890:3;21882:11;;21920:4;21915:3;21911:14;21903:22;;21872:60;;;:::o;21938:114::-;22005:6;22039:5;22033:12;22023:22;;22012:40;;;:::o;22058:99::-;22110:6;22144:5;22138:12;22128:22;;22117:40;;;:::o;22163:113::-;22233:4;22265;22260:3;22256:14;22248:22;;22238:38;;;:::o;22282:184::-;22381:11;22415:6;22410:3;22403:19;22455:4;22450:3;22446:14;22431:29;;22393:73;;;;:::o;22472:169::-;22556:11;22590:6;22585:3;22578:19;22630:4;22625:3;22621:14;22606:29;;22568:73;;;;:::o;22647:305::-;22687:3;22706:20;22724:1;22706:20;:::i;:::-;22701:25;;22740:20;22758:1;22740:20;:::i;:::-;22735:25;;22894:1;22826:66;22822:74;22819:1;22816:81;22813:2;;;22900:18;;:::i;:::-;22813:2;22944:1;22941;22937:9;22930:16;;22691:261;;;;:::o;22958:185::-;22998:1;23015:20;23033:1;23015:20;:::i;:::-;23010:25;;23049:20;23067:1;23049:20;:::i;:::-;23044:25;;23088:1;23078:2;;23093:18;;:::i;:::-;23078:2;23135:1;23132;23128:9;23123:14;;23000:143;;;;:::o;23149:348::-;23189:7;23212:20;23230:1;23212:20;:::i;:::-;23207:25;;23246:20;23264:1;23246:20;:::i;:::-;23241:25;;23434:1;23366:66;23362:74;23359:1;23356:81;23351:1;23344:9;23337:17;23333:105;23330:2;;;23441:18;;:::i;:::-;23330:2;23489:1;23486;23482:9;23471:20;;23197:300;;;;:::o;23503:191::-;23543:4;23563:20;23581:1;23563:20;:::i;:::-;23558:25;;23597:20;23615:1;23597:20;:::i;:::-;23592:25;;23636:1;23633;23630:8;23627:2;;;23641:18;;:::i;:::-;23627:2;23686:1;23683;23679:9;23671:17;;23548:146;;;;:::o;23700:96::-;23737:7;23766:24;23784:5;23766:24;:::i;:::-;23755:35;;23745:51;;;:::o;23802:104::-;23847:7;23876:24;23894:5;23876:24;:::i;:::-;23865:35;;23855:51;;;:::o;23912:90::-;23946:7;23989:5;23982:13;23975:21;23964:32;;23954:48;;;:::o;24008:126::-;24045:7;24085:42;24078:5;24074:54;24063:65;;24053:81;;;:::o;24140:77::-;24177:7;24206:5;24195:16;;24185:32;;;:::o;24223:86::-;24258:7;24298:4;24291:5;24287:16;24276:27;;24266:43;;;:::o;24315:121::-;24373:9;24406:24;24424:5;24406:24;:::i;:::-;24393:37;;24383:53;;;:::o;24442:307::-;24510:1;24520:113;24534:6;24531:1;24528:13;24520:113;;;24619:1;24614:3;24610:11;24604:18;24600:1;24595:3;24591:11;24584:39;24556:2;24553:1;24549:10;24544:15;;24520:113;;;24651:6;24648:1;24645:13;24642:2;;;24731:1;24722:6;24717:3;24713:16;24706:27;24642:2;24491:258;;;;:::o;24755:281::-;24838:27;24860:4;24838:27;:::i;:::-;24830:6;24826:40;24968:6;24956:10;24953:22;24932:18;24920:10;24917:34;24914:62;24911:2;;;24979:18;;:::i;:::-;24911:2;25019:10;25015:2;25008:22;24798:238;;;:::o;25042:233::-;25081:3;25104:24;25122:5;25104:24;:::i;:::-;25095:33;;25150:66;25143:5;25140:77;25137:2;;;25220:18;;:::i;:::-;25137:2;25267:1;25260:5;25256:13;25249:20;;25085:190;;;:::o;25281:180::-;25329:77;25326:1;25319:88;25426:4;25423:1;25416:15;25450:4;25447:1;25440:15;25467:180;25515:77;25512:1;25505:88;25612:4;25609:1;25602:15;25636:4;25633:1;25626:15;25653:180;25701:77;25698:1;25691:88;25798:4;25795:1;25788:15;25822:4;25819:1;25812:15;25839:102;25880:6;25931:2;25927:7;25922:2;25915:5;25911:14;25907:28;25897:38;;25887:54;;;:::o;25947:222::-;26087:34;26083:1;26075:6;26071:14;26064:58;26156:5;26151:2;26143:6;26139:15;26132:30;26053:116;:::o;26175:229::-;26315:34;26311:1;26303:6;26299:14;26292:58;26384:12;26379:2;26371:6;26367:15;26360:37;26281:123;:::o;26410:221::-;26550:34;26546:1;26538:6;26534:14;26527:58;26619:4;26614:2;26606:6;26602:15;26595:29;26516:115;:::o;26637:177::-;26777:29;26773:1;26765:6;26761:14;26754:53;26743:71;:::o;26820:178::-;26960:30;26956:1;26948:6;26944:14;26937:54;26926:72;:::o;27004:178::-;27144:30;27140:1;27132:6;27128:14;27121:54;27110:72;:::o;27188:220::-;27328:34;27324:1;27316:6;27312:14;27305:58;27397:3;27392:2;27384:6;27380:15;27373:28;27294:114;:::o;27414:182::-;27554:34;27550:1;27542:6;27538:14;27531:58;27520:76;:::o;27602:228::-;27742:34;27738:1;27730:6;27726:14;27719:58;27811:11;27806:2;27798:6;27794:15;27787:36;27708:122;:::o;27836:224::-;27976:34;27972:1;27964:6;27960:14;27953:58;28045:7;28040:2;28032:6;28028:15;28021:32;27942:118;:::o;28066:223::-;28206:34;28202:1;28194:6;28190:14;28183:58;28275:6;28270:2;28262:6;28258:15;28251:31;28172:117;:::o;28295:173::-;28435:25;28431:1;28423:6;28419:14;28412:49;28401:67;:::o;28474:122::-;28547:24;28565:5;28547:24;:::i;:::-;28540:5;28537:35;28527:2;;28586:1;28583;28576:12;28527:2;28517:79;:::o;28602:138::-;28683:32;28709:5;28683:32;:::i;:::-;28676:5;28673:43;28663:2;;28730:1;28727;28720:12;28663:2;28653:87;:::o;28746:116::-;28816:21;28831:5;28816:21;:::i;:::-;28809:5;28806:32;28796:2;;28852:1;28849;28842:12;28796:2;28786:76;:::o;28868:122::-;28941:24;28959:5;28941:24;:::i;:::-;28934:5;28931:35;28921:2;;28980:1;28977;28970:12;28921:2;28911:79;:::o
Swarm Source
ipfs://a59824daeef79d55c2eeae47e044c72b741f089296a996fe90758eed99741fdd
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.