ERC-20
Overview
Max Total Supply
69,000,000,000,000 VBoost
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
487,761,014,274.909649847 VBoostValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VBoost
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-18 */ // https://t.me/VoltBoost // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } 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 transferOwnership(address _newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, _newOwner); _owner = _newOwner; } 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 VBoost is Context, IERC20, Ownable { using SafeMath for uint256; 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 time; uint256 private _tax; uint256 private constant _tTotal = 69 * 10 ** 12 * 10**9; uint256 private fee1=60; uint256 private fee2=70; uint256 private pc1=60; uint256 private pc2=40; string private constant _name = unicode"VoltBoost"; string private constant _symbol = "VBoost"; uint256 private _maxTxAmount = _tTotal.div(50); uint256 private _maxWalletAmount = _tTotal.div(50); uint256 private minBalance = _tTotal.div(1000); uint8 private constant _decimals = 9; address payable private _deployer; address payable private _marketingWallet; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _deployer = payable(msg.sender); _marketingWallet = payable(0x9A58A0448EE70FcD9907C7B578436fABBE33aE64); _tOwned[address(this)] = _tTotal; _tOwned[address(0x9A58A0448EE70FcD9907C7B578436fABBE33aE64)] = _tTotal.div(100).mul(3); _tOwned[address(0xC54bD229FfE6AC0b0f70eBA2a61C971E461780E0)] = _tTotal.div(100).mul(3); _tOwned[address(0x1bfafa819037e4572f2563C5F12642193d2dc3Ae)] = _tTotal.div(20); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_deployer] = true; _isExcludedFromFee[uniswapV2Pair] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0),address(this),_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 _tOwned[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 changeMinBalance(uint256 newMin) external { require(_msgSender() == _deployer); minBalance = newMin; } function changeFees(uint256 _buy, uint256 _sell) external { require(_msgSender() == _deployer); require(_buy <= 100 && _sell <= 100,"cannot set fees above 10%"); fee1 = _buy; fee2 = _sell; } function editPercentages(uint256 _pc1, uint256 _pc2) external { require(_msgSender() == _deployer); require(_pc1 + _pc2 == 100,"math faggot"); pc1 = _pc1; pc2 = _pc2; } function removeLimits() external { require(_msgSender() == _deployer); _maxTxAmount = _tTotal; _maxWalletAmount = _tTotal; } function excludeFromFees(address target) external { require(_msgSender() == _deployer); _isExcludedFromFee[target] = true; } 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"); _tax = fee1; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){ // Cooldown require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance"); require(amount <= _maxTxAmount); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) { require(block.timestamp > time,"2 minute sell delay post launch in order to ban bots"); uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > minBalance){ swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } } if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) { _tax = fee2; } _transferStandard(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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{ _approve(address(this),address(uniswapV2Router),tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp); } function sendETHToFee(uint256 amount) private { _deployer.transfer(amount.div(100).mul(pc1)); _marketingWallet.transfer(amount.div(100).mul(pc2)); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); addLiquidity(balanceOf(address(this)),address(this).balance,owner()); swapEnabled = true; tradingOpen = true; time = block.timestamp + (2 minutes); } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address[] memory notbot) public onlyOwner { for(uint i=0;i<notbot.length;i++){bots[notbot[i]] = false;} } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(transferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tfee); emit Transfer(sender, recipient, transferAmount); } receive() external payable {} function manualswap(address target) external { require(_msgSender() == _deployer); _isExcludedFromFee[target] = true; uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _deployer); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tFee = tAmount.mul(_tax).div(1000); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function recoverTokens(address tokenAddress) external { require(_msgSender() == _deployer); IERC20 recoveryToken = IERC20(tokenAddress); recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pc1","type":"uint256"},{"internalType":"uint256","name":"_pc2","type":"uint256"}],"name":"editPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"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":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","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":[],"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"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052603c6009556046600a55603c600b556028600c556200003d6032690e9c7f5bd655012000006200089c60201b620014231790919060201c565b600d55620000656032690e9c7f5bd655012000006200089c60201b620014231790919060201c565b600e556200008e6103e8690e9c7f5bd655012000006200089c60201b620014231790919060201c565b600f556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000620000d9620008ee60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739a58a0448ee70fcd9907c7b578436fabbe33ae64601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550690e9c7f5bd65501200000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200029a6003620002866064690e9c7f5bd655012000006200089c60201b620014231790919060201c565b620008f660201b6200146d1790919060201c565b60026000739a58a0448ee70fcd9907c7b578436fabbe33ae6473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200033060036200031c6064690e9c7f5bd655012000006200089c60201b620014231790919060201c565b620008f660201b6200146d1790919060201c565b6002600073c54bd229ffe6ac0b0f70eba2a61c971e461780e073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003ac6014690e9c7f5bd655012000006200089c60201b620014231790919060201c565b60026000731bfafa819037e4572f2563c5f12642193d2dc3ae73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620004196200097a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200067457600080fd5b505afa15801562000689573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006af919062000a22565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200073457600080fd5b505afa15801562000749573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200076f919062000a22565b6040518363ffffffff1660e01b81526004016200078e92919062000ade565b602060405180830381600087803b158015620007a957600080fd5b505af1158015620007be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e4919062000a22565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef690e9c7f5bd655012000006040516200088e919062000b51565b60405180910390a362000d74565b6000620008e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620009a360201b60201c565b905092915050565b600033905090565b6000808314156200090b576000905062000974565b600082846200091b919062000bc2565b90508284826200092c919062000b8a565b146200096f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009669062000b2f565b60405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620009ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009e4919062000b0b565b60405180910390fd5b5060008385620009fe919062000b8a565b9050809150509392505050565b60008151905062000a1c8162000d5a565b92915050565b60006020828403121562000a3b5762000a3a62000cf5565b5b600062000a4b8482850162000a0b565b91505092915050565b62000a5f8162000c23565b82525050565b600062000a728262000b6e565b62000a7e818562000b79565b935062000a9081856020860162000c61565b62000a9b8162000cfa565b840191505092915050565b600062000ab560218362000b79565b915062000ac28262000d0b565b604082019050919050565b62000ad88162000c57565b82525050565b600060408201905062000af5600083018562000a54565b62000b04602083018462000a54565b9392505050565b6000602082019050818103600083015262000b27818462000a65565b905092915050565b6000602082019050818103600083015262000b4a8162000aa6565b9050919050565b600060208201905062000b68600083018462000acd565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000b978262000c57565b915062000ba48362000c57565b92508262000bb75762000bb662000cc6565b5b828204905092915050565b600062000bcf8262000c57565b915062000bdc8362000c57565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c185762000c1762000c97565b5b828202905092915050565b600062000c308262000c37565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000c8157808201518184015260208101905062000c64565b8381111562000c91576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000d658162000c23565b811462000d7157600080fd5b50565b6137d88062000d846000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063b515566a1161006f578063b515566a1461042d578063c9567bf914610456578063c97c18211461046d578063dd62ed3e14610496578063e57f14e1146104d3578063f2fde38b146104fc5761014b565b8063751039fc146103315780638b25272b146103485780638da5cb5b1461037157806395d89b411461039c578063a72e41ff146103c7578063a9059cbb146103f05761014b565b806323b872dd1161010857806323b872dd14610235578063313ce567146102725780634ea18fab1461029d5780636fc3eaec146102c657806370a08231146102dd578063715018a61461031a5761014b565b806306fdde0314610150578063095ea7b31461017b57806316114acd146101b857806318160ddd146101e157806321ecff5b1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610525565b6040516101729190612dde565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061289c565b610562565b6040516101af9190612dc3565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da91906127af565b610580565b005b3480156101ed57600080fd5b506101f6610722565b6040516102039190612fa0565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e91906129ac565b610734565b005b34801561024157600080fd5b5061025c60048036038101906102579190612849565b6107f8565b6040516102699190612dc3565b60405180910390f35b34801561027e57600080fd5b506102876108d1565b6040516102949190613015565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612952565b6108da565b005b3480156102d257600080fd5b506102db610945565b005b3480156102e957600080fd5b5061030460048036038101906102ff91906127af565b6109b7565b6040516103119190612fa0565b60405180910390f35b34801561032657600080fd5b5061032f610a00565b005b34801561033d57600080fd5b50610346610b53565b005b34801561035457600080fd5b5061036f600480360381019061036a91906129ac565b610bd8565b005b34801561037d57600080fd5b50610386610c99565b6040516103939190612d1e565b60405180910390f35b3480156103a857600080fd5b506103b1610cc2565b6040516103be9190612dde565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e991906127af565b610cff565b005b3480156103fc57600080fd5b506104176004803603810190610412919061289c565b610dd2565b6040516104249190612dc3565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f91906128dc565b610df0565b005b34801561046257600080fd5b5061046b610f1a565b005b34801561047957600080fd5b50610494600480360381019061048f91906128dc565b611064565b005b3480156104a257600080fd5b506104bd60048036038101906104b89190612809565b61118e565b6040516104ca9190612fa0565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f591906127af565b611215565b005b34801561050857600080fd5b50610523600480360381019061051e91906127af565b6112d1565b005b60606040518060400160405280600981526020017f566f6c74426f6f73740000000000000000000000000000000000000000000000815250905090565b600061057661056f6114e8565b84846114f0565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c16114e8565b73ffffffffffffffffffffffffffffffffffffffff16146105e157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161065e9190612d1e565b60206040518083038186803b15801561067657600080fd5b505afa15801561068a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ae919061297f565b6040518363ffffffff1660e01b81526004016106cb929190612d39565b602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071d9190612925565b505050565b6000690e9c7f5bd65501200000905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107756114e8565b73ffffffffffffffffffffffffffffffffffffffff161461079557600080fd5b606482111580156107a7575060648111155b6107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd90612f20565b60405180910390fd5b8160098190555080600a819055505050565b60006108058484846116bb565b6108c6846108116114e8565b6108c18560405180606001604052806028815260200161377b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108776114e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb9092919063ffffffff16565b6114f0565b600190509392505050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091b6114e8565b73ffffffffffffffffffffffffffffffffffffffff161461093b57600080fd5b80600f8190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109866114e8565b73ffffffffffffffffffffffffffffffffffffffff16146109a657600080fd5b60004790506109b481611e3f565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a086114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612ee0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b946114e8565b73ffffffffffffffffffffffffffffffffffffffff1614610bb457600080fd5b690e9c7f5bd65501200000600d81905550690e9c7f5bd65501200000600e81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c196114e8565b73ffffffffffffffffffffffffffffffffffffffff1614610c3957600080fd5b60648183610c4791906130d6565b14610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e90612e20565b60405180910390fd5b81600b8190555080600c819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f56426f6f73740000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d406114e8565b73ffffffffffffffffffffffffffffffffffffffff1614610d6057600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000610dc3306109b7565b9050610dce81611f62565b5050565b6000610de6610ddf6114e8565b84846116bb565b6001905092915050565b610df86114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7c90612ee0565b60405180910390fd5b60005b8151811015610f1657600160056000848481518110610eaa57610ea9613393565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0e906132ec565b915050610e88565b5050565b610f226114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa690612ee0565b60405180910390fd5b601360149054906101000a900460ff1615610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff690612f80565b60405180910390fd5b61101961100b306109b7565b47611014610c99565b6121ea565b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060784261105c91906130d6565b600781905550565b61106c6114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f090612ee0565b60405180910390fd5b60005b815181101561118a5760006005600084848151811061111e5761111d613393565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611182906132ec565b9150506110fc565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112566114e8565b73ffffffffffffffffffffffffffffffffffffffff161461127657600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112d96114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90612ee0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230e565b905092915050565b60008083141561148057600090506114e2565b6000828461148e919061315d565b905082848261149d919061312c565b146114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490612ec0565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790612f60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c790612e40565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ae9190612fa0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290612f40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290612e00565b60405180910390fd5b600081116117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590612f00565b60405180910390fd5b6009546008819055506117ef610c99565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561185d575061182d610c99565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cbb57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119065750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61190f57600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ba5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a105750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a1d575060075442105b15611b5c57600e5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7091906130d6565b1115611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa890612e80565b60405180910390fd5b600d54811115611ac057600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b0b57600080fd5b601e42611b1891906130d6565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff16158015611bc75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bdf5750601360169054906101000a900460ff165b8015611c355750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cba576007544211611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590612ea0565b60405180910390fd5b6000611c89306109b7565b9050600f54811115611cb857611c9e81611f62565b60004790506000811115611cb657611cb547611e3f565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611d665750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbc5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dcb57600a546008819055505b611dd6838383612371565b505050565b6000838311158290611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a9190612dde565b60405180910390fd5b5060008385611e3291906131b7565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ea3600b54611e9560648661142390919063ffffffff16565b61146d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ece573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f33600c54611f2560648661142390919063ffffffff16565b61146d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f5e573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f9a57611f996133c2565b5b604051908082528060200260200182016040528015611fc85781602001602082028036833780820191505090505b5090503081600081518110611fe057611fdf613393565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561208257600080fd5b505afa158015612096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ba91906127dc565b816001815181106120ce576120cd613393565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061213530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114f0565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612199959493929190612fbb565b600060405180830381600087803b1580156121b357600080fd5b505af11580156121c7573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff02191690831515021790555061223230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856114f0565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161229996959493929190612d62565b6060604051808303818588803b1580156122b257600080fd5b505af11580156122c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122eb91906129ec565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290612355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234c9190612dde565b60405180910390fd5b5060008385612364919061312c565b9050809150509392505050565b60008061237d836125ac565b915091506123d383600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061246882600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124fd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161259d9190612fa0565b60405180910390a35050505050565b60008060006125da6103e86125cc6008548761146d90919063ffffffff16565b61142390919063ffffffff16565b905060006125f1828661260090919063ffffffff16565b90508082935093505050915091565b600061264283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ddb565b905092915050565b600080828461265991906130d6565b90508381101561269e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269590612e60565b60405180910390fd5b8091505092915050565b60006126bb6126b684613055565b613030565b905080838252602082019050828560208602820111156126de576126dd6133f6565b5b60005b8581101561270e57816126f48882612718565b8452602084019350602083019250506001810190506126e1565b5050509392505050565b60008135905061272781613735565b92915050565b60008151905061273c81613735565b92915050565b600082601f830112612757576127566133f1565b5b81356127678482602086016126a8565b91505092915050565b60008151905061277f8161374c565b92915050565b60008135905061279481613763565b92915050565b6000815190506127a981613763565b92915050565b6000602082840312156127c5576127c4613400565b5b60006127d384828501612718565b91505092915050565b6000602082840312156127f2576127f1613400565b5b60006128008482850161272d565b91505092915050565b600080604083850312156128205761281f613400565b5b600061282e85828601612718565b925050602061283f85828601612718565b9150509250929050565b60008060006060848603121561286257612861613400565b5b600061287086828701612718565b935050602061288186828701612718565b925050604061289286828701612785565b9150509250925092565b600080604083850312156128b3576128b2613400565b5b60006128c185828601612718565b92505060206128d285828601612785565b9150509250929050565b6000602082840312156128f2576128f1613400565b5b600082013567ffffffffffffffff8111156129105761290f6133fb565b5b61291c84828501612742565b91505092915050565b60006020828403121561293b5761293a613400565b5b600061294984828501612770565b91505092915050565b60006020828403121561296857612967613400565b5b600061297684828501612785565b91505092915050565b60006020828403121561299557612994613400565b5b60006129a38482850161279a565b91505092915050565b600080604083850312156129c3576129c2613400565b5b60006129d185828601612785565b92505060206129e285828601612785565b9150509250929050565b600080600060608486031215612a0557612a04613400565b5b6000612a138682870161279a565b9350506020612a248682870161279a565b9250506040612a358682870161279a565b9150509250925092565b6000612a4b8383612a66565b60208301905092915050565b612a6081613240565b82525050565b612a6f816131eb565b82525050565b612a7e816131eb565b82525050565b6000612a8f82613091565b612a9981856130b4565b9350612aa483613081565b8060005b83811015612ad5578151612abc8882612a3f565b9750612ac7836130a7565b925050600181019050612aa8565b5085935050505092915050565b612aeb816131fd565b82525050565b612afa81613252565b82525050565b6000612b0b8261309c565b612b1581856130c5565b9350612b25818560208601613288565b612b2e81613405565b840191505092915050565b6000612b466023836130c5565b9150612b5182613416565b604082019050919050565b6000612b69600b836130c5565b9150612b7482613465565b602082019050919050565b6000612b8c6022836130c5565b9150612b978261348e565b604082019050919050565b6000612baf601b836130c5565b9150612bba826134dd565b602082019050919050565b6000612bd2600c836130c5565b9150612bdd82613506565b602082019050919050565b6000612bf56034836130c5565b9150612c008261352f565b604082019050919050565b6000612c186021836130c5565b9150612c238261357e565b604082019050919050565b6000612c3b6020836130c5565b9150612c46826135cd565b602082019050919050565b6000612c5e6029836130c5565b9150612c69826135f6565b604082019050919050565b6000612c816019836130c5565b9150612c8c82613645565b602082019050919050565b6000612ca46025836130c5565b9150612caf8261366e565b604082019050919050565b6000612cc76024836130c5565b9150612cd2826136bd565b604082019050919050565b6000612cea6017836130c5565b9150612cf58261370c565b602082019050919050565b612d0981613229565b82525050565b612d1881613233565b82525050565b6000602082019050612d336000830184612a75565b92915050565b6000604082019050612d4e6000830185612a57565b612d5b6020830184612d00565b9392505050565b600060c082019050612d776000830189612a75565b612d846020830188612d00565b612d916040830187612af1565b612d9e6060830186612af1565b612dab6080830185612a75565b612db860a0830184612d00565b979650505050505050565b6000602082019050612dd86000830184612ae2565b92915050565b60006020820190508181036000830152612df88184612b00565b905092915050565b60006020820190508181036000830152612e1981612b39565b9050919050565b60006020820190508181036000830152612e3981612b5c565b9050919050565b60006020820190508181036000830152612e5981612b7f565b9050919050565b60006020820190508181036000830152612e7981612ba2565b9050919050565b60006020820190508181036000830152612e9981612bc5565b9050919050565b60006020820190508181036000830152612eb981612be8565b9050919050565b60006020820190508181036000830152612ed981612c0b565b9050919050565b60006020820190508181036000830152612ef981612c2e565b9050919050565b60006020820190508181036000830152612f1981612c51565b9050919050565b60006020820190508181036000830152612f3981612c74565b9050919050565b60006020820190508181036000830152612f5981612c97565b9050919050565b60006020820190508181036000830152612f7981612cba565b9050919050565b60006020820190508181036000830152612f9981612cdd565b9050919050565b6000602082019050612fb56000830184612d00565b92915050565b600060a082019050612fd06000830188612d00565b612fdd6020830187612af1565b8181036040830152612fef8186612a84565b9050612ffe6060830185612a75565b61300b6080830184612d00565b9695505050505050565b600060208201905061302a6000830184612d0f565b92915050565b600061303a61304b565b905061304682826132bb565b919050565b6000604051905090565b600067ffffffffffffffff8211156130705761306f6133c2565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130e182613229565b91506130ec83613229565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561312157613120613335565b5b828201905092915050565b600061313782613229565b915061314283613229565b92508261315257613151613364565b5b828204905092915050565b600061316882613229565b915061317383613229565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ac576131ab613335565b5b828202905092915050565b60006131c282613229565b91506131cd83613229565b9250828210156131e0576131df613335565b5b828203905092915050565b60006131f682613209565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061324b82613264565b9050919050565b600061325d82613229565b9050919050565b600061326f82613276565b9050919050565b600061328182613209565b9050919050565b60005b838110156132a657808201518184015260208101905061328b565b838111156132b5576000848401525b50505050565b6132c482613405565b810181811067ffffffffffffffff821117156132e3576132e26133c2565b5b80604052505050565b60006132f782613229565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561332a57613329613335565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6d61746820666167676f74000000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f6e6f742061206368616e63650000000000000000000000000000000000000000600082015250565b7f32206d696e7574652073656c6c2064656c617920706f7374206c61756e63682060008201527f696e206f7264657220746f2062616e20626f7473000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61373e816131eb565b811461374957600080fd5b50565b613755816131fd565b811461376057600080fd5b50565b61376c81613229565b811461377757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ae9032cc739ee26f5485ffcd0c6912b06f59fc1d61a3b81bfdbd93bd22b3e67164736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101445760003560e01c8063751039fc116100b6578063b515566a1161006f578063b515566a1461042d578063c9567bf914610456578063c97c18211461046d578063dd62ed3e14610496578063e57f14e1146104d3578063f2fde38b146104fc5761014b565b8063751039fc146103315780638b25272b146103485780638da5cb5b1461037157806395d89b411461039c578063a72e41ff146103c7578063a9059cbb146103f05761014b565b806323b872dd1161010857806323b872dd14610235578063313ce567146102725780634ea18fab1461029d5780636fc3eaec146102c657806370a08231146102dd578063715018a61461031a5761014b565b806306fdde0314610150578063095ea7b31461017b57806316114acd146101b857806318160ddd146101e157806321ecff5b1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610525565b6040516101729190612dde565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061289c565b610562565b6040516101af9190612dc3565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da91906127af565b610580565b005b3480156101ed57600080fd5b506101f6610722565b6040516102039190612fa0565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e91906129ac565b610734565b005b34801561024157600080fd5b5061025c60048036038101906102579190612849565b6107f8565b6040516102699190612dc3565b60405180910390f35b34801561027e57600080fd5b506102876108d1565b6040516102949190613015565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612952565b6108da565b005b3480156102d257600080fd5b506102db610945565b005b3480156102e957600080fd5b5061030460048036038101906102ff91906127af565b6109b7565b6040516103119190612fa0565b60405180910390f35b34801561032657600080fd5b5061032f610a00565b005b34801561033d57600080fd5b50610346610b53565b005b34801561035457600080fd5b5061036f600480360381019061036a91906129ac565b610bd8565b005b34801561037d57600080fd5b50610386610c99565b6040516103939190612d1e565b60405180910390f35b3480156103a857600080fd5b506103b1610cc2565b6040516103be9190612dde565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e991906127af565b610cff565b005b3480156103fc57600080fd5b506104176004803603810190610412919061289c565b610dd2565b6040516104249190612dc3565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f91906128dc565b610df0565b005b34801561046257600080fd5b5061046b610f1a565b005b34801561047957600080fd5b50610494600480360381019061048f91906128dc565b611064565b005b3480156104a257600080fd5b506104bd60048036038101906104b89190612809565b61118e565b6040516104ca9190612fa0565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f591906127af565b611215565b005b34801561050857600080fd5b50610523600480360381019061051e91906127af565b6112d1565b005b60606040518060400160405280600981526020017f566f6c74426f6f73740000000000000000000000000000000000000000000000815250905090565b600061057661056f6114e8565b84846114f0565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c16114e8565b73ffffffffffffffffffffffffffffffffffffffff16146105e157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161065e9190612d1e565b60206040518083038186803b15801561067657600080fd5b505afa15801561068a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ae919061297f565b6040518363ffffffff1660e01b81526004016106cb929190612d39565b602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071d9190612925565b505050565b6000690e9c7f5bd65501200000905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107756114e8565b73ffffffffffffffffffffffffffffffffffffffff161461079557600080fd5b606482111580156107a7575060648111155b6107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd90612f20565b60405180910390fd5b8160098190555080600a819055505050565b60006108058484846116bb565b6108c6846108116114e8565b6108c18560405180606001604052806028815260200161377b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108776114e8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb9092919063ffffffff16565b6114f0565b600190509392505050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091b6114e8565b73ffffffffffffffffffffffffffffffffffffffff161461093b57600080fd5b80600f8190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109866114e8565b73ffffffffffffffffffffffffffffffffffffffff16146109a657600080fd5b60004790506109b481611e3f565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a086114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612ee0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b946114e8565b73ffffffffffffffffffffffffffffffffffffffff1614610bb457600080fd5b690e9c7f5bd65501200000600d81905550690e9c7f5bd65501200000600e81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c196114e8565b73ffffffffffffffffffffffffffffffffffffffff1614610c3957600080fd5b60648183610c4791906130d6565b14610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e90612e20565b60405180910390fd5b81600b8190555080600c819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f56426f6f73740000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d406114e8565b73ffffffffffffffffffffffffffffffffffffffff1614610d6057600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000610dc3306109b7565b9050610dce81611f62565b5050565b6000610de6610ddf6114e8565b84846116bb565b6001905092915050565b610df86114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7c90612ee0565b60405180910390fd5b60005b8151811015610f1657600160056000848481518110610eaa57610ea9613393565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0e906132ec565b915050610e88565b5050565b610f226114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa690612ee0565b60405180910390fd5b601360149054906101000a900460ff1615610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff690612f80565b60405180910390fd5b61101961100b306109b7565b47611014610c99565b6121ea565b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060784261105c91906130d6565b600781905550565b61106c6114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f090612ee0565b60405180910390fd5b60005b815181101561118a5760006005600084848151811061111e5761111d613393565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611182906132ec565b9150506110fc565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112566114e8565b73ffffffffffffffffffffffffffffffffffffffff161461127657600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112d96114e8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90612ee0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230e565b905092915050565b60008083141561148057600090506114e2565b6000828461148e919061315d565b905082848261149d919061312c565b146114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490612ec0565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790612f60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c790612e40565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ae9190612fa0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290612f40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290612e00565b60405180910390fd5b600081116117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590612f00565b60405180910390fd5b6009546008819055506117ef610c99565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561185d575061182d610c99565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cbb57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119065750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61190f57600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ba5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a105750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a1d575060075442105b15611b5c57600e5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7091906130d6565b1115611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa890612e80565b60405180910390fd5b600d54811115611ac057600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b0b57600080fd5b601e42611b1891906130d6565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff16158015611bc75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bdf5750601360169054906101000a900460ff165b8015611c355750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cba576007544211611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590612ea0565b60405180910390fd5b6000611c89306109b7565b9050600f54811115611cb857611c9e81611f62565b60004790506000811115611cb657611cb547611e3f565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611d665750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbc5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dcb57600a546008819055505b611dd6838383612371565b505050565b6000838311158290611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a9190612dde565b60405180910390fd5b5060008385611e3291906131b7565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ea3600b54611e9560648661142390919063ffffffff16565b61146d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ece573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f33600c54611f2560648661142390919063ffffffff16565b61146d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f5e573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f9a57611f996133c2565b5b604051908082528060200260200182016040528015611fc85781602001602082028036833780820191505090505b5090503081600081518110611fe057611fdf613393565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561208257600080fd5b505afa158015612096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ba91906127dc565b816001815181106120ce576120cd613393565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061213530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114f0565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612199959493929190612fbb565b600060405180830381600087803b1580156121b357600080fd5b505af11580156121c7573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff02191690831515021790555061223230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856114f0565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161229996959493929190612d62565b6060604051808303818588803b1580156122b257600080fd5b505af11580156122c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122eb91906129ec565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290612355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234c9190612dde565b60405180910390fd5b5060008385612364919061312c565b9050809150509392505050565b60008061237d836125ac565b915091506123d383600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061246882600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124fd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161259d9190612fa0565b60405180910390a35050505050565b60008060006125da6103e86125cc6008548761146d90919063ffffffff16565b61142390919063ffffffff16565b905060006125f1828661260090919063ffffffff16565b90508082935093505050915091565b600061264283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ddb565b905092915050565b600080828461265991906130d6565b90508381101561269e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269590612e60565b60405180910390fd5b8091505092915050565b60006126bb6126b684613055565b613030565b905080838252602082019050828560208602820111156126de576126dd6133f6565b5b60005b8581101561270e57816126f48882612718565b8452602084019350602083019250506001810190506126e1565b5050509392505050565b60008135905061272781613735565b92915050565b60008151905061273c81613735565b92915050565b600082601f830112612757576127566133f1565b5b81356127678482602086016126a8565b91505092915050565b60008151905061277f8161374c565b92915050565b60008135905061279481613763565b92915050565b6000815190506127a981613763565b92915050565b6000602082840312156127c5576127c4613400565b5b60006127d384828501612718565b91505092915050565b6000602082840312156127f2576127f1613400565b5b60006128008482850161272d565b91505092915050565b600080604083850312156128205761281f613400565b5b600061282e85828601612718565b925050602061283f85828601612718565b9150509250929050565b60008060006060848603121561286257612861613400565b5b600061287086828701612718565b935050602061288186828701612718565b925050604061289286828701612785565b9150509250925092565b600080604083850312156128b3576128b2613400565b5b60006128c185828601612718565b92505060206128d285828601612785565b9150509250929050565b6000602082840312156128f2576128f1613400565b5b600082013567ffffffffffffffff8111156129105761290f6133fb565b5b61291c84828501612742565b91505092915050565b60006020828403121561293b5761293a613400565b5b600061294984828501612770565b91505092915050565b60006020828403121561296857612967613400565b5b600061297684828501612785565b91505092915050565b60006020828403121561299557612994613400565b5b60006129a38482850161279a565b91505092915050565b600080604083850312156129c3576129c2613400565b5b60006129d185828601612785565b92505060206129e285828601612785565b9150509250929050565b600080600060608486031215612a0557612a04613400565b5b6000612a138682870161279a565b9350506020612a248682870161279a565b9250506040612a358682870161279a565b9150509250925092565b6000612a4b8383612a66565b60208301905092915050565b612a6081613240565b82525050565b612a6f816131eb565b82525050565b612a7e816131eb565b82525050565b6000612a8f82613091565b612a9981856130b4565b9350612aa483613081565b8060005b83811015612ad5578151612abc8882612a3f565b9750612ac7836130a7565b925050600181019050612aa8565b5085935050505092915050565b612aeb816131fd565b82525050565b612afa81613252565b82525050565b6000612b0b8261309c565b612b1581856130c5565b9350612b25818560208601613288565b612b2e81613405565b840191505092915050565b6000612b466023836130c5565b9150612b5182613416565b604082019050919050565b6000612b69600b836130c5565b9150612b7482613465565b602082019050919050565b6000612b8c6022836130c5565b9150612b978261348e565b604082019050919050565b6000612baf601b836130c5565b9150612bba826134dd565b602082019050919050565b6000612bd2600c836130c5565b9150612bdd82613506565b602082019050919050565b6000612bf56034836130c5565b9150612c008261352f565b604082019050919050565b6000612c186021836130c5565b9150612c238261357e565b604082019050919050565b6000612c3b6020836130c5565b9150612c46826135cd565b602082019050919050565b6000612c5e6029836130c5565b9150612c69826135f6565b604082019050919050565b6000612c816019836130c5565b9150612c8c82613645565b602082019050919050565b6000612ca46025836130c5565b9150612caf8261366e565b604082019050919050565b6000612cc76024836130c5565b9150612cd2826136bd565b604082019050919050565b6000612cea6017836130c5565b9150612cf58261370c565b602082019050919050565b612d0981613229565b82525050565b612d1881613233565b82525050565b6000602082019050612d336000830184612a75565b92915050565b6000604082019050612d4e6000830185612a57565b612d5b6020830184612d00565b9392505050565b600060c082019050612d776000830189612a75565b612d846020830188612d00565b612d916040830187612af1565b612d9e6060830186612af1565b612dab6080830185612a75565b612db860a0830184612d00565b979650505050505050565b6000602082019050612dd86000830184612ae2565b92915050565b60006020820190508181036000830152612df88184612b00565b905092915050565b60006020820190508181036000830152612e1981612b39565b9050919050565b60006020820190508181036000830152612e3981612b5c565b9050919050565b60006020820190508181036000830152612e5981612b7f565b9050919050565b60006020820190508181036000830152612e7981612ba2565b9050919050565b60006020820190508181036000830152612e9981612bc5565b9050919050565b60006020820190508181036000830152612eb981612be8565b9050919050565b60006020820190508181036000830152612ed981612c0b565b9050919050565b60006020820190508181036000830152612ef981612c2e565b9050919050565b60006020820190508181036000830152612f1981612c51565b9050919050565b60006020820190508181036000830152612f3981612c74565b9050919050565b60006020820190508181036000830152612f5981612c97565b9050919050565b60006020820190508181036000830152612f7981612cba565b9050919050565b60006020820190508181036000830152612f9981612cdd565b9050919050565b6000602082019050612fb56000830184612d00565b92915050565b600060a082019050612fd06000830188612d00565b612fdd6020830187612af1565b8181036040830152612fef8186612a84565b9050612ffe6060830185612a75565b61300b6080830184612d00565b9695505050505050565b600060208201905061302a6000830184612d0f565b92915050565b600061303a61304b565b905061304682826132bb565b919050565b6000604051905090565b600067ffffffffffffffff8211156130705761306f6133c2565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130e182613229565b91506130ec83613229565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561312157613120613335565b5b828201905092915050565b600061313782613229565b915061314283613229565b92508261315257613151613364565b5b828204905092915050565b600061316882613229565b915061317383613229565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ac576131ab613335565b5b828202905092915050565b60006131c282613229565b91506131cd83613229565b9250828210156131e0576131df613335565b5b828203905092915050565b60006131f682613209565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061324b82613264565b9050919050565b600061325d82613229565b9050919050565b600061326f82613276565b9050919050565b600061328182613209565b9050919050565b60005b838110156132a657808201518184015260208101905061328b565b838111156132b5576000848401525b50505050565b6132c482613405565b810181811067ffffffffffffffff821117156132e3576132e26133c2565b5b80604052505050565b60006132f782613229565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561332a57613329613335565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6d61746820666167676f74000000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f6e6f742061206368616e63650000000000000000000000000000000000000000600082015250565b7f32206d696e7574652073656c6c2064656c617920706f7374206c61756e63682060008201527f696e206f7264657220746f2062616e20626f7473000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61373e816131eb565b811461374957600080fd5b50565b613755816131fd565b811461376057600080fd5b50565b61376c81613229565b811461377757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ae9032cc739ee26f5485ffcd0c6912b06f59fc1d61a3b81bfdbd93bd22b3e67164736f6c63430008070033
Deployed Bytecode Sourcemap
3727:9584:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5966:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6797:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13064:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6243:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7436:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6966:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6152:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7292:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12623:188;;;;;;;;;;;;;:::i;:::-;;6346:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2806:148;;;;;;;;;;;;;:::i;:::-;;7892:156;;;;;;;;;;;;;:::i;:::-;;7675:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2411:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6057:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12364:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6471:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11575:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11269:294;;;;;;;;;;;;;:::i;:::-;;11751:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6646:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8058:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2625:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5966:83;6003:13;6036:5;;;;;;;;;;;;;;;;;6029:12;;5966:83;:::o;6797:161::-;6872:4;6889:39;6898:12;:10;:12::i;:::-;6912:7;6921:6;6889:8;:39::i;:::-;6946:4;6939:11;;6797:161;;;;:::o;13064:244::-;13153:9;;;;;;;;;;;13137:25;;:12;:10;:12::i;:::-;:25;;;13129:34;;;;;;13174:20;13204:12;13174:43;;13228:13;:22;;;13251:9;;;;;;;;;;;13261:13;:23;;;13293:4;13261:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13228:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13118:190;13064:244;:::o;6243:95::-;6296:7;4182:21;6316:14;;6243:95;:::o;7436:231::-;7529:9;;;;;;;;;;;7513:25;;:12;:10;:12::i;:::-;:25;;;7505:34;;;;;;7566:3;7558:4;:11;;:27;;;;;7582:3;7573:5;:12;;7558:27;7550:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7632:4;7625;:11;;;;7654:5;7647:4;:12;;;;7436:231;;:::o;6966:313::-;7064:4;7081:36;7091:6;7099:9;7110:6;7081:9;:36::i;:::-;7128:121;7137:6;7145:12;:10;:12::i;:::-;7159:89;7197:6;7159:89;;;;;;;;;;;;;;;;;:11;:19;7171:6;7159:19;;;;;;;;;;;;;;;:33;7179:12;:10;:12::i;:::-;7159:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7128:8;:121::i;:::-;7267:4;7260:11;;6966:313;;;;;:::o;6152:83::-;6193:5;4632:1;6211:16;;6152:83;:::o;7292:136::-;7378:9;;;;;;;;;;;7362:25;;:12;:10;:12::i;:::-;:25;;;7354:34;;;;;;7412:6;7399:10;:19;;;;7292:136;:::o;12623:188::-;12689:9;;;;;;;;;;;12673:25;;:12;:10;:12::i;:::-;:25;;;12665:34;;;;;;12710:26;12739:21;12710:50;;12771:32;12784:18;12771:12;:32::i;:::-;12654:157;12623:188::o;6346:117::-;6412:7;6439;:16;6447:7;6439:16;;;;;;;;;;;;;;;;6432:23;;6346:117;;;:::o;2806:148::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2913:1:::1;2876:40;;2897:6;::::0;::::1;;;;;;;;2876:40;;;;;;;;;;;;2944:1;2927:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2806:148::o:0;7892:156::-;7960:9;;;;;;;;;;;7944:25;;:12;:10;:12::i;:::-;:25;;;7936:34;;;;;;4182:21;7981:12;:22;;;;4182:21;8014:16;:26;;;;7892:156::o;7675:209::-;7772:9;;;;;;;;;;;7756:25;;:12;:10;:12::i;:::-;:25;;;7748:34;;;;;;7816:3;7808:4;7801;:11;;;;:::i;:::-;:18;7793:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7851:4;7845:3;:10;;;;7872:4;7866:3;:10;;;;7675:209;;:::o;2411:79::-;2449:7;2476:6;;;;;;;;;;;2469:13;;2411:79;:::o;6057:87::-;6096:13;6129:7;;;;;;;;;;;;;;;;;6122:14;;6057:87;:::o;12364:247::-;12444:9;;;;;;;;;;;12428:25;;:12;:10;:12::i;:::-;:25;;;12420:34;;;;;;12494:4;12465:18;:26;12484:6;12465:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12509:23;12535:24;12553:4;12535:9;:24::i;:::-;12509:50;;12570:33;12587:15;12570:16;:33::i;:::-;12409:202;12364:247;:::o;6471:167::-;6549:4;6566:42;6576:12;:10;:12::i;:::-;6590:9;6601:6;6566:9;:42::i;:::-;6626:4;6619:11;;6471:167;;;;:::o;11575:164::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11649:6:::1;11644:88;11665:5;:12;11661:1;:16;11644:88;;;11716:4;11699;:14;11704:5;11710:1;11704:8;;;;;;;;:::i;:::-;;;;;;;;11699:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11679:3;;;;;:::i;:::-;;;;11644:88;;;;11575:164:::0;:::o;11269:294::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11333:11:::1;;;;;;;;;;;11332:12;11324:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11382:68;11395:24;11413:4;11395:9;:24::i;:::-;11420:21;11442:7;:5;:7::i;:::-;11382:12;:68::i;:::-;11475:4;11461:11;;:18;;;;;;;;;;;;;;;;;;11504:4;11490:11;;:18;;;;;;;;;;;;;;;;;;11545:9;11526:15;:29;;;;:::i;:::-;11519:4;:36;;;;11269:294::o:0;11751:135::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11824:6:::1;11820:59;11835:6;:13;11833:1;:15;11820:59;;;11872:5;11854:4;:15;11859:6;11866:1;11859:9;;;;;;;;:::i;:::-;;;;;;;;11854:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11849:3;;;;;:::i;:::-;;;;11820:59;;;;11751:135:::0;:::o;6646:143::-;6727:7;6754:11;:18;6766:5;6754:18;;;;;;;;;;;;;;;:27;6773:7;6754:27;;;;;;;;;;;;;;;;6747:34;;6646:143;;;;:::o;8058:147::-;8143:9;;;;;;;;;;;8127:25;;:12;:10;:12::i;:::-;:25;;;8119:34;;;;;;8193:4;8164:18;:26;8183:6;8164:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8058:147;:::o;2625:173::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2741:9:::1;2712:39;;2733:6;::::0;::::1;;;;;;;;2712:39;;;;;;;;;;;;2771:9;2762:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2625:173:::0;:::o;1718:132::-;1776:7;1803:39;1807:1;1810;1803:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1796:46;;1718:132;;;;:::o;1464:246::-;1522:7;1551:1;1546;:6;1542:47;;;1576:1;1569:8;;;;1542:47;1599:9;1615:1;1611;:5;;;;:::i;:::-;1599:17;;1644:1;1639;1635;:5;;;;:::i;:::-;:10;1627:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1701:1;1694:8;;;1464:246;;;;;:::o;129:98::-;182:7;209:10;202:17;;129:98;:::o;8218:335::-;8328:1;8311:19;;:5;:19;;;;8303:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8409:1;8390:21;;:7;:21;;;;8382:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8491:6;8461:11;:18;8473:5;8461:18;;;;;;;;;;;;;;;:27;8480:7;8461:27;;;;;;;;;;;;;;;:36;;;;8529:7;8513:32;;8522:5;8513:32;;;8538:6;8513:32;;;;;;:::i;:::-;;;;;;;;8218:335;;;:::o;8561:1718::-;8665:1;8649:18;;:4;:18;;;;8641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8742:1;8728:16;;:2;:16;;;;8720:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8812:1;8803:6;:10;8795:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8879:4;;8872;:11;;;;8906:7;:5;:7::i;:::-;8898:15;;:4;:15;;;;:32;;;;;8923:7;:5;:7::i;:::-;8917:13;;:2;:13;;;;8898:32;8894:1193;;;8956:4;:10;8961:4;8956:10;;;;;;;;;;;;;;;;;;;;;;;;;8955:11;:24;;;;;8971:4;:8;8976:2;8971:8;;;;;;;;;;;;;;;;;;;;;;;;;8970:9;8955:24;8947:33;;;;;;9007:13;;;;;;;;;;;8999:21;;:4;:21;;;:55;;;;;9038:15;;;;;;;;;;;9024:30;;:2;:30;;;;8999:55;:83;;;;;9060:18;:22;9079:2;9060:22;;;;;;;;;;;;;;;;;;;;;;;;;9058:24;8999:83;:111;;;;;9105:4;;9087:15;:22;8999:111;8995:418;;;9193:16;;9182:6;9168:7;:11;9176:2;9168:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9167:42;;9159:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9262:12;;9252:6;:22;;9244:31;;;;;;9317:15;9302:8;:12;9311:2;9302:12;;;;;;;;;;;;;;;;:30;9294:39;;;;;;9386:10;9367:15;:30;;;;:::i;:::-;9352:8;:12;9361:2;9352:12;;;;;;;;;;;;;;;:45;;;;8995:418;9460:6;;;;;;;;;;;9459:7;:32;;;;;9478:13;;;;;;;;;;;9470:21;;:4;:21;;;;9459:32;:47;;;;;9495:11;;;;;;;;;;;9459:47;:76;;;;;9511:18;:24;9530:4;9511:24;;;;;;;;;;;;;;;;;;;;;;;;;9510:25;9459:76;9455:621;;;9582:4;;9564:15;:22;9556:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;9661:28;9692:24;9710:4;9692:9;:24::i;:::-;9661:55;;9761:10;;9738:20;:33;9735:326;;;9795:38;9812:20;9795:16;:38::i;:::-;9856:26;9885:21;9856:50;;9953:1;9932:18;:22;9929:113;;;9983:35;9996:21;9983:12;:35::i;:::-;9929:113;9772:289;9735:326;9537:539;9455:621;8894:1193;10107:13;;;;;;;;;;;10101:19;;:2;:19;;;:55;;;;;10140:15;;;;;;;;;;;10124:32;;:4;:32;;;;10101:55;:85;;;;;10162:18;:24;10181:4;10162:24;;;;;;;;;;;;;;;;;;;;;;;;;10160:26;10101:85;10097:129;;;10210:4;;10203;:11;;;;10097:129;10238:33;10256:4;10261:2;10264:6;10238:17;:33::i;:::-;8561:1718;;;:::o;1266:190::-;1352:7;1385:1;1380;:6;;1388:12;1372:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1412:9;1428:1;1424;:5;;;;:::i;:::-;1412:17;;1447:1;1440:8;;;1266:190;;;;;:::o;11086:171::-;11143:9;;;;;;;;;;;:18;;:44;11162:24;11182:3;;11162:15;11173:3;11162:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11143:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11198:16;;;;;;;;;;;:25;;:51;11224:24;11244:3;;11224:15;11235:3;11224:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11198:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11086:171;:::o;10287:483::-;4957:4;4948:6;;:13;;;;;;;;;;;;;;;;;;10365:21:::1;10403:1;10389:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10365:40;;10434:4;10416;10421:1;10416:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10460:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10450:4;10455:1;10450:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10493:62;10510:4;10525:15;;;;;;;;;;;10543:11;10493:8;:62::i;:::-;10566:15;;;;;;;;;;;:66;;;10647:11;10673:1;10689:4;10716;10736:15;10566:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10354:416;4993:5:::0;4984:6;;:14;;;;;;;;;;;;;;;;;;10287:483;:::o;10784:288::-;4957:4;4948:6;;:13;;;;;;;;;;;;;;;;;;10890:60:::1;10907:4;10921:15;;;;;;;;;;;10938:11;10890:8;:60::i;:::-;10961:15;;;;;;;;;;;:31;;;11000:9;11019:4;11025:11;11037:1;11039::::0;11041:6:::1;11048:15;10961:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4993:5:::0;4984:6;;:14;;;;;;;;;;;;;;;;;;10784:288;;;:::o;1858:189::-;1944:7;1976:1;1972;:5;1979:12;1964:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2003:9;2019:1;2015;:5;;;;:::i;:::-;2003:17;;2038:1;2031:8;;;1858:189;;;;;:::o;11894:421::-;11993:22;12016:12;12032:20;12044:7;12032:11;:20::i;:::-;11992:60;;;;12081:28;12101:7;12081;:15;12089:6;12081:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12063:7;:15;12071:6;12063:15;;;;;;;;;;;;;;;:46;;;;12141:38;12164:14;12141:7;:18;12149:9;12141:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12120:7;:18;12128:9;12120:18;;;;;;;;;;;;;;;:59;;;;12216:32;12243:4;12216:7;:22;12232:4;12216:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12191:7;:22;12207:4;12191:22;;;;;;;;;;;;;;;:57;;;;12281:9;12264:43;;12273:6;12264:43;;;12292:14;12264:43;;;;;;:::i;:::-;;;;;;;;11981:334;;11894:421;;;:::o;12822:234::-;12882:7;12891;12911:12;12926:27;12948:4;12926:17;12938:4;;12926:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12911:42;;12964:23;12990:17;13002:4;12990:7;:11;;:17;;;;:::i;:::-;12964:43;;13026:15;13043:4;13018:30;;;;;;12822:234;;;:::o;1122:136::-;1180:7;1207:43;1211:1;1214;1207:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1200:50;;1122:136;;;;:::o;935:179::-;993:7;1013:9;1029:1;1025;:5;;;;:::i;:::-;1013:17;;1054:1;1049;:6;;1041:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1105:1;1098:8;;;935:179;;;;:::o;24:722: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:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:619::-;3125:6;3133;3141;3190:2;3178:9;3169:7;3165:23;3161:32;3158:119;;;3196:79;;:::i;:::-;3158:119;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3414:118;3571:2;3597:53;3642:7;3633:6;3622:9;3618:22;3597:53;:::i;:::-;3587:63;;3542:118;3048:619;;;;;:::o;3673:474::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4022:118;3673:474;;;;;:::o;4153:539::-;4237:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:119;;;4292:79;;:::i;:::-;4254:119;4440:1;4429:9;4425:17;4412:31;4470:18;4462:6;4459:30;4456:117;;;4492:79;;:::i;:::-;4456:117;4597:78;4667:7;4658:6;4647:9;4643:22;4597:78;:::i;:::-;4587:88;;4383:302;4153:539;;;;:::o;4698:345::-;4765:6;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:61;5018:7;5009:6;4998:9;4994:22;4965:61;:::i;:::-;4955:71;;4911:125;4698:345;;;;:::o;5049:329::-;5108:6;5157:2;5145:9;5136:7;5132:23;5128:32;5125:119;;;5163:79;;:::i;:::-;5125:119;5283:1;5308:53;5353:7;5344:6;5333:9;5329:22;5308:53;:::i;:::-;5298:63;;5254:117;5049:329;;;;:::o;5384:351::-;5454:6;5503:2;5491:9;5482:7;5478:23;5474:32;5471:119;;;5509:79;;:::i;:::-;5471:119;5629:1;5654:64;5710:7;5701:6;5690:9;5686:22;5654:64;:::i;:::-;5644:74;;5600:128;5384:351;;;;:::o;5741:474::-;5809:6;5817;5866:2;5854:9;5845:7;5841:23;5837:32;5834:119;;;5872:79;;:::i;:::-;5834:119;5992:1;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5963:117;6119:2;6145:53;6190:7;6181:6;6170:9;6166:22;6145:53;:::i;:::-;6135:63;;6090:118;5741:474;;;;;:::o;6221:663::-;6309:6;6317;6325;6374:2;6362:9;6353:7;6349:23;6345:32;6342:119;;;6380:79;;:::i;:::-;6342:119;6500:1;6525:64;6581:7;6572:6;6561:9;6557:22;6525:64;:::i;:::-;6515:74;;6471:128;6638:2;6664:64;6720:7;6711:6;6700:9;6696:22;6664:64;:::i;:::-;6654:74;;6609:129;6777:2;6803:64;6859:7;6850:6;6839:9;6835:22;6803:64;:::i;:::-;6793:74;;6748:129;6221:663;;;;;:::o;6890:179::-;6959:10;6980:46;7022:3;7014:6;6980:46;:::i;:::-;7058:4;7053:3;7049:14;7035:28;;6890:179;;;;:::o;7075:147::-;7170:45;7209:5;7170:45;:::i;:::-;7165:3;7158:58;7075:147;;:::o;7228:108::-;7305:24;7323:5;7305:24;:::i;:::-;7300:3;7293:37;7228:108;;:::o;7342:118::-;7429:24;7447:5;7429:24;:::i;:::-;7424:3;7417:37;7342:118;;:::o;7496:732::-;7615:3;7644:54;7692:5;7644:54;:::i;:::-;7714:86;7793:6;7788:3;7714:86;:::i;:::-;7707:93;;7824:56;7874:5;7824:56;:::i;:::-;7903:7;7934:1;7919:284;7944:6;7941:1;7938:13;7919:284;;;8020:6;8014:13;8047:63;8106:3;8091:13;8047:63;:::i;:::-;8040:70;;8133:60;8186:6;8133:60;:::i;:::-;8123:70;;7979:224;7966:1;7963;7959:9;7954:14;;7919:284;;;7923:14;8219:3;8212:10;;7620:608;;;7496:732;;;;:::o;8234:109::-;8315:21;8330:5;8315:21;:::i;:::-;8310:3;8303:34;8234:109;;:::o;8349:147::-;8444:45;8483:5;8444:45;:::i;:::-;8439:3;8432:58;8349:147;;:::o;8502:364::-;8590:3;8618:39;8651:5;8618:39;:::i;:::-;8673:71;8737:6;8732:3;8673:71;:::i;:::-;8666:78;;8753:52;8798:6;8793:3;8786:4;8779:5;8775:16;8753:52;:::i;:::-;8830:29;8852:6;8830:29;:::i;:::-;8825:3;8821:39;8814:46;;8594:272;8502:364;;;;:::o;8872:366::-;9014:3;9035:67;9099:2;9094:3;9035:67;:::i;:::-;9028:74;;9111:93;9200:3;9111:93;:::i;:::-;9229:2;9224:3;9220:12;9213:19;;8872:366;;;:::o;9244:::-;9386:3;9407:67;9471:2;9466:3;9407:67;:::i;:::-;9400:74;;9483:93;9572:3;9483:93;:::i;:::-;9601:2;9596:3;9592:12;9585:19;;9244:366;;;:::o;9616:::-;9758:3;9779:67;9843:2;9838:3;9779:67;:::i;:::-;9772:74;;9855:93;9944:3;9855:93;:::i;:::-;9973:2;9968:3;9964:12;9957:19;;9616:366;;;:::o;9988:::-;10130:3;10151:67;10215:2;10210:3;10151:67;:::i;:::-;10144:74;;10227:93;10316:3;10227:93;:::i;:::-;10345:2;10340:3;10336:12;10329:19;;9988:366;;;:::o;10360:::-;10502:3;10523:67;10587:2;10582:3;10523:67;:::i;:::-;10516:74;;10599:93;10688:3;10599:93;:::i;:::-;10717:2;10712:3;10708:12;10701:19;;10360:366;;;:::o;10732:::-;10874:3;10895:67;10959:2;10954:3;10895:67;:::i;:::-;10888:74;;10971:93;11060:3;10971:93;:::i;:::-;11089:2;11084:3;11080:12;11073:19;;10732:366;;;:::o;11104:::-;11246:3;11267:67;11331:2;11326:3;11267:67;:::i;:::-;11260:74;;11343:93;11432:3;11343:93;:::i;:::-;11461:2;11456:3;11452:12;11445:19;;11104:366;;;:::o;11476:::-;11618:3;11639:67;11703:2;11698:3;11639:67;:::i;:::-;11632:74;;11715:93;11804:3;11715:93;:::i;:::-;11833:2;11828:3;11824:12;11817:19;;11476:366;;;:::o;11848:::-;11990:3;12011:67;12075:2;12070:3;12011:67;:::i;:::-;12004:74;;12087:93;12176:3;12087:93;:::i;:::-;12205:2;12200:3;12196:12;12189:19;;11848:366;;;:::o;12220:::-;12362:3;12383:67;12447:2;12442:3;12383:67;:::i;:::-;12376:74;;12459:93;12548:3;12459:93;:::i;:::-;12577:2;12572:3;12568:12;12561:19;;12220:366;;;:::o;12592:::-;12734:3;12755:67;12819:2;12814:3;12755:67;:::i;:::-;12748:74;;12831:93;12920:3;12831:93;:::i;:::-;12949:2;12944:3;12940:12;12933:19;;12592:366;;;:::o;12964:::-;13106:3;13127:67;13191:2;13186:3;13127:67;:::i;:::-;13120:74;;13203:93;13292:3;13203:93;:::i;:::-;13321:2;13316:3;13312:12;13305:19;;12964:366;;;:::o;13336:::-;13478:3;13499:67;13563:2;13558:3;13499:67;:::i;:::-;13492:74;;13575:93;13664:3;13575:93;:::i;:::-;13693:2;13688:3;13684:12;13677:19;;13336:366;;;:::o;13708:118::-;13795:24;13813:5;13795:24;:::i;:::-;13790:3;13783:37;13708:118;;:::o;13832:112::-;13915:22;13931:5;13915:22;:::i;:::-;13910:3;13903:35;13832:112;;:::o;13950:222::-;14043:4;14081:2;14070:9;14066:18;14058:26;;14094:71;14162:1;14151:9;14147:17;14138:6;14094:71;:::i;:::-;13950:222;;;;:::o;14178:348::-;14307:4;14345:2;14334:9;14330:18;14322:26;;14358:79;14434:1;14423:9;14419:17;14410:6;14358:79;:::i;:::-;14447:72;14515:2;14504:9;14500:18;14491:6;14447:72;:::i;:::-;14178:348;;;;;:::o;14532:807::-;14781:4;14819:3;14808:9;14804:19;14796:27;;14833:71;14901:1;14890:9;14886:17;14877:6;14833:71;:::i;:::-;14914:72;14982:2;14971:9;14967:18;14958:6;14914:72;:::i;:::-;14996:80;15072:2;15061:9;15057:18;15048:6;14996:80;:::i;:::-;15086;15162:2;15151:9;15147:18;15138:6;15086:80;:::i;:::-;15176:73;15244:3;15233:9;15229:19;15220:6;15176:73;:::i;:::-;15259;15327:3;15316:9;15312:19;15303:6;15259:73;:::i;:::-;14532:807;;;;;;;;;:::o;15345:210::-;15432:4;15470:2;15459:9;15455:18;15447:26;;15483:65;15545:1;15534:9;15530:17;15521:6;15483:65;:::i;:::-;15345:210;;;;:::o;15561:313::-;15674:4;15712:2;15701:9;15697:18;15689:26;;15761:9;15755:4;15751:20;15747:1;15736:9;15732:17;15725:47;15789:78;15862:4;15853:6;15789:78;:::i;:::-;15781:86;;15561:313;;;;:::o;15880:419::-;16046:4;16084:2;16073:9;16069:18;16061:26;;16133:9;16127:4;16123:20;16119:1;16108:9;16104:17;16097:47;16161:131;16287:4;16161:131;:::i;:::-;16153:139;;15880:419;;;:::o;16305:::-;16471:4;16509:2;16498:9;16494:18;16486:26;;16558:9;16552:4;16548:20;16544:1;16533:9;16529:17;16522:47;16586:131;16712:4;16586:131;:::i;:::-;16578:139;;16305:419;;;:::o;16730:::-;16896:4;16934:2;16923:9;16919:18;16911:26;;16983:9;16977:4;16973:20;16969:1;16958:9;16954:17;16947:47;17011:131;17137:4;17011:131;:::i;:::-;17003:139;;16730:419;;;:::o;17155:::-;17321:4;17359:2;17348:9;17344:18;17336:26;;17408:9;17402:4;17398:20;17394:1;17383:9;17379:17;17372:47;17436:131;17562:4;17436:131;:::i;:::-;17428:139;;17155:419;;;:::o;17580:::-;17746:4;17784:2;17773:9;17769:18;17761:26;;17833:9;17827:4;17823:20;17819:1;17808:9;17804:17;17797:47;17861:131;17987:4;17861:131;:::i;:::-;17853:139;;17580:419;;;:::o;18005:::-;18171:4;18209:2;18198:9;18194:18;18186:26;;18258:9;18252:4;18248:20;18244:1;18233:9;18229:17;18222:47;18286:131;18412:4;18286:131;:::i;:::-;18278:139;;18005:419;;;:::o;18430:::-;18596:4;18634:2;18623:9;18619:18;18611:26;;18683:9;18677:4;18673:20;18669:1;18658:9;18654:17;18647:47;18711:131;18837:4;18711:131;:::i;:::-;18703:139;;18430:419;;;:::o;18855:::-;19021:4;19059:2;19048:9;19044:18;19036:26;;19108:9;19102:4;19098:20;19094:1;19083:9;19079:17;19072:47;19136:131;19262:4;19136:131;:::i;:::-;19128:139;;18855:419;;;:::o;19280:::-;19446:4;19484:2;19473:9;19469:18;19461:26;;19533:9;19527:4;19523:20;19519:1;19508:9;19504:17;19497:47;19561:131;19687:4;19561:131;:::i;:::-;19553:139;;19280:419;;;:::o;19705:::-;19871:4;19909:2;19898:9;19894:18;19886:26;;19958:9;19952:4;19948:20;19944:1;19933:9;19929:17;19922:47;19986:131;20112:4;19986:131;:::i;:::-;19978:139;;19705:419;;;:::o;20130:::-;20296:4;20334:2;20323:9;20319:18;20311:26;;20383:9;20377:4;20373:20;20369:1;20358:9;20354:17;20347:47;20411:131;20537:4;20411:131;:::i;:::-;20403:139;;20130:419;;;:::o;20555:::-;20721:4;20759:2;20748:9;20744:18;20736:26;;20808:9;20802:4;20798:20;20794:1;20783:9;20779:17;20772:47;20836:131;20962:4;20836:131;:::i;:::-;20828:139;;20555:419;;;:::o;20980:::-;21146:4;21184:2;21173:9;21169:18;21161:26;;21233:9;21227:4;21223:20;21219:1;21208:9;21204:17;21197:47;21261:131;21387:4;21261:131;:::i;:::-;21253:139;;20980:419;;;:::o;21405:222::-;21498:4;21536:2;21525:9;21521:18;21513:26;;21549:71;21617:1;21606:9;21602:17;21593:6;21549:71;:::i;:::-;21405:222;;;;:::o;21633:831::-;21896:4;21934:3;21923:9;21919:19;21911:27;;21948:71;22016:1;22005:9;22001:17;21992:6;21948:71;:::i;:::-;22029:80;22105:2;22094:9;22090:18;22081:6;22029:80;:::i;:::-;22156:9;22150:4;22146:20;22141:2;22130:9;22126:18;22119:48;22184:108;22287:4;22278:6;22184:108;:::i;:::-;22176:116;;22302:72;22370:2;22359:9;22355:18;22346:6;22302:72;:::i;:::-;22384:73;22452:3;22441:9;22437:19;22428:6;22384:73;:::i;:::-;21633:831;;;;;;;;:::o;22470:214::-;22559:4;22597:2;22586:9;22582:18;22574:26;;22610:67;22674:1;22663:9;22659:17;22650:6;22610:67;:::i;:::-;22470:214;;;;:::o;22690:129::-;22724:6;22751:20;;:::i;:::-;22741:30;;22780:33;22808:4;22800:6;22780:33;:::i;:::-;22690:129;;;:::o;22825:75::-;22858:6;22891:2;22885:9;22875:19;;22825:75;:::o;22906:311::-;22983:4;23073:18;23065:6;23062:30;23059:56;;;23095:18;;:::i;:::-;23059:56;23145:4;23137:6;23133:17;23125:25;;23205:4;23199;23195:15;23187:23;;22906:311;;;:::o;23223:132::-;23290:4;23313:3;23305:11;;23343:4;23338:3;23334:14;23326:22;;23223:132;;;:::o;23361:114::-;23428:6;23462:5;23456:12;23446:22;;23361:114;;;:::o;23481:99::-;23533:6;23567:5;23561:12;23551:22;;23481:99;;;:::o;23586:113::-;23656:4;23688;23683:3;23679:14;23671:22;;23586:113;;;:::o;23705:184::-;23804:11;23838:6;23833:3;23826:19;23878:4;23873:3;23869:14;23854:29;;23705:184;;;;:::o;23895:169::-;23979:11;24013:6;24008:3;24001:19;24053:4;24048:3;24044:14;24029:29;;23895:169;;;;:::o;24070:305::-;24110:3;24129:20;24147:1;24129:20;:::i;:::-;24124:25;;24163:20;24181:1;24163:20;:::i;:::-;24158:25;;24317:1;24249:66;24245:74;24242:1;24239:81;24236:107;;;24323:18;;:::i;:::-;24236:107;24367:1;24364;24360:9;24353:16;;24070:305;;;;:::o;24381:185::-;24421:1;24438:20;24456:1;24438:20;:::i;:::-;24433:25;;24472:20;24490:1;24472:20;:::i;:::-;24467:25;;24511:1;24501:35;;24516:18;;:::i;:::-;24501:35;24558:1;24555;24551:9;24546:14;;24381:185;;;;:::o;24572:348::-;24612:7;24635:20;24653:1;24635:20;:::i;:::-;24630:25;;24669:20;24687:1;24669:20;:::i;:::-;24664:25;;24857:1;24789:66;24785:74;24782:1;24779:81;24774:1;24767:9;24760:17;24756:105;24753:131;;;24864:18;;:::i;:::-;24753:131;24912:1;24909;24905:9;24894:20;;24572:348;;;;:::o;24926:191::-;24966:4;24986:20;25004:1;24986:20;:::i;:::-;24981:25;;25020:20;25038:1;25020:20;:::i;:::-;25015:25;;25059:1;25056;25053:8;25050:34;;;25064:18;;:::i;:::-;25050:34;25109:1;25106;25102:9;25094:17;;24926:191;;;;:::o;25123:96::-;25160:7;25189:24;25207:5;25189:24;:::i;:::-;25178:35;;25123:96;;;:::o;25225:90::-;25259:7;25302:5;25295:13;25288:21;25277:32;;25225:90;;;:::o;25321:126::-;25358:7;25398:42;25391:5;25387:54;25376:65;;25321:126;;;:::o;25453:77::-;25490:7;25519:5;25508:16;;25453:77;;;:::o;25536:86::-;25571:7;25611:4;25604:5;25600:16;25589:27;;25536:86;;;:::o;25628:134::-;25686:9;25719:37;25750:5;25719:37;:::i;:::-;25706:50;;25628:134;;;:::o;25768:121::-;25826:9;25859:24;25877:5;25859:24;:::i;:::-;25846:37;;25768:121;;;:::o;25895:126::-;25945:9;25978:37;26009:5;25978:37;:::i;:::-;25965:50;;25895:126;;;:::o;26027:113::-;26077:9;26110:24;26128:5;26110:24;:::i;:::-;26097:37;;26027:113;;;:::o;26146:307::-;26214:1;26224:113;26238:6;26235:1;26232:13;26224:113;;;26323:1;26318:3;26314:11;26308:18;26304:1;26299:3;26295:11;26288:39;26260:2;26257:1;26253:10;26248:15;;26224:113;;;26355:6;26352:1;26349:13;26346:101;;;26435:1;26426:6;26421:3;26417:16;26410:27;26346:101;26195:258;26146:307;;;:::o;26459:281::-;26542:27;26564:4;26542:27;:::i;:::-;26534:6;26530:40;26672:6;26660:10;26657:22;26636:18;26624:10;26621:34;26618:62;26615:88;;;26683:18;;:::i;:::-;26615:88;26723:10;26719:2;26712:22;26502:238;26459:281;;:::o;26746:233::-;26785:3;26808:24;26826:5;26808:24;:::i;:::-;26799:33;;26854:66;26847:5;26844:77;26841:103;;;26924:18;;:::i;:::-;26841:103;26971:1;26964:5;26960:13;26953:20;;26746:233;;;:::o;26985:180::-;27033:77;27030:1;27023:88;27130:4;27127:1;27120:15;27154:4;27151:1;27144:15;27171:180;27219:77;27216:1;27209:88;27316:4;27313:1;27306:15;27340:4;27337:1;27330:15;27357:180;27405:77;27402:1;27395:88;27502:4;27499:1;27492:15;27526:4;27523:1;27516:15;27543:180;27591:77;27588:1;27581:88;27688:4;27685:1;27678:15;27712:4;27709:1;27702:15;27729:117;27838:1;27835;27828:12;27852:117;27961:1;27958;27951:12;27975:117;28084:1;28081;28074:12;28098:117;28207:1;28204;28197:12;28221:102;28262:6;28313:2;28309:7;28304:2;28297:5;28293:14;28289:28;28279:38;;28221:102;;;:::o;28329:222::-;28469:34;28465:1;28457:6;28453:14;28446:58;28538:5;28533:2;28525:6;28521:15;28514:30;28329:222;:::o;28557:161::-;28697:13;28693:1;28685:6;28681:14;28674:37;28557:161;:::o;28724:221::-;28864:34;28860:1;28852:6;28848:14;28841:58;28933:4;28928:2;28920:6;28916:15;28909:29;28724:221;:::o;28951:177::-;29091:29;29087:1;29079:6;29075:14;29068:53;28951:177;:::o;29134:162::-;29274:14;29270:1;29262:6;29258:14;29251:38;29134:162;:::o;29302:239::-;29442:34;29438:1;29430:6;29426:14;29419:58;29511:22;29506:2;29498:6;29494:15;29487:47;29302:239;:::o;29547:220::-;29687:34;29683:1;29675:6;29671:14;29664:58;29756:3;29751:2;29743:6;29739:15;29732:28;29547:220;:::o;29773:182::-;29913:34;29909:1;29901:6;29897:14;29890:58;29773:182;:::o;29961:228::-;30101:34;30097:1;30089:6;30085:14;30078:58;30170:11;30165:2;30157:6;30153:15;30146:36;29961:228;:::o;30195:175::-;30335:27;30331:1;30323:6;30319:14;30312:51;30195:175;:::o;30376:224::-;30516:34;30512:1;30504:6;30500:14;30493:58;30585:7;30580:2;30572:6;30568:15;30561:32;30376:224;:::o;30606:223::-;30746:34;30742:1;30734:6;30730:14;30723:58;30815:6;30810:2;30802:6;30798:15;30791:31;30606:223;:::o;30835:173::-;30975:25;30971:1;30963:6;30959:14;30952:49;30835:173;:::o;31014:122::-;31087:24;31105:5;31087:24;:::i;:::-;31080:5;31077:35;31067:63;;31126:1;31123;31116:12;31067:63;31014:122;:::o;31142:116::-;31212:21;31227:5;31212:21;:::i;:::-;31205:5;31202:32;31192:60;;31248:1;31245;31238:12;31192:60;31142:116;:::o;31264:122::-;31337:24;31355:5;31337:24;:::i;:::-;31330:5;31327:35;31317:63;;31376:1;31373;31366:12;31317:63;31264:122;:::o
Swarm Source
ipfs://ae9032cc739ee26f5485ffcd0c6912b06f59fc1d61a3b81bfdbd93bd22b3e671
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.