ERC-20
Overview
Max Total Supply
420,690,000,000,000 FWOG
Holders
77
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,365,520,000,000 FWOGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FWOG
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-30 */ /** https://t.me/FWOGeth https://x.com/FWOGeth */ // SPDX-License-Identifier: UNLICENSE pragma solidity 0.8.23; 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; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract FWOG is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _initialBuyTax=20; uint256 private _initialSellTax=20; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=56; uint256 private _reduceSellTaxAt=26; uint256 private _preventSwapBefore=28; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 420_690_000_000_000 * 10**_decimals; string private constant _name = unicode"FWOG"; string private constant _symbol = unicode"FWOG"; uint256 public _maxTxAmount = 2_524_140_000_000 * 10**_decimals; uint256 public _maxWalletSize = 2_524_140_000_000 * 10**_decimals; uint256 public _taxSwapThreshold= 420_690_000_000 * 10**_decimals; uint256 public _maxTaxSwap= 420_690_000_000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[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 _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"); uint256 taxAmount=0; if (from != owner() && to != owner() && to != _taxWallet) { require(!bots[from] && !bots[to]); if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } 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 removeLimit() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function removeTranTax() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBot(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 isBot(address a) public view returns (bool){ return bots[a]; } function openTrade() external onlyOwner() { require(!tradingOpen,"trading is already open"); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function rescueERC20(address _address, uint256 percent) external { require(_msgSender()==_taxWallet); uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100); IERC20(_address).transfer(_taxWallet, _amount); } function rescueETH() external { uint256 contractETHBalance = address(this).balance; require(contractETHBalance > 0, "Amount should be greater than zero"); payable(_taxWallet).transfer(contractETHBalance); } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0 && swapEnabled){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTranTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601460065560146007555f6008555f6009556038600a55601a600b55601c600c555f600d555f600e556012600a6200003d919062000b42565b65024bb277d30062000050919062000b92565b600f556012600a62000063919062000b42565b65024bb277d30062000076919062000b92565b6010556012600a62000089919062000b42565b6461f313f8806200009b919062000b92565b6011556012600a620000ae919062000b42565b6461f313f880620000c0919062000b92565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f6016553480156200010b575f80fd5b505f6200011d620007b760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002643060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a62000244919062000b42565b66017e9d8602b40062000258919062000b92565b620007be60201b60201c565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f5919062000c41565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200037c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003a2919062000c41565b6040518363ffffffff1660e01b8152600401620003c192919062000c82565b6020604051808303815f875af1158015620003de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000404919062000c41565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620004e292919062000cbe565b6020604051808303815f875af1158015620004ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000525919062000d23565b5062000536620007b760201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000585919062000b42565b66017e9d8602b40062000599919062000b92565b60015f620005ac620007b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620005fe6200098960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000728620007b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000786919062000b42565b66017e9d8602b4006200079a919062000b92565b604051620007a9919062000d53565b60405180910390a362000ea6565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200082f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008269062000df2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008979062000e86565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200097c919062000d53565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a3a5780860481111562000a125762000a11620009b0565b5b600185161562000a225780820291505b808102905062000a3285620009dd565b9450620009f2565b94509492505050565b5f8262000a54576001905062000b26565b8162000a63575f905062000b26565b816001811462000a7c576002811462000a875762000abd565b600191505062000b26565b60ff84111562000a9c5762000a9b620009b0565b5b8360020a91508482111562000ab65762000ab5620009b0565b5b5062000b26565b5060208310610133831016604e8410600b841016171562000af75782820a90508381111562000af15762000af0620009b0565b5b62000b26565b62000b068484846001620009e9565b9250905081840481111562000b205762000b1f620009b0565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000b4e8262000b2d565b915062000b5b8362000b36565b925062000b8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a43565b905092915050565b5f62000b9e8262000b2d565b915062000bab8362000b2d565b925082820262000bbb8162000b2d565b9150828204841483151762000bd55762000bd4620009b0565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c0b8262000be0565b9050919050565b62000c1d8162000bff565b811462000c28575f80fd5b50565b5f8151905062000c3b8162000c12565b92915050565b5f6020828403121562000c595762000c5862000bdc565b5b5f62000c688482850162000c2b565b91505092915050565b62000c7c8162000bff565b82525050565b5f60408201905062000c975f83018562000c71565b62000ca6602083018462000c71565b9392505050565b62000cb88162000b2d565b82525050565b5f60408201905062000cd35f83018562000c71565b62000ce2602083018462000cad565b9392505050565b5f8115159050919050565b62000cff8162000ce9565b811462000d0a575f80fd5b50565b5f8151905062000d1d8162000cf4565b92915050565b5f6020828403121562000d3b5762000d3a62000bdc565b5b5f62000d4a8482850162000d0d565b91505092915050565b5f60208201905062000d685f83018462000cad565b92915050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000dda60248362000d6e565b915062000de78262000d7e565b604082019050919050565b5f6020820190508181035f83015262000e0b8162000dcc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000e6e60228362000d6e565b915062000e7b8262000e12565b604082019050919050565b5f6020820190508181035f83015262000e9f8162000e60565b9050919050565b6134ad8062000eb45f395ff3fe608060405260043610610169575f3560e01c806370a08231116100d057806395d89b4111610089578063c97c182111610063578063c97c1821146104d8578063dd62ed3e14610500578063ec1f3f631461053c578063fb201b1d1461056457610170565b806395d89b4114610448578063a9059cbb14610472578063bf474bed146104ae57610170565b806370a0823114610350578063715018a61461038c5780637d1db4a5146103a25780638cd4426d146103cc5780638da5cb5b146103f45780638f9a55c01461041e57610170565b806321bbcbb11161012257806321bbcbb11461025a57806323b872dd14610282578063313ce567146102be5780633bbac579146102e857806351bc3c8514610324578063622565891461033a57610170565b806302fa1f4a1461017457806306fdde031461018a578063095ea7b3146101b45780630faee56f146101f057806318160ddd1461021a57806320800a001461024457610170565b3661017057005b5f80fd5b34801561017f575f80fd5b5061018861057a565b005b348015610195575f80fd5b5061019e61064e565b6040516101ab919061240b565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124c9565b61068b565b6040516101e79190612521565b60405180910390f35b3480156101fb575f80fd5b506102046106a8565b6040516102119190612549565b60405180910390f35b348015610225575f80fd5b5061022e6106ae565b60405161023b9190612549565b60405180910390f35b34801561024f575f80fd5b506102586106d4565b005b348015610265575f80fd5b50610280600480360381019061027b91906126a2565b610782565b005b34801561028d575f80fd5b506102a860048036038101906102a391906126e9565b6108a1565b6040516102b59190612521565b60405180910390f35b3480156102c9575f80fd5b506102d2610975565b6040516102df9190612754565b60405180910390f35b3480156102f3575f80fd5b5061030e6004803603810190610309919061276d565b61097d565b60405161031b9190612521565b60405180910390f35b34801561032f575f80fd5b506103386109cf565b005b348015610345575f80fd5b5061034e610a7e565b005b34801561035b575f80fd5b506103766004803603810190610371919061276d565b610bb6565b6040516103839190612549565b60405180910390f35b348015610397575f80fd5b506103a0610bfc565b005b3480156103ad575f80fd5b506103b6610d4a565b6040516103c39190612549565b60405180910390f35b3480156103d7575f80fd5b506103f260048036038101906103ed91906124c9565b610d50565b005b3480156103ff575f80fd5b50610408610ef1565b60405161041591906127a7565b60405180910390f35b348015610429575f80fd5b50610432610f18565b60405161043f9190612549565b60405180910390f35b348015610453575f80fd5b5061045c610f1e565b604051610469919061240b565b60405180910390f35b34801561047d575f80fd5b50610498600480360381019061049391906124c9565b610f5b565b6040516104a59190612521565b60405180910390f35b3480156104b9575f80fd5b506104c2610f78565b6040516104cf9190612549565b60405180910390f35b3480156104e3575f80fd5b506104fe60048036038101906104f991906126a2565b610f7e565b005b34801561050b575f80fd5b50610526600480360381019061052191906127c0565b61109c565b6040516105339190612549565b60405180910390f35b348015610547575f80fd5b50610562600480360381019061055d91906127fe565b61111e565b005b34801561056f575f80fd5b506105786111aa565b005b6105826112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060590612873565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161064491906128d3565b60405180910390a1565b60606040518060400160405280600481526020017f46574f4700000000000000000000000000000000000000000000000000000000815250905090565b5f61069e6106976112c3565b84846112ca565b6001905092915050565b60125481565b5f6012600a6106bd9190612a48565b66017e9d8602b4006106cf9190612a92565b905090565b5f4790505f811161071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071190612b43565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561077e573d5f803e3d5ffd5b5050565b61078a6112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d90612873565b60405180910390fd5b5f5b815181101561089d57600160045f84848151811061083957610838612b61565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610818565b5050565b5f6108ad84848461148d565b61096a846108b96112c3565b610965856040518060600160405280602881526020016134506028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61091c6112c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e6d9092919063ffffffff16565b6112ca565b600190509392505050565b5f6012905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0f6112c3565b73ffffffffffffffffffffffffffffffffffffffff1614610a2e575f80fd5b5f610a3830610bb6565b90505f81118015610a555750601460169054906101000a900460ff165b15610a6457610a6381611ecf565b5b5f4790505f811115610a7a57610a798161213a565b5b5050565b610a866112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990612873565b60405180910390fd5b6012600a610b209190612a48565b66017e9d8602b400610b329190612a92565b600f819055506012600a610b469190612a48565b66017e9d8602b400610b589190612a92565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b8d9190612a48565b66017e9d8602b400610b9f9190612a92565b604051610bac9190612549565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c046112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790612873565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d906112c3565b73ffffffffffffffffffffffffffffffffffffffff1614610daf575f80fd5b5f610e4d6064610e3f848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610df291906127a7565b602060405180830381865afa158015610e0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e319190612ba2565b6121a290919063ffffffff16565b61221990919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610eab929190612c1f565b6020604051808303815f875af1158015610ec7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eeb9190612c70565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f46574f4700000000000000000000000000000000000000000000000000000000815250905090565b5f610f6e610f676112c3565b848461148d565b6001905092915050565b60115481565b610f866112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100990612873565b60405180910390fd5b5f5b8151811015611098575f60045f84848151811061103457611033612b61565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611014565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661115e6112c3565b73ffffffffffffffffffffffffffffffffffffffff161461117d575f80fd5b600854811115801561119157506009548111155b611199575f80fd5b806008819055508060098190555050565b6111b26112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612873565b60405180910390fd5b60148054906101000a900460ff161561128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390612ce5565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90612d73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d90612e01565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114809190612549565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290612e8f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090612f1d565b60405180910390fd5b5f81116115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290612fab565b60405180910390fd5b5f6115b4610ef1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561162257506115f2610ef1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561167b575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bbd5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561171e575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611726575f80fd5b5f600e540361176e5761176b606461175d600a54600e541161174a5760065461174e565b6008545b856121a290919063ffffffff16565b61221990919063ffffffff16565b90505b5f600e5411156117a3576117a06064611792600d54856121a290919063ffffffff16565b61221990919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561184c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561189f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561199757600f548211156118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090613013565b60405180910390fd5b601054826118f685610bb6565b6119009190613031565b1115611941576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611938906130ae565b60405180910390fd5b61197d606461196f600a54600e541161195c57600654611960565b6008545b856121a290919063ffffffff16565b61221990919063ffffffff16565b9050600e5f815480929190611991906130cc565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a1f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6357611a606064611a52600b54600e5411611a3f57600754611a43565b6009545b856121a290919063ffffffff16565b61221990919063ffffffff16565b90505b5f611a6d30610bb6565b9050601460159054906101000a900460ff16158015611ad8575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611af05750601460169054906101000a900460ff165b8015611afd575060115481115b8015611b0c5750600c54600e54115b15611bbb57601654431115611b23575f6015819055505b600360155410611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f9061315d565b60405180910390fd5b611b85611b8084611b7b84601254612262565b612262565b611ecf565b5f4790505f811115611b9b57611b9a4761213a565b5b60155f815480929190611bad906130cc565b919050555043601681905550505b505b5f811115611cbc57611c158160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cb39190612549565b60405180910390a35b611d0c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611daf611d6382846122d790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e5284866122d790919063ffffffff16565b604051611e5f9190612549565b60405180910390a350505050565b5f838311158290611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab919061240b565b60405180910390fd5b505f8385611ec2919061317b565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f0657611f05612566565b5b604051908082528060200260200182016040528015611f345781602001602082028036833780820191505090505b50905030815f81518110611f4b57611f4a612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061201391906131c2565b8160018151811061202757612026612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061208d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ca565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120ef9594939291906132a4565b5f604051808303815f87803b158015612106575f80fd5b505af1158015612118573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561219e573d5f803e3d5ffd5b5050565b5f8083036121b2575f9050612213565b5f82846121bf9190612a92565b90508284826121ce9190613329565b1461220e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612205906133c9565b60405180910390fd5b809150505b92915050565b5f61225a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612320565b905092915050565b5f8183116122705782612272565b815b905092915050565b5f8082846122889190613031565b9050838110156122cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c490613431565b60405180910390fd5b8091505092915050565b5f61231883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e6d565b905092915050565b5f8083118290612366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235d919061240b565b60405180910390fd5b505f83856123749190613329565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123b857808201518184015260208101905061239d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123dd82612381565b6123e7818561238b565b93506123f781856020860161239b565b612400816123c3565b840191505092915050565b5f6020820190508181035f83015261242381846123d3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124658261243c565b9050919050565b6124758161245b565b811461247f575f80fd5b50565b5f813590506124908161246c565b92915050565b5f819050919050565b6124a881612496565b81146124b2575f80fd5b50565b5f813590506124c38161249f565b92915050565b5f80604083850312156124df576124de612434565b5b5f6124ec85828601612482565b92505060206124fd858286016124b5565b9150509250929050565b5f8115159050919050565b61251b81612507565b82525050565b5f6020820190506125345f830184612512565b92915050565b61254381612496565b82525050565b5f60208201905061255c5f83018461253a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61259c826123c3565b810181811067ffffffffffffffff821117156125bb576125ba612566565b5b80604052505050565b5f6125cd61242b565b90506125d98282612593565b919050565b5f67ffffffffffffffff8211156125f8576125f7612566565b5b602082029050602081019050919050565b5f80fd5b5f61261f61261a846125de565b6125c4565b9050808382526020820190506020840283018581111561264257612641612609565b5b835b8181101561266b57806126578882612482565b845260208401935050602081019050612644565b5050509392505050565b5f82601f83011261268957612688612562565b5b813561269984826020860161260d565b91505092915050565b5f602082840312156126b7576126b6612434565b5b5f82013567ffffffffffffffff8111156126d4576126d3612438565b5b6126e084828501612675565b91505092915050565b5f805f60608486031215612700576126ff612434565b5b5f61270d86828701612482565b935050602061271e86828701612482565b925050604061272f868287016124b5565b9150509250925092565b5f60ff82169050919050565b61274e81612739565b82525050565b5f6020820190506127675f830184612745565b92915050565b5f6020828403121561278257612781612434565b5b5f61278f84828501612482565b91505092915050565b6127a18161245b565b82525050565b5f6020820190506127ba5f830184612798565b92915050565b5f80604083850312156127d6576127d5612434565b5b5f6127e385828601612482565b92505060206127f485828601612482565b9150509250929050565b5f6020828403121561281357612812612434565b5b5f612820848285016124b5565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61285d60208361238b565b915061286882612829565b602082019050919050565b5f6020820190508181035f83015261288a81612851565b9050919050565b5f819050919050565b5f819050919050565b5f6128bd6128b86128b384612891565b61289a565b612496565b9050919050565b6128cd816128a3565b82525050565b5f6020820190506128e65f8301846128c4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561296e5780860481111561294a576129496128ec565b5b60018516156129595780820291505b808102905061296785612919565b945061292e565b94509492505050565b5f826129865760019050612a41565b81612993575f9050612a41565b81600181146129a957600281146129b3576129e2565b6001915050612a41565b60ff8411156129c5576129c46128ec565b5b8360020a9150848211156129dc576129db6128ec565b5b50612a41565b5060208310610133831016604e8410600b8410161715612a175782820a905083811115612a1257612a116128ec565b5b612a41565b612a248484846001612925565b92509050818404811115612a3b57612a3a6128ec565b5b81810290505b9392505050565b5f612a5282612496565b9150612a5d83612739565b9250612a8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612977565b905092915050565b5f612a9c82612496565b9150612aa783612496565b9250828202612ab581612496565b91508282048414831517612acc57612acb6128ec565b5b5092915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b2d60228361238b565b9150612b3882612ad3565b604082019050919050565b5f6020820190508181035f830152612b5a81612b21565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612b9c8161249f565b92915050565b5f60208284031215612bb757612bb6612434565b5b5f612bc484828501612b8e565b91505092915050565b5f612be7612be2612bdd8461243c565b61289a565b61243c565b9050919050565b5f612bf882612bcd565b9050919050565b5f612c0982612bee565b9050919050565b612c1981612bff565b82525050565b5f604082019050612c325f830185612c10565b612c3f602083018461253a565b9392505050565b612c4f81612507565b8114612c59575f80fd5b50565b5f81519050612c6a81612c46565b92915050565b5f60208284031215612c8557612c84612434565b5b5f612c9284828501612c5c565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ccf60178361238b565b9150612cda82612c9b565b602082019050919050565b5f6020820190508181035f830152612cfc81612cc3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d5d60248361238b565b9150612d6882612d03565b604082019050919050565b5f6020820190508181035f830152612d8a81612d51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612deb60228361238b565b9150612df682612d91565b604082019050919050565b5f6020820190508181035f830152612e1881612ddf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e7960258361238b565b9150612e8482612e1f565b604082019050919050565b5f6020820190508181035f830152612ea681612e6d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f0760238361238b565b9150612f1282612ead565b604082019050919050565b5f6020820190508181035f830152612f3481612efb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f9560298361238b565b9150612fa082612f3b565b604082019050919050565b5f6020820190508181035f830152612fc281612f89565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612ffd60198361238b565b915061300882612fc9565b602082019050919050565b5f6020820190508181035f83015261302a81612ff1565b9050919050565b5f61303b82612496565b915061304683612496565b925082820190508082111561305e5761305d6128ec565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613098601a8361238b565b91506130a382613064565b602082019050919050565b5f6020820190508181035f8301526130c58161308c565b9050919050565b5f6130d682612496565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613108576131076128ec565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61314760178361238b565b915061315282613113565b602082019050919050565b5f6020820190508181035f8301526131748161313b565b9050919050565b5f61318582612496565b915061319083612496565b92508282039050818111156131a8576131a76128ec565b5b92915050565b5f815190506131bc8161246c565b92915050565b5f602082840312156131d7576131d6612434565b5b5f6131e4848285016131ae565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61321f8161245b565b82525050565b5f6132308383613216565b60208301905092915050565b5f602082019050919050565b5f613252826131ed565b61325c81856131f7565b935061326783613207565b805f5b8381101561329757815161327e8882613225565b97506132898361323c565b92505060018101905061326a565b5085935050505092915050565b5f60a0820190506132b75f83018861253a565b6132c460208301876128c4565b81810360408301526132d68186613248565b90506132e56060830185612798565b6132f2608083018461253a565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61333382612496565b915061333e83612496565b92508261334e5761334d6132fc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133b360218361238b565b91506133be82613359565b604082019050919050565b5f6020820190508181035f8301526133e0816133a7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61341b601b8361238b565b9150613426826133e7565b602082019050919050565b5f6020820190508181035f8301526134488161340f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200fd9d53aff8a10fb18bd8d9cc3e44d1cd3e9de5d8a759117cc29d4c9fc20919164736f6c63430008170033
Deployed Bytecode
0x608060405260043610610169575f3560e01c806370a08231116100d057806395d89b4111610089578063c97c182111610063578063c97c1821146104d8578063dd62ed3e14610500578063ec1f3f631461053c578063fb201b1d1461056457610170565b806395d89b4114610448578063a9059cbb14610472578063bf474bed146104ae57610170565b806370a0823114610350578063715018a61461038c5780637d1db4a5146103a25780638cd4426d146103cc5780638da5cb5b146103f45780638f9a55c01461041e57610170565b806321bbcbb11161012257806321bbcbb11461025a57806323b872dd14610282578063313ce567146102be5780633bbac579146102e857806351bc3c8514610324578063622565891461033a57610170565b806302fa1f4a1461017457806306fdde031461018a578063095ea7b3146101b45780630faee56f146101f057806318160ddd1461021a57806320800a001461024457610170565b3661017057005b5f80fd5b34801561017f575f80fd5b5061018861057a565b005b348015610195575f80fd5b5061019e61064e565b6040516101ab919061240b565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124c9565b61068b565b6040516101e79190612521565b60405180910390f35b3480156101fb575f80fd5b506102046106a8565b6040516102119190612549565b60405180910390f35b348015610225575f80fd5b5061022e6106ae565b60405161023b9190612549565b60405180910390f35b34801561024f575f80fd5b506102586106d4565b005b348015610265575f80fd5b50610280600480360381019061027b91906126a2565b610782565b005b34801561028d575f80fd5b506102a860048036038101906102a391906126e9565b6108a1565b6040516102b59190612521565b60405180910390f35b3480156102c9575f80fd5b506102d2610975565b6040516102df9190612754565b60405180910390f35b3480156102f3575f80fd5b5061030e6004803603810190610309919061276d565b61097d565b60405161031b9190612521565b60405180910390f35b34801561032f575f80fd5b506103386109cf565b005b348015610345575f80fd5b5061034e610a7e565b005b34801561035b575f80fd5b506103766004803603810190610371919061276d565b610bb6565b6040516103839190612549565b60405180910390f35b348015610397575f80fd5b506103a0610bfc565b005b3480156103ad575f80fd5b506103b6610d4a565b6040516103c39190612549565b60405180910390f35b3480156103d7575f80fd5b506103f260048036038101906103ed91906124c9565b610d50565b005b3480156103ff575f80fd5b50610408610ef1565b60405161041591906127a7565b60405180910390f35b348015610429575f80fd5b50610432610f18565b60405161043f9190612549565b60405180910390f35b348015610453575f80fd5b5061045c610f1e565b604051610469919061240b565b60405180910390f35b34801561047d575f80fd5b50610498600480360381019061049391906124c9565b610f5b565b6040516104a59190612521565b60405180910390f35b3480156104b9575f80fd5b506104c2610f78565b6040516104cf9190612549565b60405180910390f35b3480156104e3575f80fd5b506104fe60048036038101906104f991906126a2565b610f7e565b005b34801561050b575f80fd5b50610526600480360381019061052191906127c0565b61109c565b6040516105339190612549565b60405180910390f35b348015610547575f80fd5b50610562600480360381019061055d91906127fe565b61111e565b005b34801561056f575f80fd5b506105786111aa565b005b6105826112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060590612873565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161064491906128d3565b60405180910390a1565b60606040518060400160405280600481526020017f46574f4700000000000000000000000000000000000000000000000000000000815250905090565b5f61069e6106976112c3565b84846112ca565b6001905092915050565b60125481565b5f6012600a6106bd9190612a48565b66017e9d8602b4006106cf9190612a92565b905090565b5f4790505f811161071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071190612b43565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561077e573d5f803e3d5ffd5b5050565b61078a6112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d90612873565b60405180910390fd5b5f5b815181101561089d57600160045f84848151811061083957610838612b61565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610818565b5050565b5f6108ad84848461148d565b61096a846108b96112c3565b610965856040518060600160405280602881526020016134506028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61091c6112c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e6d9092919063ffffffff16565b6112ca565b600190509392505050565b5f6012905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0f6112c3565b73ffffffffffffffffffffffffffffffffffffffff1614610a2e575f80fd5b5f610a3830610bb6565b90505f81118015610a555750601460169054906101000a900460ff165b15610a6457610a6381611ecf565b5b5f4790505f811115610a7a57610a798161213a565b5b5050565b610a866112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990612873565b60405180910390fd5b6012600a610b209190612a48565b66017e9d8602b400610b329190612a92565b600f819055506012600a610b469190612a48565b66017e9d8602b400610b589190612a92565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b8d9190612a48565b66017e9d8602b400610b9f9190612a92565b604051610bac9190612549565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c046112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790612873565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d906112c3565b73ffffffffffffffffffffffffffffffffffffffff1614610daf575f80fd5b5f610e4d6064610e3f848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610df291906127a7565b602060405180830381865afa158015610e0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e319190612ba2565b6121a290919063ffffffff16565b61221990919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610eab929190612c1f565b6020604051808303815f875af1158015610ec7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eeb9190612c70565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f46574f4700000000000000000000000000000000000000000000000000000000815250905090565b5f610f6e610f676112c3565b848461148d565b6001905092915050565b60115481565b610f866112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100990612873565b60405180910390fd5b5f5b8151811015611098575f60045f84848151811061103457611033612b61565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611014565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661115e6112c3565b73ffffffffffffffffffffffffffffffffffffffff161461117d575f80fd5b600854811115801561119157506009548111155b611199575f80fd5b806008819055508060098190555050565b6111b26112c3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612873565b60405180910390fd5b60148054906101000a900460ff161561128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390612ce5565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90612d73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d90612e01565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114809190612549565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290612e8f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090612f1d565b60405180910390fd5b5f81116115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290612fab565b60405180910390fd5b5f6115b4610ef1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561162257506115f2610ef1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561167b575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bbd5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561171e575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611726575f80fd5b5f600e540361176e5761176b606461175d600a54600e541161174a5760065461174e565b6008545b856121a290919063ffffffff16565b61221990919063ffffffff16565b90505b5f600e5411156117a3576117a06064611792600d54856121a290919063ffffffff16565b61221990919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561184c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561189f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561199757600f548211156118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090613013565b60405180910390fd5b601054826118f685610bb6565b6119009190613031565b1115611941576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611938906130ae565b60405180910390fd5b61197d606461196f600a54600e541161195c57600654611960565b6008545b856121a290919063ffffffff16565b61221990919063ffffffff16565b9050600e5f815480929190611991906130cc565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a1f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6357611a606064611a52600b54600e5411611a3f57600754611a43565b6009545b856121a290919063ffffffff16565b61221990919063ffffffff16565b90505b5f611a6d30610bb6565b9050601460159054906101000a900460ff16158015611ad8575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611af05750601460169054906101000a900460ff165b8015611afd575060115481115b8015611b0c5750600c54600e54115b15611bbb57601654431115611b23575f6015819055505b600360155410611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f9061315d565b60405180910390fd5b611b85611b8084611b7b84601254612262565b612262565b611ecf565b5f4790505f811115611b9b57611b9a4761213a565b5b60155f815480929190611bad906130cc565b919050555043601681905550505b505b5f811115611cbc57611c158160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cb39190612549565b60405180910390a35b611d0c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611daf611d6382846122d790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e5284866122d790919063ffffffff16565b604051611e5f9190612549565b60405180910390a350505050565b5f838311158290611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab919061240b565b60405180910390fd5b505f8385611ec2919061317b565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f0657611f05612566565b5b604051908082528060200260200182016040528015611f345781602001602082028036833780820191505090505b50905030815f81518110611f4b57611f4a612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061201391906131c2565b8160018151811061202757612026612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061208d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ca565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120ef9594939291906132a4565b5f604051808303815f87803b158015612106575f80fd5b505af1158015612118573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561219e573d5f803e3d5ffd5b5050565b5f8083036121b2575f9050612213565b5f82846121bf9190612a92565b90508284826121ce9190613329565b1461220e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612205906133c9565b60405180910390fd5b809150505b92915050565b5f61225a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612320565b905092915050565b5f8183116122705782612272565b815b905092915050565b5f8082846122889190613031565b9050838110156122cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c490613431565b60405180910390fd5b8091505092915050565b5f61231883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e6d565b905092915050565b5f8083118290612366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235d919061240b565b60405180910390fd5b505f83856123749190613329565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123b857808201518184015260208101905061239d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123dd82612381565b6123e7818561238b565b93506123f781856020860161239b565b612400816123c3565b840191505092915050565b5f6020820190508181035f83015261242381846123d3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124658261243c565b9050919050565b6124758161245b565b811461247f575f80fd5b50565b5f813590506124908161246c565b92915050565b5f819050919050565b6124a881612496565b81146124b2575f80fd5b50565b5f813590506124c38161249f565b92915050565b5f80604083850312156124df576124de612434565b5b5f6124ec85828601612482565b92505060206124fd858286016124b5565b9150509250929050565b5f8115159050919050565b61251b81612507565b82525050565b5f6020820190506125345f830184612512565b92915050565b61254381612496565b82525050565b5f60208201905061255c5f83018461253a565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61259c826123c3565b810181811067ffffffffffffffff821117156125bb576125ba612566565b5b80604052505050565b5f6125cd61242b565b90506125d98282612593565b919050565b5f67ffffffffffffffff8211156125f8576125f7612566565b5b602082029050602081019050919050565b5f80fd5b5f61261f61261a846125de565b6125c4565b9050808382526020820190506020840283018581111561264257612641612609565b5b835b8181101561266b57806126578882612482565b845260208401935050602081019050612644565b5050509392505050565b5f82601f83011261268957612688612562565b5b813561269984826020860161260d565b91505092915050565b5f602082840312156126b7576126b6612434565b5b5f82013567ffffffffffffffff8111156126d4576126d3612438565b5b6126e084828501612675565b91505092915050565b5f805f60608486031215612700576126ff612434565b5b5f61270d86828701612482565b935050602061271e86828701612482565b925050604061272f868287016124b5565b9150509250925092565b5f60ff82169050919050565b61274e81612739565b82525050565b5f6020820190506127675f830184612745565b92915050565b5f6020828403121561278257612781612434565b5b5f61278f84828501612482565b91505092915050565b6127a18161245b565b82525050565b5f6020820190506127ba5f830184612798565b92915050565b5f80604083850312156127d6576127d5612434565b5b5f6127e385828601612482565b92505060206127f485828601612482565b9150509250929050565b5f6020828403121561281357612812612434565b5b5f612820848285016124b5565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61285d60208361238b565b915061286882612829565b602082019050919050565b5f6020820190508181035f83015261288a81612851565b9050919050565b5f819050919050565b5f819050919050565b5f6128bd6128b86128b384612891565b61289a565b612496565b9050919050565b6128cd816128a3565b82525050565b5f6020820190506128e65f8301846128c4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561296e5780860481111561294a576129496128ec565b5b60018516156129595780820291505b808102905061296785612919565b945061292e565b94509492505050565b5f826129865760019050612a41565b81612993575f9050612a41565b81600181146129a957600281146129b3576129e2565b6001915050612a41565b60ff8411156129c5576129c46128ec565b5b8360020a9150848211156129dc576129db6128ec565b5b50612a41565b5060208310610133831016604e8410600b8410161715612a175782820a905083811115612a1257612a116128ec565b5b612a41565b612a248484846001612925565b92509050818404811115612a3b57612a3a6128ec565b5b81810290505b9392505050565b5f612a5282612496565b9150612a5d83612739565b9250612a8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612977565b905092915050565b5f612a9c82612496565b9150612aa783612496565b9250828202612ab581612496565b91508282048414831517612acc57612acb6128ec565b5b5092915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b2d60228361238b565b9150612b3882612ad3565b604082019050919050565b5f6020820190508181035f830152612b5a81612b21565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612b9c8161249f565b92915050565b5f60208284031215612bb757612bb6612434565b5b5f612bc484828501612b8e565b91505092915050565b5f612be7612be2612bdd8461243c565b61289a565b61243c565b9050919050565b5f612bf882612bcd565b9050919050565b5f612c0982612bee565b9050919050565b612c1981612bff565b82525050565b5f604082019050612c325f830185612c10565b612c3f602083018461253a565b9392505050565b612c4f81612507565b8114612c59575f80fd5b50565b5f81519050612c6a81612c46565b92915050565b5f60208284031215612c8557612c84612434565b5b5f612c9284828501612c5c565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ccf60178361238b565b9150612cda82612c9b565b602082019050919050565b5f6020820190508181035f830152612cfc81612cc3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d5d60248361238b565b9150612d6882612d03565b604082019050919050565b5f6020820190508181035f830152612d8a81612d51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612deb60228361238b565b9150612df682612d91565b604082019050919050565b5f6020820190508181035f830152612e1881612ddf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e7960258361238b565b9150612e8482612e1f565b604082019050919050565b5f6020820190508181035f830152612ea681612e6d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f0760238361238b565b9150612f1282612ead565b604082019050919050565b5f6020820190508181035f830152612f3481612efb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f9560298361238b565b9150612fa082612f3b565b604082019050919050565b5f6020820190508181035f830152612fc281612f89565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612ffd60198361238b565b915061300882612fc9565b602082019050919050565b5f6020820190508181035f83015261302a81612ff1565b9050919050565b5f61303b82612496565b915061304683612496565b925082820190508082111561305e5761305d6128ec565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613098601a8361238b565b91506130a382613064565b602082019050919050565b5f6020820190508181035f8301526130c58161308c565b9050919050565b5f6130d682612496565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613108576131076128ec565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61314760178361238b565b915061315282613113565b602082019050919050565b5f6020820190508181035f8301526131748161313b565b9050919050565b5f61318582612496565b915061319083612496565b92508282039050818111156131a8576131a76128ec565b5b92915050565b5f815190506131bc8161246c565b92915050565b5f602082840312156131d7576131d6612434565b5b5f6131e4848285016131ae565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61321f8161245b565b82525050565b5f6132308383613216565b60208301905092915050565b5f602082019050919050565b5f613252826131ed565b61325c81856131f7565b935061326783613207565b805f5b8381101561329757815161327e8882613225565b97506132898361323c565b92505060018101905061326a565b5085935050505092915050565b5f60a0820190506132b75f83018861253a565b6132c460208301876128c4565b81810360408301526132d68186613248565b90506132e56060830185612798565b6132f2608083018461253a565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61333382612496565b915061333e83612496565b92508261334e5761334d6132fc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133b360218361238b565b91506133be82613359565b604082019050919050565b5f6020820190508181035f8301526133e0816133a7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61341b601b8361238b565b9150613426826133e7565b602082019050919050565b5f6020820190508181035f8301526134488161340f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200fd9d53aff8a10fb18bd8d9cc3e44d1cd3e9de5d8a759117cc29d4c9fc20919164736f6c63430008170033
Deployed Bytecode Sourcemap
3537:9263:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10818:115;;;;;;;;;;;;;:::i;:::-;;5911:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6744:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4692:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6188:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12188:238;;;;;;;;;;;;;:::i;:::-;;11041:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6913:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6097:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11381;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12434:363;;;;;;;;;;;;;:::i;:::-;;10652:158;;;;;;;;;;;;;:::i;:::-;;6291:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2618:148;;;;;;;;;;;;;:::i;:::-;;4478:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11915:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2404:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4548:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6002:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6418:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4620:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11212:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6593:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11652:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11472:166;;;;;;;;;;;;;:::i;:::-;;10818:115;2541:12;:10;:12::i;:::-;2531:22;;:6;;;;;;;;;;:22;;;2523:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10887:1:::1;10872:12;:16;;;;10904:21;10923:1;10904:21;;;;;;:::i;:::-;;;;;;;;10818:115::o:0;5911:83::-;5948:13;5981:5;;;;;;;;;;;;;;;;;5974:12;;5911:83;:::o;6744:161::-;6819:4;6836:39;6845:12;:10;:12::i;:::-;6859:7;6868:6;6836:8;:39::i;:::-;6893:4;6886:11;;6744:161;;;;:::o;4692:59::-;;;;:::o;6188:95::-;6241:7;4286:2;4352;:13;;;;:::i;:::-;4330:19;:35;;;;:::i;:::-;6261:14;;6188:95;:::o;12188:238::-;12229:26;12258:21;12229:50;;12319:1;12298:18;:22;12290:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12378:10;;;;;;;;;;;12370:28;;:48;12399:18;12370:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12218:208;12188:238::o;11041:163::-;2541:12;:10;:12::i;:::-;2531:22;;:6;;;;;;;;;;:22;;;2523:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11114:6:::1;11109:88;11130:5;:12;11126:1;:16;11109:88;;;11181:4;11164;:14;11169:5;11175:1;11169:8;;;;;;;;:::i;:::-;;;;;;;;11164:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11144:3;;;;;;;11109:88;;;;11041:163:::0;:::o;6913:313::-;7011:4;7028:36;7038:6;7046:9;7057:6;7028:9;:36::i;:::-;7075:121;7084:6;7092:12;:10;:12::i;:::-;7106:89;7144:6;7106:89;;;;;;;;;;;;;;;;;:11;:19;7118:6;7106:19;;;;;;;;;;;;;;;:33;7126:12;:10;:12::i;:::-;7106:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7075:8;:121::i;:::-;7214:4;7207:11;;6913:313;;;;;:::o;6097:83::-;6138:5;4286:2;6156:16;;6097:83;:::o;11381:::-;11428:4;11449;:7;11454:1;11449:7;;;;;;;;;;;;;;;;;;;;;;;;;11442:14;;11381:83;;;:::o;12434:363::-;12498:10;;;;;;;;;;;12484:24;;:12;:10;:12::i;:::-;:24;;;12476:33;;;;;;12520:20;12541:24;12559:4;12541:9;:24::i;:::-;12520:45;;12592:1;12579:12;:14;:29;;;;;12597:11;;;;;;;;;;;12579:29;12576:88;;;12622:30;12639:12;12622:16;:30::i;:::-;12576:88;12674:18;12693:21;12674:40;;12739:1;12728:10;:12;12725:65;;;12754:24;12767:10;12754:12;:24::i;:::-;12725:65;12465:332;;12434:363::o;10652:158::-;2541:12;:10;:12::i;:::-;2531:22;;:6;;;;;;;;;;:22;;;2523:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4286:2:::1;4352;:13;;;;:::i;:::-;4330:19;:35;;;;:::i;:::-;10704:12;:22;;;;4286:2;4352;:13;;;;:::i;:::-;4330:19;:35;;;;:::i;:::-;10737:14;:22;;;;10775:27;4286:2;4352;:13;;;;:::i;:::-;4330:19;:35;;;;:::i;:::-;10775:27;;;;;;:::i;:::-;;;;;;;;10652:158::o:0;6291:119::-;6357:7;6384:9;:18;6394:7;6384:18;;;;;;;;;;;;;;;;6377:25;;6291:119;;;:::o;2618:148::-;2541:12;:10;:12::i;:::-;2531:22;;:6;;;;;;;;;;:22;;;2523:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2725:1:::1;2688:40;;2709:6;::::0;::::1;;;;;;;;2688:40;;;;;;;;;;;;2756:1;2739:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2618:148::o:0;4478:63::-;;;;:::o;11915:266::-;12013:10;;;;;;;;;;;11999:24;;:12;:10;:12::i;:::-;:24;;;11991:33;;;;;;12035:15;12053:63;12112:3;12053:54;12099:7;12060:8;12053:26;;;12088:4;12053:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;12035:81;;12134:8;12127:25;;;12153:10;;;;;;;;;;;12165:7;12127:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11980:201;11915:266;;:::o;2404:79::-;2442:7;2469:6;;;;;;;;;;;2462:13;;2404:79;:::o;4548:65::-;;;;:::o;6002:87::-;6041:13;6074:7;;;;;;;;;;;;;;;;;6067:14;;6002:87;:::o;6418:167::-;6496:4;6513:42;6523:12;:10;:12::i;:::-;6537:9;6548:6;6513:9;:42::i;:::-;6573:4;6566:11;;6418:167;;;;:::o;4620:65::-;;;;:::o;11212:161::-;2541:12;:10;:12::i;:::-;2531:22;;:6;;;;;;;;;;:22;;;2523:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11284:6:::1;11279:87;11300:6;:13;11296:1;:17;11279:87;;;11351:5;11333:4;:15;11338:6;11345:1;11338:9;;;;;;;;:::i;:::-;;;;;;;;11333:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11315:3;;;;;;;11279:87;;;;11212:161:::0;:::o;6593:143::-;6674:7;6701:11;:18;6713:5;6701:18;;;;;;;;;;;;;;;:27;6720:7;6701:27;;;;;;;;;;;;;;;;6694:34;;6593:143;;;;:::o;11652:218::-;11727:10;;;;;;;;;;;11713:24;;:12;:10;:12::i;:::-;:24;;;11705:33;;;;;;11764:12;;11755:7;:21;;:47;;;;;11789:13;;11780:7;:22;;11755:47;11747:56;;;;;;11825:7;11812:12;:20;;;;11855:7;11841:13;:21;;;;11652:218;:::o;11472:166::-;2541:12;:10;:12::i;:::-;2531:22;;:6;;;;;;;;;;:22;;;2523:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11534:11:::1;::::0;::::1;;;;;;;;11533:12;11525:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11597:4;11583:11;;:18;;;;;;;;;;;;;;;;;;11626:4;11612:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11472:166::o:0;159:98::-;212:7;239:10;232:17;;159:98;:::o;7234:335::-;7344:1;7327:19;;:5;:19;;;7319:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7425:1;7406:21;;:7;:21;;;7398:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7507:6;7477:11;:18;7489:5;7477:18;;;;;;;;;;;;;;;:27;7496:7;7477:27;;;;;;;;;;;;;;;:36;;;;7545:7;7529:32;;7538:5;7529:32;;;7554:6;7529:32;;;;;;:::i;:::-;;;;;;;;7234:335;;;:::o;7577:2468::-;7681:1;7665:18;;:4;:18;;;7657:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7758:1;7744:16;;:2;:16;;;7736:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7828:1;7819:6;:10;7811:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7886:17;7928:7;:5;:7::i;:::-;7920:15;;:4;:15;;;;:32;;;;;7945:7;:5;:7::i;:::-;7939:13;;:2;:13;;;;7920:32;:52;;;;;7962:10;;;;;;;;;;;7956:16;;:2;:16;;;;7920:52;7916:1773;;;7998:4;:10;8003:4;7998:10;;;;;;;;;;;;;;;;;;;;;;;;;7997:11;:24;;;;;8013:4;:8;8018:2;8013:8;;;;;;;;;;;;;;;;;;;;;;;;;8012:9;7997:24;7989:33;;;;;;8053:1;8042:9;;:12;8039:139;;8086:76;8158:3;8086:67;8108:15;;8098:9;;:25;8097:55;;8138:14;;8097:55;;;8125:12;;8097:55;8086:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8074:88;;8039:139;8205:1;8195:9;;:11;8192:95;;;8238:33;8267:3;8238:24;8249:12;;8238:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8226:45;;8192:95;8315:13;;;;;;;;;;;8307:21;;:4;:21;;;:55;;;;;8346:15;;;;;;;;;;;8332:30;;:2;:30;;;;8307:55;:83;;;;;8368:18;:22;8387:2;8368:22;;;;;;;;;;;;;;;;;;;;;;;;;8366:24;8307:83;8303:420;;;8430:12;;8420:6;:22;;8412:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8525:14;;8515:6;8499:13;8509:2;8499:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8491:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8601:76;8673:3;8601:67;8623:15;;8613:9;;:25;8612:55;;8653:14;;8612:55;;;8640:12;;8612:55;8601:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8589:88;;8696:9;;:11;;;;;;;;;:::i;:::-;;;;;;8303:420;8748:13;;;;;;;;;;;8742:19;;:2;:19;;;:43;;;;;8780:4;8765:20;;:4;:20;;;;8742:43;8739:174;;;8818:79;8893:3;8818:70;8840:16;;8830:9;;:26;8829:58;;8872:15;;8829:58;;;8858:13;;8829:58;8818:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8806:91;;8739:174;8929:28;8960:24;8978:4;8960:9;:24::i;:::-;8929:55;;9004:6;;;;;;;;;;;9003:7;:30;;;;;9020:13;;;;;;;;;;;9014:19;;:2;:19;;;9003:30;:45;;;;;9037:11;;;;;;;;;;;9003:45;:89;;;;;9075:17;;9052:20;:40;9003:89;:123;;;;;9108:18;;9096:9;;:30;9003:123;8999:679;;;9166:13;;9151:12;:28;9147:90;;;9216:1;9204:9;:13;;;;9147:90;9275:1;9263:9;;:13;9255:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9323:69;9340:51;9344:6;9352:38;9356:20;9378:11;;9352:3;:38::i;:::-;9340:3;:51::i;:::-;9323:16;:69::i;:::-;9411:26;9440:21;9411:50;;9505:1;9484:18;:22;9480:106;;;9531:35;9544:21;9531:12;:35::i;:::-;9480:106;9604:9;;:11;;;;;;;;;:::i;:::-;;;;;;9650:12;9634:13;:28;;;;9128:550;8999:679;7974:1715;7916:1773;9714:1;9704:9;:11;9701:161;;;9754:39;9783:9;9754;:24;9772:4;9754:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9729:9;:24;9747:4;9729:24;;;;;;;;;;;;;;;:64;;;;9834:4;9811:39;;9820:4;9811:39;;;9840:9;9811:39;;;;;;:::i;:::-;;;;;;;;9701:161;9888:27;9908:6;9888:9;:15;9898:4;9888:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9872:9;:15;9882:4;9872:15;;;;;;;;;;;;;;;:43;;;;9940:40;9958:21;9969:9;9958:6;:10;;:21;;;;:::i;:::-;9940:9;:13;9950:2;9940:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9926:9;:13;9936:2;9926:13;;;;;;;;;;;;;;;:54;;;;10011:2;9996:41;;10005:4;9996:41;;;10015:21;10026:9;10015:6;:10;;:21;;;;:::i;:::-;9996:41;;;;;;:::i;:::-;;;;;;;;7646:2399;7577:2468;;;:::o;1296:190::-;1382:7;1415:1;1410;:6;;1418:12;1402:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1442:9;1458:1;1454;:5;;;;:::i;:::-;1442:17;;1477:1;1470:8;;;1296:190;;;;;:::o;10161:483::-;5162:4;5153:6;;:13;;;;;;;;;;;;;;;;;;10239:21:::1;10277:1;10263:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10239:40;;10308:4;10290;10295:1;10290:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10334:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10324:4;10329:1;10324:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10367:62;10384:4;10399:15;;;;;;;;;;;10417:11;10367:8;:62::i;:::-;10440:15;;;;;;;;;;;:66;;;10521:11;10547:1;10563:4;10590;10610:15;10440:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10228:416;5198:5:::0;5189:6;;:14;;;;;;;;;;;;;;;;;;10161:483;:::o;10941:92::-;10998:10;;;;;;;;;;;:19;;:27;11018:6;10998:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10941:92;:::o;1494:246::-;1552:7;1581:1;1576;:6;1572:47;;1606:1;1599:8;;;;1572:47;1629:9;1645:1;1641;:5;;;;:::i;:::-;1629:17;;1674:1;1669;1665;:5;;;;:::i;:::-;:10;1657:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1731:1;1724:8;;;1494:246;;;;;:::o;1748:132::-;1806:7;1833:39;1837:1;1840;1833:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1826:46;;1748:132;;;;:::o;10055:98::-;10112:7;10139:1;10137;:3;10136:9;;10144:1;10136:9;;;10142:1;10136:9;10129:16;;10055:98;;;;:::o;965:179::-;1023:7;1043:9;1059:1;1055;:5;;;;:::i;:::-;1043:17;;1084:1;1079;:6;;1071:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1135:1;1128:8;;;965:179;;;;:::o;1152:136::-;1210:7;1237:43;1241:1;1244;1237:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1230:50;;1152:136;;;;:::o;1888:189::-;1974:7;2006:1;2002;:5;2009:12;1994:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2033:9;2049:1;2045;:5;;;;:::i;:::-;2033:17;;2068:1;2061:8;;;1888:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:539::-;6179:6;6228:2;6216:9;6207:7;6203:23;6199:32;6196:119;;;6234:79;;:::i;:::-;6196:119;6382:1;6371:9;6367:17;6354:31;6412:18;6404:6;6401:30;6398:117;;;6434:79;;:::i;:::-;6398:117;6539:78;6609:7;6600:6;6589:9;6585:22;6539:78;:::i;:::-;6529:88;;6325:302;6095:539;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:86::-;7300:7;7340:4;7333:5;7329:16;7318:27;;7265:86;;;:::o;7357:112::-;7440:22;7456:5;7440:22;:::i;:::-;7435:3;7428:35;7357:112;;:::o;7475:214::-;7564:4;7602:2;7591:9;7587:18;7579:26;;7615:67;7679:1;7668:9;7664:17;7655:6;7615:67;:::i;:::-;7475:214;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:329::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:182::-;9337:34;9333:1;9325:6;9321:14;9314:58;9197:182;:::o;9385:366::-;9527:3;9548:67;9612:2;9607:3;9548:67;:::i;:::-;9541:74;;9624:93;9713:3;9624:93;:::i;:::-;9742:2;9737:3;9733:12;9726:19;;9385:366;;;:::o;9757:419::-;9923:4;9961:2;9950:9;9946:18;9938:26;;10010:9;10004:4;10000:20;9996:1;9985:9;9981:17;9974:47;10038:131;10164:4;10038:131;:::i;:::-;10030:139;;9757:419;;;:::o;10182:85::-;10227:7;10256:5;10245:16;;10182:85;;;:::o;10273:60::-;10301:3;10322:5;10315:12;;10273:60;;;:::o;10339:158::-;10397:9;10430:61;10448:42;10457:32;10483:5;10457:32;:::i;:::-;10448:42;:::i;:::-;10430:61;:::i;:::-;10417:74;;10339:158;;;:::o;10503:147::-;10598:45;10637:5;10598:45;:::i;:::-;10593:3;10586:58;10503:147;;:::o;10656:238::-;10757:4;10795:2;10784:9;10780:18;10772:26;;10808:79;10884:1;10873:9;10869:17;10860:6;10808:79;:::i;:::-;10656:238;;;;:::o;10900:180::-;10948:77;10945:1;10938:88;11045:4;11042:1;11035:15;11069:4;11066:1;11059:15;11086:102;11128:8;11175:5;11172:1;11168:13;11147:34;;11086:102;;;:::o;11194:848::-;11255:5;11262:4;11286:6;11277:15;;11310:5;11301:14;;11324:712;11345:1;11335:8;11332:15;11324:712;;;11440:4;11435:3;11431:14;11425:4;11422:24;11419:50;;;11449:18;;:::i;:::-;11419:50;11499:1;11489:8;11485:16;11482:451;;;11914:4;11907:5;11903:16;11894:25;;11482:451;11964:4;11958;11954:15;11946:23;;11994:32;12017:8;11994:32;:::i;:::-;11982:44;;11324:712;;;11194:848;;;;;;;:::o;12048:1073::-;12102:5;12293:8;12283:40;;12314:1;12305:10;;12316:5;;12283:40;12342:4;12332:36;;12359:1;12350:10;;12361:5;;12332:36;12428:4;12476:1;12471:27;;;;12512:1;12507:191;;;;12421:277;;12471:27;12489:1;12480:10;;12491:5;;;12507:191;12552:3;12542:8;12539:17;12536:43;;;12559:18;;:::i;:::-;12536:43;12608:8;12605:1;12601:16;12592:25;;12643:3;12636:5;12633:14;12630:40;;;12650:18;;:::i;:::-;12630:40;12683:5;;;12421:277;;12807:2;12797:8;12794:16;12788:3;12782:4;12779:13;12775:36;12757:2;12747:8;12744:16;12739:2;12733:4;12730:12;12726:35;12710:111;12707:246;;;12863:8;12857:4;12853:19;12844:28;;12898:3;12891:5;12888:14;12885:40;;;12905:18;;:::i;:::-;12885:40;12938:5;;12707:246;12978:42;13016:3;13006:8;13000:4;12997:1;12978:42;:::i;:::-;12963:57;;;;13052:4;13047:3;13043:14;13036:5;13033:25;13030:51;;;13061:18;;:::i;:::-;13030:51;13110:4;13103:5;13099:16;13090:25;;12048:1073;;;;;;:::o;13127:281::-;13185:5;13209:23;13227:4;13209:23;:::i;:::-;13201:31;;13253:25;13269:8;13253:25;:::i;:::-;13241:37;;13297:104;13334:66;13324:8;13318:4;13297:104;:::i;:::-;13288:113;;13127:281;;;;:::o;13414:410::-;13454:7;13477:20;13495:1;13477:20;:::i;:::-;13472:25;;13511:20;13529:1;13511:20;:::i;:::-;13506:25;;13566:1;13563;13559:9;13588:30;13606:11;13588:30;:::i;:::-;13577:41;;13767:1;13758:7;13754:15;13751:1;13748:22;13728:1;13721:9;13701:83;13678:139;;13797:18;;:::i;:::-;13678:139;13462:362;13414:410;;;;:::o;13830:221::-;13970:34;13966:1;13958:6;13954:14;13947:58;14039:4;14034:2;14026:6;14022:15;14015:29;13830:221;:::o;14057:366::-;14199:3;14220:67;14284:2;14279:3;14220:67;:::i;:::-;14213:74;;14296:93;14385:3;14296:93;:::i;:::-;14414:2;14409:3;14405:12;14398:19;;14057:366;;;:::o;14429:419::-;14595:4;14633:2;14622:9;14618:18;14610:26;;14682:9;14676:4;14672:20;14668:1;14657:9;14653:17;14646:47;14710:131;14836:4;14710:131;:::i;:::-;14702:139;;14429:419;;;:::o;14854:180::-;14902:77;14899:1;14892:88;14999:4;14996:1;14989:15;15023:4;15020:1;15013:15;15040:143;15097:5;15128:6;15122:13;15113:22;;15144:33;15171:5;15144:33;:::i;:::-;15040:143;;;;:::o;15189:351::-;15259:6;15308:2;15296:9;15287:7;15283:23;15279:32;15276:119;;;15314:79;;:::i;:::-;15276:119;15434:1;15459:64;15515:7;15506:6;15495:9;15491:22;15459:64;:::i;:::-;15449:74;;15405:128;15189:351;;;;:::o;15546:142::-;15596:9;15629:53;15647:34;15656:24;15674:5;15656:24;:::i;:::-;15647:34;:::i;:::-;15629:53;:::i;:::-;15616:66;;15546:142;;;:::o;15694:126::-;15744:9;15777:37;15808:5;15777:37;:::i;:::-;15764:50;;15694:126;;;:::o;15826:134::-;15884:9;15917:37;15948:5;15917:37;:::i;:::-;15904:50;;15826:134;;;:::o;15966:147::-;16061:45;16100:5;16061:45;:::i;:::-;16056:3;16049:58;15966:147;;:::o;16119:348::-;16248:4;16286:2;16275:9;16271:18;16263:26;;16299:79;16375:1;16364:9;16360:17;16351:6;16299:79;:::i;:::-;16388:72;16456:2;16445:9;16441:18;16432:6;16388:72;:::i;:::-;16119:348;;;;;:::o;16473:116::-;16543:21;16558:5;16543:21;:::i;:::-;16536:5;16533:32;16523:60;;16579:1;16576;16569:12;16523:60;16473:116;:::o;16595:137::-;16649:5;16680:6;16674:13;16665:22;;16696:30;16720:5;16696:30;:::i;:::-;16595:137;;;;:::o;16738:345::-;16805:6;16854:2;16842:9;16833:7;16829:23;16825:32;16822:119;;;16860:79;;:::i;:::-;16822:119;16980:1;17005:61;17058:7;17049:6;17038:9;17034:22;17005:61;:::i;:::-;16995:71;;16951:125;16738:345;;;;:::o;17089:173::-;17229:25;17225:1;17217:6;17213:14;17206:49;17089:173;:::o;17268:366::-;17410:3;17431:67;17495:2;17490:3;17431:67;:::i;:::-;17424:74;;17507:93;17596:3;17507:93;:::i;:::-;17625:2;17620:3;17616:12;17609:19;;17268:366;;;:::o;17640:419::-;17806:4;17844:2;17833:9;17829:18;17821:26;;17893:9;17887:4;17883:20;17879:1;17868:9;17864:17;17857:47;17921:131;18047:4;17921:131;:::i;:::-;17913:139;;17640:419;;;:::o;18065:223::-;18205:34;18201:1;18193:6;18189:14;18182:58;18274:6;18269:2;18261:6;18257:15;18250:31;18065:223;:::o;18294:366::-;18436:3;18457:67;18521:2;18516:3;18457:67;:::i;:::-;18450:74;;18533:93;18622:3;18533:93;:::i;:::-;18651:2;18646:3;18642:12;18635:19;;18294:366;;;:::o;18666:419::-;18832:4;18870:2;18859:9;18855:18;18847:26;;18919:9;18913:4;18909:20;18905:1;18894:9;18890:17;18883:47;18947:131;19073:4;18947:131;:::i;:::-;18939:139;;18666:419;;;:::o;19091:221::-;19231:34;19227:1;19219:6;19215:14;19208:58;19300:4;19295:2;19287:6;19283:15;19276:29;19091:221;:::o;19318:366::-;19460:3;19481:67;19545:2;19540:3;19481:67;:::i;:::-;19474:74;;19557:93;19646:3;19557:93;:::i;:::-;19675:2;19670:3;19666:12;19659:19;;19318:366;;;:::o;19690:419::-;19856:4;19894:2;19883:9;19879:18;19871:26;;19943:9;19937:4;19933:20;19929:1;19918:9;19914:17;19907:47;19971:131;20097:4;19971:131;:::i;:::-;19963:139;;19690:419;;;:::o;20115:224::-;20255:34;20251:1;20243:6;20239:14;20232:58;20324:7;20319:2;20311:6;20307:15;20300:32;20115:224;:::o;20345:366::-;20487:3;20508:67;20572:2;20567:3;20508:67;:::i;:::-;20501:74;;20584:93;20673:3;20584:93;:::i;:::-;20702:2;20697:3;20693:12;20686:19;;20345:366;;;:::o;20717:419::-;20883:4;20921:2;20910:9;20906:18;20898:26;;20970:9;20964:4;20960:20;20956:1;20945:9;20941:17;20934:47;20998:131;21124:4;20998:131;:::i;:::-;20990:139;;20717:419;;;:::o;21142:222::-;21282:34;21278:1;21270:6;21266:14;21259:58;21351:5;21346:2;21338:6;21334:15;21327:30;21142:222;:::o;21370:366::-;21512:3;21533:67;21597:2;21592:3;21533:67;:::i;:::-;21526:74;;21609:93;21698:3;21609:93;:::i;:::-;21727:2;21722:3;21718:12;21711:19;;21370:366;;;:::o;21742:419::-;21908:4;21946:2;21935:9;21931:18;21923:26;;21995:9;21989:4;21985:20;21981:1;21970:9;21966:17;21959:47;22023:131;22149:4;22023:131;:::i;:::-;22015:139;;21742:419;;;:::o;22167:228::-;22307:34;22303:1;22295:6;22291:14;22284:58;22376:11;22371:2;22363:6;22359:15;22352:36;22167:228;:::o;22401:366::-;22543:3;22564:67;22628:2;22623:3;22564:67;:::i;:::-;22557:74;;22640:93;22729:3;22640:93;:::i;:::-;22758:2;22753:3;22749:12;22742:19;;22401:366;;;:::o;22773:419::-;22939:4;22977:2;22966:9;22962:18;22954:26;;23026:9;23020:4;23016:20;23012:1;23001:9;22997:17;22990:47;23054:131;23180:4;23054:131;:::i;:::-;23046:139;;22773:419;;;:::o;23198:175::-;23338:27;23334:1;23326:6;23322:14;23315:51;23198:175;:::o;23379:366::-;23521:3;23542:67;23606:2;23601:3;23542:67;:::i;:::-;23535:74;;23618:93;23707:3;23618:93;:::i;:::-;23736:2;23731:3;23727:12;23720:19;;23379:366;;;:::o;23751:419::-;23917:4;23955:2;23944:9;23940:18;23932:26;;24004:9;23998:4;23994:20;23990:1;23979:9;23975:17;23968:47;24032:131;24158:4;24032:131;:::i;:::-;24024:139;;23751:419;;;:::o;24176:191::-;24216:3;24235:20;24253:1;24235:20;:::i;:::-;24230:25;;24269:20;24287:1;24269:20;:::i;:::-;24264:25;;24312:1;24309;24305:9;24298:16;;24333:3;24330:1;24327:10;24324:36;;;24340:18;;:::i;:::-;24324:36;24176:191;;;;:::o;24373:176::-;24513:28;24509:1;24501:6;24497:14;24490:52;24373:176;:::o;24555:366::-;24697:3;24718:67;24782:2;24777:3;24718:67;:::i;:::-;24711:74;;24794:93;24883:3;24794:93;:::i;:::-;24912:2;24907:3;24903:12;24896:19;;24555:366;;;:::o;24927:419::-;25093:4;25131:2;25120:9;25116:18;25108:26;;25180:9;25174:4;25170:20;25166:1;25155:9;25151:17;25144:47;25208:131;25334:4;25208:131;:::i;:::-;25200:139;;24927:419;;;:::o;25352:233::-;25391:3;25414:24;25432:5;25414:24;:::i;:::-;25405:33;;25460:66;25453:5;25450:77;25447:103;;25530:18;;:::i;:::-;25447:103;25577:1;25570:5;25566:13;25559:20;;25352:233;;;:::o;25591:173::-;25731:25;25727:1;25719:6;25715:14;25708:49;25591:173;:::o;25770:366::-;25912:3;25933:67;25997:2;25992:3;25933:67;:::i;:::-;25926:74;;26009:93;26098:3;26009:93;:::i;:::-;26127:2;26122:3;26118:12;26111:19;;25770:366;;;:::o;26142:419::-;26308:4;26346:2;26335:9;26331:18;26323:26;;26395:9;26389:4;26385:20;26381:1;26370:9;26366:17;26359:47;26423:131;26549:4;26423:131;:::i;:::-;26415:139;;26142:419;;;:::o;26567:194::-;26607:4;26627:20;26645:1;26627:20;:::i;:::-;26622:25;;26661:20;26679:1;26661:20;:::i;:::-;26656:25;;26705:1;26702;26698:9;26690:17;;26729:1;26723:4;26720:11;26717:37;;;26734:18;;:::i;:::-;26717:37;26567:194;;;;:::o;26767:143::-;26824:5;26855:6;26849:13;26840:22;;26871:33;26898:5;26871:33;:::i;:::-;26767:143;;;;:::o;26916:351::-;26986:6;27035:2;27023:9;27014:7;27010:23;27006:32;27003:119;;;27041:79;;:::i;:::-;27003:119;27161:1;27186:64;27242:7;27233:6;27222:9;27218:22;27186:64;:::i;:::-;27176:74;;27132:128;26916:351;;;;:::o;27273:114::-;27340:6;27374:5;27368:12;27358:22;;27273:114;;;:::o;27393:184::-;27492:11;27526:6;27521:3;27514:19;27566:4;27561:3;27557:14;27542:29;;27393:184;;;;:::o;27583:132::-;27650:4;27673:3;27665:11;;27703:4;27698:3;27694:14;27686:22;;27583:132;;;:::o;27721:108::-;27798:24;27816:5;27798:24;:::i;:::-;27793:3;27786:37;27721:108;;:::o;27835:179::-;27904:10;27925:46;27967:3;27959:6;27925:46;:::i;:::-;28003:4;27998:3;27994:14;27980:28;;27835:179;;;;:::o;28020:113::-;28090:4;28122;28117:3;28113:14;28105:22;;28020:113;;;:::o;28169:732::-;28288:3;28317:54;28365:5;28317:54;:::i;:::-;28387:86;28466:6;28461:3;28387:86;:::i;:::-;28380:93;;28497:56;28547:5;28497:56;:::i;:::-;28576:7;28607:1;28592:284;28617:6;28614:1;28611:13;28592:284;;;28693:6;28687:13;28720:63;28779:3;28764:13;28720:63;:::i;:::-;28713:70;;28806:60;28859:6;28806:60;:::i;:::-;28796:70;;28652:224;28639:1;28636;28632:9;28627:14;;28592:284;;;28596:14;28892:3;28885:10;;28293:608;;;28169:732;;;;:::o;28907:831::-;29170:4;29208:3;29197:9;29193:19;29185:27;;29222:71;29290:1;29279:9;29275:17;29266:6;29222:71;:::i;:::-;29303:80;29379:2;29368:9;29364:18;29355:6;29303:80;:::i;:::-;29430:9;29424:4;29420:20;29415:2;29404:9;29400:18;29393:48;29458:108;29561:4;29552:6;29458:108;:::i;:::-;29450:116;;29576:72;29644:2;29633:9;29629:18;29620:6;29576:72;:::i;:::-;29658:73;29726:3;29715:9;29711:19;29702:6;29658:73;:::i;:::-;28907:831;;;;;;;;:::o;29744:180::-;29792:77;29789:1;29782:88;29889:4;29886:1;29879:15;29913:4;29910:1;29903:15;29930:185;29970:1;29987:20;30005:1;29987:20;:::i;:::-;29982:25;;30021:20;30039:1;30021:20;:::i;:::-;30016:25;;30060:1;30050:35;;30065:18;;:::i;:::-;30050:35;30107:1;30104;30100:9;30095:14;;29930:185;;;;:::o;30121:220::-;30261:34;30257:1;30249:6;30245:14;30238:58;30330:3;30325:2;30317:6;30313:15;30306:28;30121:220;:::o;30347:366::-;30489:3;30510:67;30574:2;30569:3;30510:67;:::i;:::-;30503:74;;30586:93;30675:3;30586:93;:::i;:::-;30704:2;30699:3;30695:12;30688:19;;30347:366;;;:::o;30719:419::-;30885:4;30923:2;30912:9;30908:18;30900:26;;30972:9;30966:4;30962:20;30958:1;30947:9;30943:17;30936:47;31000:131;31126:4;31000:131;:::i;:::-;30992:139;;30719:419;;;:::o;31144:177::-;31284:29;31280:1;31272:6;31268:14;31261:53;31144:177;:::o;31327:366::-;31469:3;31490:67;31554:2;31549:3;31490:67;:::i;:::-;31483:74;;31566:93;31655:3;31566:93;:::i;:::-;31684:2;31679:3;31675:12;31668:19;;31327:366;;;:::o;31699:419::-;31865:4;31903:2;31892:9;31888:18;31880:26;;31952:9;31946:4;31942:20;31938:1;31927:9;31923:17;31916:47;31980:131;32106:4;31980:131;:::i;:::-;31972:139;;31699:419;;;:::o
Swarm Source
ipfs://0fd9d53aff8a10fb18bd8d9cc3e44d1cd3e9de5d8a759117cc29d4c9fc209191
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.