Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 $BDE
Holders
21
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BigDickEnergy
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-29 */ pragma solidity ^0.8.14; // SPDX-License-Identifier: Unlicensed 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract BigDickEnergy is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Big Dick Energy"; string private constant _symbol = "$BDE"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 10; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; mapping (address => bool) public preTrader; address private marketingAddress; address private devFeeAddress1; address private devFeeAddress2; address private devFeeAddress3; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 15000000 * 10**_decimals; uint256 public _maxWalletSize = 15000000 * 10**_decimals; uint256 public _swapTokensAtAmount = 400000 * 10**_decimals; struct Distribution { uint256 marketing; uint256 devFee; } Distribution public distribution; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address marketingAddr, address devFeeAddr1, address devFeeAddr2, address devFeeAddr3) { marketingAddress = marketingAddr; devFeeAddress1 = devFeeAddr1; devFeeAddress2 = devFeeAddr2; devFeeAddress3 = devFeeAddr3; _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[devFeeAddress1] = true; _isExcludedFromFee[devFeeAddress2] = true; _isExcludedFromFee[devFeeAddress3] = true; _isExcludedFromFee[marketingAddress] = true; distribution = Distribution(75, 25); emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) { //Trade start check if (!tradingOpen) { require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private lockTheSwap { uint256 distributionEth = amount; uint256 marketingShare = distributionEth.mul(distribution.marketing).div(100); uint256 devFeeShare = distributionEth.mul(distribution.devFee).div(100).div(3); payable(marketingAddress).transfer(marketingShare); payable(devFeeAddress1).transfer(devFeeShare); payable(devFeeAddress2).transfer(devFeeShare); payable(devFeeAddress3).transfer(devFeeShare); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == devFeeAddress3 || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == devFeeAddress3 || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function setDistribution(uint256 marketing, uint256 devFee) external onlyOwner { distribution.marketing = marketing; distribution.devFee = devFee; } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable { } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function allowPreTrading(address[] calldata accounts) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { preTrader[accounts[i]] = true; } } function removePreTrading(address[] calldata accounts) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { delete preTrader[accounts[i]]; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"marketingAddr","type":"address"},{"internalType":"address","name":"devFeeAddr1","type":"address"},{"internalType":"address","name":"devFeeAddr2","type":"address"},{"internalType":"address","name":"devFeeAddr3","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"allowPreTrading","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distribution","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removePreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"setDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526009600a62000014919062000a90565b633b9aca0062000025919062000ae1565b60001962000034919062000b71565b60001962000043919062000ba9565b6006556000600855600a6009556000600a55600a600b55600a54600c55600b54600d55600c54600e55600d54600f556000601860156101000a81548160ff0219169083151502179055506001601860166101000a81548160ff0219169083151502179055506009600a620000b8919062000a90565b62e4e1c0620000c8919062000ae1565b6019556009600a620000db919062000a90565b62e4e1c0620000eb919062000ae1565b601a556009600a620000fe919062000a90565b62061a806200010e919062000ae1565b601b553480156200011e57600080fd5b506040516200564838038062005648833981810160405281019062000144919062000c4e565b600062000156620008c560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200030f620008c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000419919062000cc0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000481573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a7919062000cc0565b6040518363ffffffff1660e01b8152600401620004c692919062000d03565b6020604051808303816000875af1158015620004e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050c919062000cc0565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000562620008cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506040518060400160405280604b81526020016019815250601c600082015181600001556020820151816001015590505062000833620008c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000892919062000a90565b633b9aca00620008a3919062000ae1565b604051620008b2919062000d41565b60405180910390a3505050505062000d5e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000984578086048111156200095c576200095b620008f6565b5b60018516156200096c5780820291505b80810290506200097c8562000925565b94506200093c565b94509492505050565b6000826200099f576001905062000a72565b81620009af576000905062000a72565b8160018114620009c85760028114620009d35762000a09565b600191505062000a72565b60ff841115620009e857620009e7620008f6565b5b8360020a91508482111562000a025762000a01620008f6565b5b5062000a72565b5060208310610133831016604e8410600b841016171562000a435782820a90508381111562000a3d5762000a3c620008f6565b5b62000a72565b62000a52848484600162000932565b9250905081840481111562000a6c5762000a6b620008f6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a9d8262000a79565b915062000aaa8362000a83565b925062000ad97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200098d565b905092915050565b600062000aee8262000a79565b915062000afb8362000a79565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b375762000b36620008f6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b7e8262000a79565b915062000b8b8362000a79565b92508262000b9e5762000b9d62000b42565b5b828206905092915050565b600062000bb68262000a79565b915062000bc38362000a79565b92508282101562000bd95762000bd8620008f6565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c168262000be9565b9050919050565b62000c288162000c09565b811462000c3457600080fd5b50565b60008151905062000c488162000c1d565b92915050565b6000806000806080858703121562000c6b5762000c6a62000be4565b5b600062000c7b8782880162000c37565b945050602062000c8e8782880162000c37565b935050604062000ca18782880162000c37565b925050606062000cb48782880162000c37565b91505092959194509250565b60006020828403121562000cd95762000cd862000be4565b5b600062000ce98482850162000c37565b91505092915050565b62000cfd8162000c09565b82525050565b600060408201905062000d1a600083018562000cf2565b62000d29602083018462000cf2565b9392505050565b62000d3b8162000a79565b82525050565b600060208201905062000d58600083018462000d30565b92915050565b6148da8062000d6e6000396000f3fe6080604052600436106102075760003560e01c80637d1db4a511610118578063b5a65223116100a0578063c492f0461161006f578063c492f0461461074e578063dd62ed3e14610777578063ea1644d5146107b4578063f18dba26146107dd578063f2fde38b146108065761020e565b8063b5a6522314610694578063bdd795ef146106bd578063bfd79284146106fa578063c3c8cd80146107375761020e565b80638f9a55c0116100e75780638f9a55c0146105af57806395d89b41146105da57806398a5c31514610605578063a2a957bb1461062e578063a9059cbb146106575761020e565b80637d1db4a5146104f35780637f2feddc1461051e5780638da5cb5b1461055b5780638f70ccf7146105865761020e565b806349bd5a5e1161019b5780636d8aa8f81161016a5780636d8aa8f8146104365780636fc3eaec1461045f57806370a0823114610476578063715018a6146104b357806374010ece146104ca5761020e565b806349bd5a5e1461038d5780635ee58efc146103b857806367aadb7e146103e45780636b9990531461040d5761020e565b806318160ddd116101d757806318160ddd146102cf57806323b872dd146102fa5780632fd689e314610337578063313ce567146103625761020e565b8062b8cf2a1461021357806306fdde031461023c578063095ea7b3146102675780631694505e146102a45761020e565b3661020e57005b600080fd5b34801561021f57600080fd5b5061023a60048036038101906102359190613633565b61082f565b005b34801561024857600080fd5b50610251610959565b60405161025e9190613704565b60405180910390f35b34801561027357600080fd5b5061028e6004803603810190610289919061375c565b610996565b60405161029b91906137b7565b60405180910390f35b3480156102b057600080fd5b506102b96109b4565b6040516102c69190613831565b60405180910390f35b3480156102db57600080fd5b506102e46109da565b6040516102f1919061385b565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190613876565b6109fe565b60405161032e91906137b7565b60405180910390f35b34801561034357600080fd5b5061034c610ad7565b604051610359919061385b565b60405180910390f35b34801561036e57600080fd5b50610377610add565b60405161038491906138e5565b60405180910390f35b34801561039957600080fd5b506103a2610ae6565b6040516103af919061390f565b60405180910390f35b3480156103c457600080fd5b506103cd610b0c565b6040516103db92919061392a565b60405180910390f35b3480156103f057600080fd5b5061040b600480360381019061040691906139ae565b610b1e565b005b34801561041957600080fd5b50610434600480360381019061042f91906139fb565b610c4f565b005b34801561044257600080fd5b5061045d60048036038101906104589190613a54565b610d3f565b005b34801561046b57600080fd5b50610474610df1565b005b34801561048257600080fd5b5061049d600480360381019061049891906139fb565b610f80565b6040516104aa919061385b565b60405180910390f35b3480156104bf57600080fd5b506104c8610fd1565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190613a81565b611124565b005b3480156104ff57600080fd5b506105086111c3565b604051610515919061385b565b60405180910390f35b34801561052a57600080fd5b50610545600480360381019061054091906139fb565b6111c9565b604051610552919061385b565b60405180910390f35b34801561056757600080fd5b506105706111e1565b60405161057d919061390f565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a89190613a54565b61120a565b005b3480156105bb57600080fd5b506105c46112bc565b6040516105d1919061385b565b60405180910390f35b3480156105e657600080fd5b506105ef6112c2565b6040516105fc9190613704565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190613a81565b6112ff565b005b34801561063a57600080fd5b5061065560048036038101906106509190613aae565b61139e565b005b34801561066357600080fd5b5061067e6004803603810190610679919061375c565b611455565b60405161068b91906137b7565b60405180910390f35b3480156106a057600080fd5b506106bb60048036038101906106b691906139ae565b611473565b005b3480156106c957600080fd5b506106e460048036038101906106df91906139fb565b6115ad565b6040516106f191906137b7565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c91906139fb565b6115cd565b60405161072e91906137b7565b60405180910390f35b34801561074357600080fd5b5061074c6115ed565b005b34801561075a57600080fd5b5061077560048036038101906107709190613b15565b611784565b005b34801561078357600080fd5b5061079e60048036038101906107999190613b75565b6118be565b6040516107ab919061385b565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d69190613a81565b611945565b005b3480156107e957600080fd5b5061080460048036038101906107ff9190613bb5565b6119e4565b005b34801561081257600080fd5b5061082d600480360381019061082891906139fb565b611a91565b005b610837611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bb90613c41565b60405180910390fd5b60005b8151811015610955576001601060008484815181106108e9576108e8613c61565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094d90613cbf565b9150506108c7565b5050565b60606040518060400160405280600f81526020017f426967204469636b20456e657267790000000000000000000000000000000000815250905090565b60006109aa6109a3611c52565b8484611c5a565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109ea9190613e3a565b633b9aca006109f99190613e85565b905090565b6000610a0b848484611e23565b610acc84610a17611c52565b610ac78560405180606001604052806028815260200161487d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a7d611c52565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276b9092919063ffffffff16565b611c5a565b600190509392505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c8060000154908060010154905082565b610b26611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90613c41565b60405180910390fd5b60005b82829050811015610c4a5760126000848484818110610bd857610bd7613c61565b5b9050602002016020810190610bed91906139fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080610c4290613cbf565b915050610bb6565b505050565b610c57611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb90613c41565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d47611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90613c41565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e32611c52565b73ffffffffffffffffffffffffffffffffffffffff161480610ea85750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e90611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f075750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eef611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f665750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4e611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b610f6f57600080fd5b6000479050610f7d816127cf565b50565b6000610fca600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a25565b9050919050565b610fd9611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d90613c41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61112c611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090613c41565b60405180910390fd5b8060198190555050565b60195481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611212611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690613c41565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600481526020017f2442444500000000000000000000000000000000000000000000000000000000815250905090565b611307611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90613c41565b60405180910390fd5b80601b8190555050565b6113a6611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90613c41565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611469611462611c52565b8484611e23565b6001905092915050565b61147b611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90613c41565b60405180910390fd5b60005b828290508110156115a85760016012600085858581811061152f5761152e613c61565b5b905060200201602081019061154491906139fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115a090613cbf565b91505061150b565b505050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661162e611c52565b73ffffffffffffffffffffffffffffffffffffffff1614806116a45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661168c611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b806117035750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116eb611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b806117625750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174a611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b61176b57600080fd5b600061177630610f80565b905061178181612a93565b50565b61178c611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613c41565b60405180910390fd5b60005b838390508110156118b857816005600086868581811061183f5761183e613c61565b5b905060200201602081019061185491906139fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806118b090613cbf565b91505061181c565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61194d611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613c41565b60405180910390fd5b80601a8190555050565b6119ec611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090613c41565b60405180910390fd5b81601c6000018190555080601c600101819055505050565b611a99611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90613c41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613f51565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc090613fe3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90614075565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e16919061385b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8990614107565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef890614199565b60405180910390fd5b60008111611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b9061422b565b60405180910390fd5b611f4c6111e1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fba5750611f8a6111e1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120105750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120665750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561246a57601860149054906101000a900460ff1661210c57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661210b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612102906142bd565b60405180910390fd5b5b601954811115612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890614329565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121f55750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b906143bb565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122e157601a548161229684610f80565b6122a091906143db565b106122e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d7906144a3565b60405180910390fd5b5b60006122ec30610f80565b90506000601b54821015905060195482106123075760195491505b8080156123215750601860159054906101000a900460ff16155b801561237b5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123935750601860169054906101000a900460ff165b80156123e95750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561243f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124675761244d82612a93565b6000479050600081111561246557612464476127cf565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125115750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125c45750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125c35750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125d25760009050612759565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561267d5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561269557600854600c81905550600954600d819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127405750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561275857600a54600c81905550600b54600d819055505b5b61276584848484612d0c565b50505050565b60008383111582906127b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127aa9190613704565b60405180910390fd5b50600083856127c291906144c3565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055506000819050600061281c606461280e601c6000015485612d3990919063ffffffff16565b612db390919063ffffffff16565b9050600061285e60036128506064612842601c6001015488612d3990919063ffffffff16565b612db390919063ffffffff16565b612db390919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156128c8573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612931573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561299a573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a03573d6000803e3d6000fd5b505050506000601860156101000a81548160ff02191690831515021790555050565b6000600654821115612a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6390614569565b60405180910390fd5b6000612a76612dfd565b9050612a8b8184612db390919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612acb57612aca613492565b5b604051908082528060200260200182016040528015612af95781602001602082028036833780820191505090505b5090503081600081518110612b1157612b10613c61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc919061459e565b81600181518110612bf057612bef613c61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c5730601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c5a565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cbb9594939291906146c4565b600060405180830381600087803b158015612cd557600080fd5b505af1158015612ce9573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612d1a57612d19612e28565b5b612d25848484612e65565b80612d3357612d32613030565b5b50505050565b6000808303612d4b5760009050612dad565b60008284612d599190613e85565b9050828482612d68919061474d565b14612da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9f906147f0565b60405180910390fd5b809150505b92915050565b6000612df583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613044565b905092915050565b6000806000612e0a6130a7565b91509150612e218183612db390919063ffffffff16565b9250505090565b6000600c54148015612e3c57506000600d54145b612e6357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612e7787613142565b955095509550955095509550612ed586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131aa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f6a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131f490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fb681613252565b612fc0848361330f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161301d919061385b565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000808311829061308b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130829190613704565b60405180910390fd5b506000838561309a919061474d565b9050809150509392505050565b6000806000600654905060006009600a6130c19190613e3a565b633b9aca006130d09190613e85565b90506131036009600a6130e39190613e3a565b633b9aca006130f29190613e85565b600654612db390919063ffffffff16565b821015613135576006546009600a61311b9190613e3a565b633b9aca0061312a9190613e85565b93509350505061313e565b81819350935050505b9091565b600080600080600080600080600061315f8a600c54600d54613349565b925092509250600061316f612dfd565b905060008060006131828e8787876133df565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006131ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061276b565b905092915050565b600080828461320391906143db565b905083811015613248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323f9061485c565b60405180910390fd5b8091505092915050565b600061325c612dfd565b905060006132738284612d3990919063ffffffff16565b90506132c781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131f490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613324826006546131aa90919063ffffffff16565b60068190555061333f816007546131f490919063ffffffff16565b6007819055505050565b6000806000806133756064613367888a612d3990919063ffffffff16565b612db390919063ffffffff16565b9050600061339f6064613391888b612d3990919063ffffffff16565b612db390919063ffffffff16565b905060006133c8826133ba858c6131aa90919063ffffffff16565b6131aa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806133f88589612d3990919063ffffffff16565b9050600061340f8689612d3990919063ffffffff16565b905060006134268789612d3990919063ffffffff16565b9050600061344f8261344185876131aa90919063ffffffff16565b6131aa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134ca82613481565b810181811067ffffffffffffffff821117156134e9576134e8613492565b5b80604052505050565b60006134fc613468565b905061350882826134c1565b919050565b600067ffffffffffffffff82111561352857613527613492565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135698261353e565b9050919050565b6135798161355e565b811461358457600080fd5b50565b60008135905061359681613570565b92915050565b60006135af6135aa8461350d565b6134f2565b905080838252602082019050602084028301858111156135d2576135d1613539565b5b835b818110156135fb57806135e78882613587565b8452602084019350506020810190506135d4565b5050509392505050565b600082601f83011261361a5761361961347c565b5b813561362a84826020860161359c565b91505092915050565b60006020828403121561364957613648613472565b5b600082013567ffffffffffffffff81111561366757613666613477565b5b61367384828501613605565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136b657808201518184015260208101905061369b565b838111156136c5576000848401525b50505050565b60006136d68261367c565b6136e08185613687565b93506136f0818560208601613698565b6136f981613481565b840191505092915050565b6000602082019050818103600083015261371e81846136cb565b905092915050565b6000819050919050565b61373981613726565b811461374457600080fd5b50565b60008135905061375681613730565b92915050565b6000806040838503121561377357613772613472565b5b600061378185828601613587565b925050602061379285828601613747565b9150509250929050565b60008115159050919050565b6137b18161379c565b82525050565b60006020820190506137cc60008301846137a8565b92915050565b6000819050919050565b60006137f76137f26137ed8461353e565b6137d2565b61353e565b9050919050565b6000613809826137dc565b9050919050565b600061381b826137fe565b9050919050565b61382b81613810565b82525050565b60006020820190506138466000830184613822565b92915050565b61385581613726565b82525050565b6000602082019050613870600083018461384c565b92915050565b60008060006060848603121561388f5761388e613472565b5b600061389d86828701613587565b93505060206138ae86828701613587565b92505060406138bf86828701613747565b9150509250925092565b600060ff82169050919050565b6138df816138c9565b82525050565b60006020820190506138fa60008301846138d6565b92915050565b6139098161355e565b82525050565b60006020820190506139246000830184613900565b92915050565b600060408201905061393f600083018561384c565b61394c602083018461384c565b9392505050565b600080fd5b60008083601f84011261396e5761396d61347c565b5b8235905067ffffffffffffffff81111561398b5761398a613953565b5b6020830191508360208202830111156139a7576139a6613539565b5b9250929050565b600080602083850312156139c5576139c4613472565b5b600083013567ffffffffffffffff8111156139e3576139e2613477565b5b6139ef85828601613958565b92509250509250929050565b600060208284031215613a1157613a10613472565b5b6000613a1f84828501613587565b91505092915050565b613a318161379c565b8114613a3c57600080fd5b50565b600081359050613a4e81613a28565b92915050565b600060208284031215613a6a57613a69613472565b5b6000613a7884828501613a3f565b91505092915050565b600060208284031215613a9757613a96613472565b5b6000613aa584828501613747565b91505092915050565b60008060008060808587031215613ac857613ac7613472565b5b6000613ad687828801613747565b9450506020613ae787828801613747565b9350506040613af887828801613747565b9250506060613b0987828801613747565b91505092959194509250565b600080600060408486031215613b2e57613b2d613472565b5b600084013567ffffffffffffffff811115613b4c57613b4b613477565b5b613b5886828701613958565b93509350506020613b6b86828701613a3f565b9150509250925092565b60008060408385031215613b8c57613b8b613472565b5b6000613b9a85828601613587565b9250506020613bab85828601613587565b9150509250929050565b60008060408385031215613bcc57613bcb613472565b5b6000613bda85828601613747565b9250506020613beb85828601613747565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c2b602083613687565b9150613c3682613bf5565b602082019050919050565b60006020820190508181036000830152613c5a81613c1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cca82613726565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cfc57613cfb613c90565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613d5e57808604811115613d3a57613d39613c90565b5b6001851615613d495780820291505b8081029050613d5785613d07565b9450613d1e565b94509492505050565b600082613d775760019050613e33565b81613d855760009050613e33565b8160018114613d9b5760028114613da557613dd4565b6001915050613e33565b60ff841115613db757613db6613c90565b5b8360020a915084821115613dce57613dcd613c90565b5b50613e33565b5060208310610133831016604e8410600b8410161715613e095782820a905083811115613e0457613e03613c90565b5b613e33565b613e168484846001613d14565b92509050818404811115613e2d57613e2c613c90565b5b81810290505b9392505050565b6000613e4582613726565b9150613e50836138c9565b9250613e7d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613d67565b905092915050565b6000613e9082613726565b9150613e9b83613726565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ed457613ed3613c90565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f3b602683613687565b9150613f4682613edf565b604082019050919050565b60006020820190508181036000830152613f6a81613f2e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fcd602483613687565b9150613fd882613f71565b604082019050919050565b60006020820190508181036000830152613ffc81613fc0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061405f602283613687565b915061406a82614003565b604082019050919050565b6000602082019050818103600083015261408e81614052565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140f1602583613687565b91506140fc82614095565b604082019050919050565b60006020820190508181036000830152614120816140e4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614183602383613687565b915061418e82614127565b604082019050919050565b600060208201905081810360008301526141b281614176565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614215602983613687565b9150614220826141b9565b604082019050919050565b6000602082019050818103600083015261424481614208565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006142a7603f83613687565b91506142b28261424b565b604082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000614313601c83613687565b915061431e826142dd565b602082019050919050565b6000602082019050818103600083015261434281614306565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006143a5602383613687565b91506143b082614349565b604082019050919050565b600060208201905081810360008301526143d481614398565b9050919050565b60006143e682613726565b91506143f183613726565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561442657614425613c90565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061448d602383613687565b915061449882614431565b604082019050919050565b600060208201905081810360008301526144bc81614480565b9050919050565b60006144ce82613726565b91506144d983613726565b9250828210156144ec576144eb613c90565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614553602a83613687565b915061455e826144f7565b604082019050919050565b6000602082019050818103600083015261458281614546565b9050919050565b60008151905061459881613570565b92915050565b6000602082840312156145b4576145b3613472565b5b60006145c284828501614589565b91505092915050565b6000819050919050565b60006145f06145eb6145e6846145cb565b6137d2565b613726565b9050919050565b614600816145d5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61463b8161355e565b82525050565b600061464d8383614632565b60208301905092915050565b6000602082019050919050565b600061467182614606565b61467b8185614611565b935061468683614622565b8060005b838110156146b757815161469e8882614641565b97506146a983614659565b92505060018101905061468a565b5085935050505092915050565b600060a0820190506146d9600083018861384c565b6146e660208301876145f7565b81810360408301526146f88186614666565b90506147076060830185613900565b614714608083018461384c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061475882613726565b915061476383613726565b9250826147735761477261471e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006147da602183613687565b91506147e58261477e565b604082019050919050565b60006020820190508181036000830152614809816147cd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614846601b83613687565b915061485182614810565b602082019050919050565b6000602082019050818103600083015261487581614839565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a39917eef0099d9d9d2cd476afec02f20aadb8670b991303baa57106e2a1563564736f6c634300080e00330000000000000000000000002fd2c31fe8f0d34001547ea2f0d64253dbbc461f000000000000000000000000540b6c092664d85dc9b7284ab10013976c2d920f00000000000000000000000076d136de35ac07c328be0031fb7fb11564a9a2c8000000000000000000000000229234cdfa027e4b5b247c899377787e736600a1
Deployed Bytecode
0x6080604052600436106102075760003560e01c80637d1db4a511610118578063b5a65223116100a0578063c492f0461161006f578063c492f0461461074e578063dd62ed3e14610777578063ea1644d5146107b4578063f18dba26146107dd578063f2fde38b146108065761020e565b8063b5a6522314610694578063bdd795ef146106bd578063bfd79284146106fa578063c3c8cd80146107375761020e565b80638f9a55c0116100e75780638f9a55c0146105af57806395d89b41146105da57806398a5c31514610605578063a2a957bb1461062e578063a9059cbb146106575761020e565b80637d1db4a5146104f35780637f2feddc1461051e5780638da5cb5b1461055b5780638f70ccf7146105865761020e565b806349bd5a5e1161019b5780636d8aa8f81161016a5780636d8aa8f8146104365780636fc3eaec1461045f57806370a0823114610476578063715018a6146104b357806374010ece146104ca5761020e565b806349bd5a5e1461038d5780635ee58efc146103b857806367aadb7e146103e45780636b9990531461040d5761020e565b806318160ddd116101d757806318160ddd146102cf57806323b872dd146102fa5780632fd689e314610337578063313ce567146103625761020e565b8062b8cf2a1461021357806306fdde031461023c578063095ea7b3146102675780631694505e146102a45761020e565b3661020e57005b600080fd5b34801561021f57600080fd5b5061023a60048036038101906102359190613633565b61082f565b005b34801561024857600080fd5b50610251610959565b60405161025e9190613704565b60405180910390f35b34801561027357600080fd5b5061028e6004803603810190610289919061375c565b610996565b60405161029b91906137b7565b60405180910390f35b3480156102b057600080fd5b506102b96109b4565b6040516102c69190613831565b60405180910390f35b3480156102db57600080fd5b506102e46109da565b6040516102f1919061385b565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190613876565b6109fe565b60405161032e91906137b7565b60405180910390f35b34801561034357600080fd5b5061034c610ad7565b604051610359919061385b565b60405180910390f35b34801561036e57600080fd5b50610377610add565b60405161038491906138e5565b60405180910390f35b34801561039957600080fd5b506103a2610ae6565b6040516103af919061390f565b60405180910390f35b3480156103c457600080fd5b506103cd610b0c565b6040516103db92919061392a565b60405180910390f35b3480156103f057600080fd5b5061040b600480360381019061040691906139ae565b610b1e565b005b34801561041957600080fd5b50610434600480360381019061042f91906139fb565b610c4f565b005b34801561044257600080fd5b5061045d60048036038101906104589190613a54565b610d3f565b005b34801561046b57600080fd5b50610474610df1565b005b34801561048257600080fd5b5061049d600480360381019061049891906139fb565b610f80565b6040516104aa919061385b565b60405180910390f35b3480156104bf57600080fd5b506104c8610fd1565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190613a81565b611124565b005b3480156104ff57600080fd5b506105086111c3565b604051610515919061385b565b60405180910390f35b34801561052a57600080fd5b50610545600480360381019061054091906139fb565b6111c9565b604051610552919061385b565b60405180910390f35b34801561056757600080fd5b506105706111e1565b60405161057d919061390f565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a89190613a54565b61120a565b005b3480156105bb57600080fd5b506105c46112bc565b6040516105d1919061385b565b60405180910390f35b3480156105e657600080fd5b506105ef6112c2565b6040516105fc9190613704565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190613a81565b6112ff565b005b34801561063a57600080fd5b5061065560048036038101906106509190613aae565b61139e565b005b34801561066357600080fd5b5061067e6004803603810190610679919061375c565b611455565b60405161068b91906137b7565b60405180910390f35b3480156106a057600080fd5b506106bb60048036038101906106b691906139ae565b611473565b005b3480156106c957600080fd5b506106e460048036038101906106df91906139fb565b6115ad565b6040516106f191906137b7565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c91906139fb565b6115cd565b60405161072e91906137b7565b60405180910390f35b34801561074357600080fd5b5061074c6115ed565b005b34801561075a57600080fd5b5061077560048036038101906107709190613b15565b611784565b005b34801561078357600080fd5b5061079e60048036038101906107999190613b75565b6118be565b6040516107ab919061385b565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d69190613a81565b611945565b005b3480156107e957600080fd5b5061080460048036038101906107ff9190613bb5565b6119e4565b005b34801561081257600080fd5b5061082d600480360381019061082891906139fb565b611a91565b005b610837611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bb90613c41565b60405180910390fd5b60005b8151811015610955576001601060008484815181106108e9576108e8613c61565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094d90613cbf565b9150506108c7565b5050565b60606040518060400160405280600f81526020017f426967204469636b20456e657267790000000000000000000000000000000000815250905090565b60006109aa6109a3611c52565b8484611c5a565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6109ea9190613e3a565b633b9aca006109f99190613e85565b905090565b6000610a0b848484611e23565b610acc84610a17611c52565b610ac78560405180606001604052806028815260200161487d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a7d611c52565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276b9092919063ffffffff16565b611c5a565b600190509392505050565b601b5481565b60006009905090565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c8060000154908060010154905082565b610b26611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90613c41565b60405180910390fd5b60005b82829050811015610c4a5760126000848484818110610bd857610bd7613c61565b5b9050602002016020810190610bed91906139fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080610c4290613cbf565b915050610bb6565b505050565b610c57611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb90613c41565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d47611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90613c41565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e32611c52565b73ffffffffffffffffffffffffffffffffffffffff161480610ea85750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e90611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f075750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eef611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f665750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4e611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b610f6f57600080fd5b6000479050610f7d816127cf565b50565b6000610fca600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a25565b9050919050565b610fd9611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d90613c41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61112c611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090613c41565b60405180910390fd5b8060198190555050565b60195481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611212611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690613c41565b60405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b601a5481565b60606040518060400160405280600481526020017f2442444500000000000000000000000000000000000000000000000000000000815250905090565b611307611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90613c41565b60405180910390fd5b80601b8190555050565b6113a6611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90613c41565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611469611462611c52565b8484611e23565b6001905092915050565b61147b611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90613c41565b60405180910390fd5b60005b828290508110156115a85760016012600085858581811061152f5761152e613c61565b5b905060200201602081019061154491906139fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115a090613cbf565b91505061150b565b505050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661162e611c52565b73ffffffffffffffffffffffffffffffffffffffff1614806116a45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661168c611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b806117035750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116eb611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b806117625750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174a611c52565b73ffffffffffffffffffffffffffffffffffffffff16145b61176b57600080fd5b600061177630610f80565b905061178181612a93565b50565b61178c611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613c41565b60405180910390fd5b60005b838390508110156118b857816005600086868581811061183f5761183e613c61565b5b905060200201602081019061185491906139fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806118b090613cbf565b91505061181c565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61194d611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613c41565b60405180910390fd5b80601a8190555050565b6119ec611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090613c41565b60405180910390fd5b81601c6000018190555080601c600101819055505050565b611a99611c52565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90613c41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613f51565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc090613fe3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90614075565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e16919061385b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8990614107565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef890614199565b60405180910390fd5b60008111611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b9061422b565b60405180910390fd5b611f4c6111e1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fba5750611f8a6111e1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120105750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120665750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561246a57601860149054906101000a900460ff1661210c57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661210b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612102906142bd565b60405180910390fd5b5b601954811115612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890614329565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121f55750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b906143bb565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122e157601a548161229684610f80565b6122a091906143db565b106122e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d7906144a3565b60405180910390fd5b5b60006122ec30610f80565b90506000601b54821015905060195482106123075760195491505b8080156123215750601860159054906101000a900460ff16155b801561237b5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123935750601860169054906101000a900460ff165b80156123e95750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561243f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124675761244d82612a93565b6000479050600081111561246557612464476127cf565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125115750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125c45750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125c35750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125d25760009050612759565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561267d5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561269557600854600c81905550600954600d819055505b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127405750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561275857600a54600c81905550600b54600d819055505b5b61276584848484612d0c565b50505050565b60008383111582906127b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127aa9190613704565b60405180910390fd5b50600083856127c291906144c3565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055506000819050600061281c606461280e601c6000015485612d3990919063ffffffff16565b612db390919063ffffffff16565b9050600061285e60036128506064612842601c6001015488612d3990919063ffffffff16565b612db390919063ffffffff16565b612db390919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156128c8573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612931573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561299a573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a03573d6000803e3d6000fd5b505050506000601860156101000a81548160ff02191690831515021790555050565b6000600654821115612a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6390614569565b60405180910390fd5b6000612a76612dfd565b9050612a8b8184612db390919063ffffffff16565b915050919050565b6001601860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612acb57612aca613492565b5b604051908082528060200260200182016040528015612af95781602001602082028036833780820191505090505b5090503081600081518110612b1157612b10613c61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdc919061459e565b81600181518110612bf057612bef613c61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c5730601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c5a565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cbb9594939291906146c4565b600060405180830381600087803b158015612cd557600080fd5b505af1158015612ce9573d6000803e3d6000fd5b50505050506000601860156101000a81548160ff02191690831515021790555050565b80612d1a57612d19612e28565b5b612d25848484612e65565b80612d3357612d32613030565b5b50505050565b6000808303612d4b5760009050612dad565b60008284612d599190613e85565b9050828482612d68919061474d565b14612da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9f906147f0565b60405180910390fd5b809150505b92915050565b6000612df583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613044565b905092915050565b6000806000612e0a6130a7565b91509150612e218183612db390919063ffffffff16565b9250505090565b6000600c54148015612e3c57506000600d54145b612e6357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612e7787613142565b955095509550955095509550612ed586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131aa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f6a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131f490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fb681613252565b612fc0848361330f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161301d919061385b565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000808311829061308b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130829190613704565b60405180910390fd5b506000838561309a919061474d565b9050809150509392505050565b6000806000600654905060006009600a6130c19190613e3a565b633b9aca006130d09190613e85565b90506131036009600a6130e39190613e3a565b633b9aca006130f29190613e85565b600654612db390919063ffffffff16565b821015613135576006546009600a61311b9190613e3a565b633b9aca0061312a9190613e85565b93509350505061313e565b81819350935050505b9091565b600080600080600080600080600061315f8a600c54600d54613349565b925092509250600061316f612dfd565b905060008060006131828e8787876133df565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006131ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061276b565b905092915050565b600080828461320391906143db565b905083811015613248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323f9061485c565b60405180910390fd5b8091505092915050565b600061325c612dfd565b905060006132738284612d3990919063ffffffff16565b90506132c781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131f490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613324826006546131aa90919063ffffffff16565b60068190555061333f816007546131f490919063ffffffff16565b6007819055505050565b6000806000806133756064613367888a612d3990919063ffffffff16565b612db390919063ffffffff16565b9050600061339f6064613391888b612d3990919063ffffffff16565b612db390919063ffffffff16565b905060006133c8826133ba858c6131aa90919063ffffffff16565b6131aa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806133f88589612d3990919063ffffffff16565b9050600061340f8689612d3990919063ffffffff16565b905060006134268789612d3990919063ffffffff16565b9050600061344f8261344185876131aa90919063ffffffff16565b6131aa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134ca82613481565b810181811067ffffffffffffffff821117156134e9576134e8613492565b5b80604052505050565b60006134fc613468565b905061350882826134c1565b919050565b600067ffffffffffffffff82111561352857613527613492565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135698261353e565b9050919050565b6135798161355e565b811461358457600080fd5b50565b60008135905061359681613570565b92915050565b60006135af6135aa8461350d565b6134f2565b905080838252602082019050602084028301858111156135d2576135d1613539565b5b835b818110156135fb57806135e78882613587565b8452602084019350506020810190506135d4565b5050509392505050565b600082601f83011261361a5761361961347c565b5b813561362a84826020860161359c565b91505092915050565b60006020828403121561364957613648613472565b5b600082013567ffffffffffffffff81111561366757613666613477565b5b61367384828501613605565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136b657808201518184015260208101905061369b565b838111156136c5576000848401525b50505050565b60006136d68261367c565b6136e08185613687565b93506136f0818560208601613698565b6136f981613481565b840191505092915050565b6000602082019050818103600083015261371e81846136cb565b905092915050565b6000819050919050565b61373981613726565b811461374457600080fd5b50565b60008135905061375681613730565b92915050565b6000806040838503121561377357613772613472565b5b600061378185828601613587565b925050602061379285828601613747565b9150509250929050565b60008115159050919050565b6137b18161379c565b82525050565b60006020820190506137cc60008301846137a8565b92915050565b6000819050919050565b60006137f76137f26137ed8461353e565b6137d2565b61353e565b9050919050565b6000613809826137dc565b9050919050565b600061381b826137fe565b9050919050565b61382b81613810565b82525050565b60006020820190506138466000830184613822565b92915050565b61385581613726565b82525050565b6000602082019050613870600083018461384c565b92915050565b60008060006060848603121561388f5761388e613472565b5b600061389d86828701613587565b93505060206138ae86828701613587565b92505060406138bf86828701613747565b9150509250925092565b600060ff82169050919050565b6138df816138c9565b82525050565b60006020820190506138fa60008301846138d6565b92915050565b6139098161355e565b82525050565b60006020820190506139246000830184613900565b92915050565b600060408201905061393f600083018561384c565b61394c602083018461384c565b9392505050565b600080fd5b60008083601f84011261396e5761396d61347c565b5b8235905067ffffffffffffffff81111561398b5761398a613953565b5b6020830191508360208202830111156139a7576139a6613539565b5b9250929050565b600080602083850312156139c5576139c4613472565b5b600083013567ffffffffffffffff8111156139e3576139e2613477565b5b6139ef85828601613958565b92509250509250929050565b600060208284031215613a1157613a10613472565b5b6000613a1f84828501613587565b91505092915050565b613a318161379c565b8114613a3c57600080fd5b50565b600081359050613a4e81613a28565b92915050565b600060208284031215613a6a57613a69613472565b5b6000613a7884828501613a3f565b91505092915050565b600060208284031215613a9757613a96613472565b5b6000613aa584828501613747565b91505092915050565b60008060008060808587031215613ac857613ac7613472565b5b6000613ad687828801613747565b9450506020613ae787828801613747565b9350506040613af887828801613747565b9250506060613b0987828801613747565b91505092959194509250565b600080600060408486031215613b2e57613b2d613472565b5b600084013567ffffffffffffffff811115613b4c57613b4b613477565b5b613b5886828701613958565b93509350506020613b6b86828701613a3f565b9150509250925092565b60008060408385031215613b8c57613b8b613472565b5b6000613b9a85828601613587565b9250506020613bab85828601613587565b9150509250929050565b60008060408385031215613bcc57613bcb613472565b5b6000613bda85828601613747565b9250506020613beb85828601613747565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c2b602083613687565b9150613c3682613bf5565b602082019050919050565b60006020820190508181036000830152613c5a81613c1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cca82613726565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cfc57613cfb613c90565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613d5e57808604811115613d3a57613d39613c90565b5b6001851615613d495780820291505b8081029050613d5785613d07565b9450613d1e565b94509492505050565b600082613d775760019050613e33565b81613d855760009050613e33565b8160018114613d9b5760028114613da557613dd4565b6001915050613e33565b60ff841115613db757613db6613c90565b5b8360020a915084821115613dce57613dcd613c90565b5b50613e33565b5060208310610133831016604e8410600b8410161715613e095782820a905083811115613e0457613e03613c90565b5b613e33565b613e168484846001613d14565b92509050818404811115613e2d57613e2c613c90565b5b81810290505b9392505050565b6000613e4582613726565b9150613e50836138c9565b9250613e7d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613d67565b905092915050565b6000613e9082613726565b9150613e9b83613726565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ed457613ed3613c90565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f3b602683613687565b9150613f4682613edf565b604082019050919050565b60006020820190508181036000830152613f6a81613f2e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fcd602483613687565b9150613fd882613f71565b604082019050919050565b60006020820190508181036000830152613ffc81613fc0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061405f602283613687565b915061406a82614003565b604082019050919050565b6000602082019050818103600083015261408e81614052565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140f1602583613687565b91506140fc82614095565b604082019050919050565b60006020820190508181036000830152614120816140e4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614183602383613687565b915061418e82614127565b604082019050919050565b600060208201905081810360008301526141b281614176565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614215602983613687565b9150614220826141b9565b604082019050919050565b6000602082019050818103600083015261424481614208565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006142a7603f83613687565b91506142b28261424b565b604082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000614313601c83613687565b915061431e826142dd565b602082019050919050565b6000602082019050818103600083015261434281614306565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006143a5602383613687565b91506143b082614349565b604082019050919050565b600060208201905081810360008301526143d481614398565b9050919050565b60006143e682613726565b91506143f183613726565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561442657614425613c90565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061448d602383613687565b915061449882614431565b604082019050919050565b600060208201905081810360008301526144bc81614480565b9050919050565b60006144ce82613726565b91506144d983613726565b9250828210156144ec576144eb613c90565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614553602a83613687565b915061455e826144f7565b604082019050919050565b6000602082019050818103600083015261458281614546565b9050919050565b60008151905061459881613570565b92915050565b6000602082840312156145b4576145b3613472565b5b60006145c284828501614589565b91505092915050565b6000819050919050565b60006145f06145eb6145e6846145cb565b6137d2565b613726565b9050919050565b614600816145d5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61463b8161355e565b82525050565b600061464d8383614632565b60208301905092915050565b6000602082019050919050565b600061467182614606565b61467b8185614611565b935061468683614622565b8060005b838110156146b757815161469e8882614641565b97506146a983614659565b92505060018101905061468a565b5085935050505092915050565b600060a0820190506146d9600083018861384c565b6146e660208301876145f7565b81810360408301526146f88186614666565b90506147076060830185613900565b614714608083018461384c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061475882613726565b915061476383613726565b9250826147735761477261471e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006147da602183613687565b91506147e58261477e565b604082019050919050565b60006020820190508181036000830152614809816147cd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614846601b83613687565b915061485182614810565b602082019050919050565b6000602082019050818103600083015261487581614839565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a39917eef0099d9d9d2cd476afec02f20aadb8670b991303baa57106e2a1563564736f6c634300080e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002fd2c31fe8f0d34001547ea2f0d64253dbbc461f000000000000000000000000540b6c092664d85dc9b7284ab10013976c2d920f00000000000000000000000076d136de35ac07c328be0031fb7fb11564a9a2c8000000000000000000000000229234cdfa027e4b5b247c899377787e736600a1
-----Decoded View---------------
Arg [0] : marketingAddr (address): 0x2fd2c31fE8f0D34001547Ea2f0D64253DbBC461F
Arg [1] : devFeeAddr1 (address): 0x540B6C092664d85DC9B7284ab10013976c2D920f
Arg [2] : devFeeAddr2 (address): 0x76D136de35aC07c328bE0031Fb7fB11564a9a2c8
Arg [3] : devFeeAddr3 (address): 0x229234cdFa027e4B5B247C899377787e736600A1
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000002fd2c31fe8f0d34001547ea2f0d64253dbbc461f
Arg [1] : 000000000000000000000000540b6c092664d85dc9b7284ab10013976c2d920f
Arg [2] : 00000000000000000000000076d136de35ac07c328be0031fb7fb11564a9a2c8
Arg [3] : 000000000000000000000000229234cdfa027e4b5b247c899377787e736600a1
Deployed Bytecode Sourcemap
4067:15242:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13886:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7136:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8061:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5435:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7413:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8262:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5749:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7322:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5483:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5906:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;19110:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14063:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18286:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13581:297;;;;;;;;;;;;;:::i;:::-;;7516:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1554:148;;;;;;;;;;;;;:::i;:::-;;18426:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5625:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5178:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1340:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13166:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5686:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7227:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18095:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17752:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7662:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18907:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5228:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5134:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13275:298;;;;;;;;;;;;;:::i;:::-;;18665:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7869:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18542:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15071:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1710:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13886:169;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13962:9:::1;13957:91;13981:5;:12;13977:1;:16;13957:91;;;14032:4;14015;:14;14020:5;14026:1;14020:8;;;;;;;;:::i;:::-;;;;;;;;14015:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13995:3;;;;;:::i;:::-;;;;13957:91;;;;13886:169:::0;:::o;7136:83::-;7173:13;7206:5;;;;;;;;;;;;;;;;;7199:12;;7136:83;:::o;8061:193::-;8163:4;8185:39;8194:12;:10;:12::i;:::-;8208:7;8217:6;8185:8;:39::i;:::-;8242:4;8235:11;;8061:193;;;;:::o;5435:41::-;;;;;;;;;;;;;:::o;7413:95::-;7466:7;4300:1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;7486:14;;7413:95;:::o;8262:446::-;8394:4;8411:36;8421:6;8429:9;8440:6;8411:9;:36::i;:::-;8458:220;8481:6;8502:12;:10;:12::i;:::-;8529:138;8585:6;8529:138;;;;;;;;;;;;;;;;;:11;:19;8541:6;8529:19;;;;;;;;;;;;;;;:33;8549:12;:10;:12::i;:::-;8529:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8458:8;:220::i;:::-;8696:4;8689:11;;8262:446;;;;;:::o;5749:59::-;;;;:::o;7322:83::-;7363:5;4300:1;7381:16;;7322:83;:::o;5483:28::-;;;;;;;;;;;;;:::o;5906:32::-;;;;;;;;;;;;;;:::o;19110:196::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19197:9:::1;19193:106;19216:8;;:15;;19212:1;:19;19193:106;;;19265:9;:22;19275:8;;19284:1;19275:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19265:22;;;;;;;;;;;;;;;;19258:29;;;;;;;;;;;19233:3;;;;;:::i;:::-;;;;19193:106;;;;19110:196:::0;;:::o;14063:92::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14142:5:::1;14127:4;:12;14132:6;14127:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14063:92:::0;:::o;18286:101::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18367:12:::1;18353:11;;:26;;;;;;;;;;;;;;;;;;18286:101:::0;:::o;13581:297::-;13647:14;;;;;;;;;;;13631:30;;:12;:10;:12::i;:::-;:30;;;:66;;;;13681:16;;;;;;;;;;;13665:32;;:12;:10;:12::i;:::-;:32;;;13631:66;:100;;;;13717:14;;;;;;;;;;;13701:30;;:12;:10;:12::i;:::-;:30;;;13631:100;:134;;;;13751:14;;;;;;;;;;;13735:30;;:12;:10;:12::i;:::-;:30;;;13631:134;13623:143;;;;;;13777:26;13806:21;13777:50;;13838:32;13851:18;13838:12;:32::i;:::-;13612:266;13581:297::o;7516:138::-;7582:7;7609:37;7629:7;:16;7637:7;7629:16;;;;;;;;;;;;;;;;7609:19;:37::i;:::-;7602:44;;7516:138;;;:::o;1554:148::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1661:1:::1;1624:40;;1645:6;::::0;::::1;;;;;;;;1624:40;;;;;;;;;;;;1692:1;1675:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1554:148::o:0;18426:108::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18515:11:::1;18500:12;:26;;;;18426:108:::0;:::o;5625:54::-;;;;:::o;5178:43::-;;;;;;;;;;;;;;;;;:::o;1340:79::-;1378:7;1405:6;;;;;;;;;;;1398:13;;1340:79;:::o;13166:101::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13247:12:::1;13233:11;;:26;;;;;;;;;;;;;;;;;;13166:101:::0;:::o;5686:56::-;;;;:::o;7227:87::-;7266:13;7299:7;;;;;;;;;;;;;;;;;7292:14;;7227:87;:::o;18095:139::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18208:18:::1;18186:19;:40;;;;18095:139:::0;:::o;17752:291::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17903:13:::1;17886:14;:30;;;;17945:14;17927:15;:32;;;;17985:11;17970:12;:26;;;;18023:12;18007:13;:28;;;;17752:291:::0;;;;:::o;7662:199::-;7767:4;7789:42;7799:12;:10;:12::i;:::-;7813:9;7824:6;7789:9;:42::i;:::-;7849:4;7842:11;;7662:199;;;;:::o;18907:195::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18993:9:::1;18989:106;19012:8;;:15;;19008:1;:19;18989:106;;;19079:4;19054:9;:22;19064:8;;19073:1;19064:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19054:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19029:3;;;;;:::i;:::-;;;;18989:106;;;;18907:195:::0;;:::o;5228:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5134:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13275:298::-;13341:14;;;;;;;;;;;13325:30;;:12;:10;:12::i;:::-;:30;;;:66;;;;13375:16;;;;;;;;;;;13359:32;;:12;:10;:12::i;:::-;:32;;;13325:66;:100;;;;13411:14;;;;;;;;;;;13395:30;;:12;:10;:12::i;:::-;:30;;;13325:100;:134;;;;13445:14;;;;;;;;;;;13429:30;;:12;:10;:12::i;:::-;:30;;;13325:134;13317:143;;;;;;13471:23;13497:24;13515:4;13497:9;:24::i;:::-;13471:50;;13532:33;13549:15;13532:16;:33::i;:::-;13306:267;13275:298::o;18665:234::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18782:9:::1;18778:114;18801:8;;:15;;18797:1;:19;18778:114;;;18872:8;18838:18;:31;18857:8;;18866:1;18857:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18838:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18818:3;;;;;:::i;:::-;;;;18778:114;;;;18665:234:::0;;;:::o;7869:184::-;7986:7;8018:11;:18;8030:5;8018:18;;;;;;;;;;;;;;;:27;8037:7;8018:27;;;;;;;;;;;;;;;;8011:34;;7869:184;;;;:::o;18542:115::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18636:13:::1;18619:14;:30;;;;18542:115:::0;:::o;15071:177::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15192:9:::1;15167:12;:22;;:34;;;;15234:6;15212:12;:19;;:28;;;;15071:177:::0;;:::o;1710:244::-;1477:12;:10;:12::i;:::-;1467:22;;:6;;;;;;;;;;:22;;;1459:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1819:1:::1;1799:22;;:8;:22;;::::0;1791:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1909:8;1880:38;;1901:6;::::0;::::1;;;;;;;;1880:38;;;;;;;;;;;;1938:8;1929:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1710:244:::0;:::o;99:98::-;152:7;179:10;172:17;;99:98;:::o;9399:369::-;9543:1;9526:19;;:5;:19;;;9518:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9624:1;9605:21;;:7;:21;;;9597:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9706:6;9676:11;:18;9688:5;9676:18;;;;;;;;;;;;;;;:27;9695:7;9676:27;;;;;;;;;;;;;;;:36;;;;9744:7;9728:32;;9737:5;9728:32;;;9753:6;9728:32;;;;;;:::i;:::-;;;;;;;;9399:369;;;:::o;9776:2368::-;9914:1;9898:18;;:4;:18;;;9890:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9991:1;9977:16;;:2;:16;;;9969:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10061:1;10052:6;:10;10044:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10133:7;:5;:7::i;:::-;10125:15;;:4;:15;;;;:32;;;;;10150:7;:5;:7::i;:::-;10144:13;;:2;:13;;;;10125:32;:52;;;;;10162:9;:15;10172:4;10162:15;;;;;;;;;;;;;;;;;;;;;;;;;10161:16;10125:52;:70;;;;;10182:9;:13;10192:2;10182:13;;;;;;;;;;;;;;;;;;;;;;;;;10181:14;10125:70;10121:1297;;;10252:11;;;;;;;;;;;10247:144;;10292:9;:15;10302:4;10292:15;;;;;;;;;;;;;;;;;;;;;;;;;10284:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10247:144;10425:12;;10415:6;:22;;10407:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10494:4;:10;10499:4;10494:10;;;;;;;;;;;;;;;;;;;;;;;;;10493:11;:24;;;;;10509:4;:8;10514:2;10509:8;;;;;;;;;;;;;;;;;;;;;;;;;10508:9;10493:24;10485:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10583:13;;;;;;;;;;;10577:19;;:2;:19;;;10574:146;;10650:14;;10641:6;10625:13;10635:2;10625:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10617:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10574:146;10736:28;10767:24;10785:4;10767:9;:24::i;:::-;10736:55;;10806:12;10845:19;;10821:20;:43;;10806:58;;10908:12;;10884:20;:36;10881:124;;10977:12;;10954:35;;10881:124;11025:7;:18;;;;;11037:6;;;;;;;;;;;11036:7;11025:18;:43;;;;;11055:13;;;;;;;;;;;11047:21;;:4;:21;;;;11025:43;:58;;;;;11072:11;;;;;;;;;;;11025:58;:87;;;;;11088:18;:24;11107:4;11088:24;;;;;;;;;;;;;;;;;;;;;;;;;11087:25;11025:87;:114;;;;;11117:18;:22;11136:2;11117:22;;;;;;;;;;;;;;;;;;;;;;;;;11116:23;11025:114;11021:386;;;11160:38;11177:20;11160:16;:38::i;:::-;11217:26;11246:21;11217:50;;11311:1;11290:18;:22;11286:106;;;11337:35;11350:21;11337:12;:35::i;:::-;11286:106;11141:266;11021:386;10197:1221;;10121:1297;11430:12;11445:4;11430:19;;11494:18;:24;11513:4;11494:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11522:18;:22;11541:2;11522:22;;;;;;;;;;;;;;;;;;;;;;;;;11494:50;11493:102;;;;11558:13;;;;;;;;;;;11550:21;;:4;:21;;;;:44;;;;;11581:13;;;;;;;;;;;11575:19;;:2;:19;;;;11550:44;11493:102;11489:594;;;11622:5;11612:15;;11489:594;;;11705:13;;;;;;;;;;;11697:21;;:4;:21;;;:55;;;;;11736:15;;;;;;;;;;;11722:30;;:2;:30;;;;11697:55;11694:162;;;11785:14;;11773:9;:26;;;;11828:12;;11818:7;:22;;;;11694:162;11915:13;;;;;;;;;;;11909:19;;:2;:19;;;:55;;;;;11948:15;;;;;;;;;;;11932:32;;:4;:32;;;;11909:55;11905:165;;;11997:15;;11985:9;:27;;;;12041:13;;12031:7;:23;;;;11905:165;11489:594;12095:41;12110:4;12116:2;12120:6;12128:7;12095:14;:41::i;:::-;9879:2265;9776:2368;;;:::o;2318:224::-;2438:7;2471:1;2466;:6;;2474:12;2458:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2498:9;2514:1;2510;:5;;;;:::i;:::-;2498:17;;2533:1;2526:8;;;2318:224;;;;;:::o;12643:515::-;6041:4;6032:6;;:13;;;;;;;;;;;;;;;;;;12712:23:::1;12738:6;12712:32;;12755:22;12780:52;12828:3;12780:43;12800:12;:22;;;12780:15;:19;;:43;;;;:::i;:::-;:47;;:52;;;;:::i;:::-;12755:77;;12843:19;12865:56;12919:1;12865:49;12910:3;12865:40;12885:12;:19;;;12865:15;:19;;:40;;;;:::i;:::-;:44;;:49;;;;:::i;:::-;:53;;:56;;;;:::i;:::-;12843:78;;12940:16;;;;;;;;;;;12932:34;;:50;12967:14;12932:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13001:14;;;;;;;;;;;12993:32;;:45;13026:11;12993:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13057:14;;;;;;;;;;;13049:32;;:45;13082:11;13049:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13113:14;;;;;;;;;;;13105:32;;:45;13138:11;13105:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12701:457;;;6077:5:::0;6068:6;;:14;;;;;;;;;;;;;;;;;;12643:515;:::o;8716:323::-;8811:7;8869;;8858;:18;;8836:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8957:19;8979:10;:8;:10::i;:::-;8957:32;;9007:24;9019:11;9007:7;:11;;:24;;;;:::i;:::-;9000:31;;;8716:323;;;:::o;12152:483::-;6041:4;6032:6;;:13;;;;;;;;;;;;;;;;;;12230:21:::1;12268:1;12254:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12230:40;;12299:4;12281;12286:1;12281:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12325:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12315:4;12320:1;12315:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12358:62;12375:4;12390:15;;;;;;;;;;;12408:11;12358:8;:62::i;:::-;12431:15;;;;;;;;;;;:66;;;12512:11;12538:1;12554:4;12581;12601:15;12431:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12219:416;6077:5:::0;6068:6;;:14;;;;;;;;;;;;;;;;;;12152:483;:::o;14163:282::-;14319:7;14314:28;;14328:14;:12;:14::i;:::-;14314:28;14353:44;14371:6;14379:9;14390:6;14353:17;:44::i;:::-;14413:7;14408:29;;14422:15;:13;:15::i;:::-;14408:29;14163:282;;;;:::o;2550:246::-;2608:7;2637:1;2632;:6;2628:47;;2662:1;2655:8;;;;2628:47;2685:9;2701:1;2697;:5;;;;:::i;:::-;2685:17;;2730:1;2725;2721;:5;;;;:::i;:::-;:10;2713:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2787:1;2780:8;;;2550:246;;;;;:::o;2804:132::-;2862:7;2889:39;2893:1;2896;2889:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2882:46;;2804:132;;;;:::o;17315:164::-;17357:7;17378:15;17395;17414:19;:17;:19::i;:::-;17377:56;;;;17451:20;17463:7;17451;:11;;:20;;;;:::i;:::-;17444:27;;;;17315:164;:::o;9047:219::-;9107:1;9094:9;;:14;:30;;;;;9123:1;9112:7;;:12;9094:30;9126:7;9090:43;9165:9;;9145:17;:29;;;;9203:7;;9185:15;:25;;;;9235:1;9223:9;:13;;;;9257:1;9247:7;:11;;;;9047:219;:::o;14453:610::-;14600:15;14630:23;14668:12;14695:23;14733:12;14760:13;14787:19;14798:7;14787:10;:19::i;:::-;14585:221;;;;;;;;;;;;14835:28;14855:7;14835;:15;14843:6;14835:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14817:7;:15;14825:6;14817:15;;;;;;;;;;;;;;;:46;;;;14895:39;14918:15;14895:7;:18;14903:9;14895:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14874:7;:18;14882:9;14874:18;;;;;;;;;;;;;;;:60;;;;14945:16;14955:5;14945:9;:16::i;:::-;14972:23;14984:4;14990;14972:11;:23::i;:::-;15028:9;15011:44;;15020:6;15011:44;;;15039:15;15011:44;;;;;;:::i;:::-;;;;;;;;14574:489;;;;;;14453:610;;;:::o;9274:117::-;9330:17;;9318:9;:29;;;;9368:15;;9358:7;:25;;;;9274:117::o;2944:223::-;3064:7;3096:1;3092;:5;3099:12;3084:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3123:9;3139:1;3135;:5;;;;:::i;:::-;3123:17;;3158:1;3151:8;;;2944:223;;;;;:::o;17487:257::-;17538:7;17547;17567:15;17585:7;;17567:25;;17603:15;4300:1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;17603:25;;17653:20;4300:1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;17653:7;;:11;;:20;;;;:::i;:::-;17643:7;:30;17639:61;;;17683:7;;4300:1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;17675:25;;;;;;;;17639:61;17719:7;17728;17711:25;;;;;;17487:257;;;:::o;15673:615::-;15773:7;15795;15817;15839;15861;15883;15919:23;15944:12;15958:13;15988:40;16000:7;16009:9;;16020:7;;15988:11;:40::i;:::-;15918:110;;;;;;16039:19;16061:10;:8;:10::i;:::-;16039:32;;16083:15;16100:23;16125:12;16154:46;16166:7;16175:4;16181:5;16188:11;16154;:46::i;:::-;16082:118;;;;;;16219:7;16228:15;16245:4;16251:15;16268:4;16274:5;16211:69;;;;;;;;;;;;;;;;;;;15673:615;;;;;;;:::o;2174:136::-;2232:7;2259:43;2263:1;2266;2259:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2252:50;;2174:136;;;;:::o;1987:179::-;2045:7;2065:9;2081:1;2077;:5;;;;:::i;:::-;2065:17;;2106:1;2101;:6;;2093:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2157:1;2150:8;;;1987:179;;;;:::o;15256:211::-;15309:19;15331:10;:8;:10::i;:::-;15309:32;;15352:13;15368:22;15378:11;15368:5;:9;;:22;;;;:::i;:::-;15352:38;;15426:33;15453:5;15426:7;:22;15442:4;15426:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15401:7;:22;15417:4;15401:22;;;;;;;;;;;;;;;:58;;;;15298:169;;15256:211;:::o;15475:147::-;15553:17;15565:4;15553:7;;:11;;:17;;;;:::i;:::-;15543:7;:27;;;;15594:20;15609:4;15594:10;;:14;;:20;;;;:::i;:::-;15581:10;:33;;;;15475:147;;:::o;16296:469::-;16465:7;16487;16509;16544:12;16559:30;16585:3;16559:21;16571:8;16559:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16544:45;;16600:13;16616:28;16640:3;16616:19;16628:6;16616:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16600:44;;16655:23;16681:28;16703:5;16681:17;16693:4;16681:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16655:54;;16728:15;16745:4;16751:5;16720:37;;;;;;;;;16296:469;;;;;;;:::o;16773:534::-;16967:7;16989;17011;17046:15;17064:24;17076:11;17064:7;:11;;:24;;;;:::i;:::-;17046:42;;17099:12;17114:21;17123:11;17114:4;:8;;:21;;;;:::i;:::-;17099:36;;17146:13;17162:22;17172:11;17162:5;:9;;:22;;;;:::i;:::-;17146:38;;17195:23;17221:28;17243:5;17221:17;17233:4;17221:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17195:54;;17268:7;17277:15;17294:4;17260:39;;;;;;;;;;16773:534;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:332::-;9189:4;9227:2;9216:9;9212:18;9204:26;;9240:71;9308:1;9297:9;9293:17;9284:6;9240:71;:::i;:::-;9321:72;9389:2;9378:9;9374:18;9365:6;9321:72;:::i;:::-;9068:332;;;;;:::o;9406:117::-;9515:1;9512;9505:12;9546:568;9619:8;9629:6;9679:3;9672:4;9664:6;9660:17;9656:27;9646:122;;9687:79;;:::i;:::-;9646:122;9800:6;9787:20;9777:30;;9830:18;9822:6;9819:30;9816:117;;;9852:79;;:::i;:::-;9816:117;9966:4;9958:6;9954:17;9942:29;;10020:3;10012:4;10004:6;10000:17;9990:8;9986:32;9983:41;9980:128;;;10027:79;;:::i;:::-;9980:128;9546:568;;;;;:::o;10120:559::-;10206:6;10214;10263:2;10251:9;10242:7;10238:23;10234:32;10231:119;;;10269:79;;:::i;:::-;10231:119;10417:1;10406:9;10402:17;10389:31;10447:18;10439:6;10436:30;10433:117;;;10469:79;;:::i;:::-;10433:117;10582:80;10654:7;10645:6;10634:9;10630:22;10582:80;:::i;:::-;10564:98;;;;10360:312;10120:559;;;;;:::o;10685:329::-;10744:6;10793:2;10781:9;10772:7;10768:23;10764:32;10761:119;;;10799:79;;:::i;:::-;10761:119;10919:1;10944:53;10989:7;10980:6;10969:9;10965:22;10944:53;:::i;:::-;10934:63;;10890:117;10685:329;;;;:::o;11020:116::-;11090:21;11105:5;11090:21;:::i;:::-;11083:5;11080:32;11070:60;;11126:1;11123;11116:12;11070:60;11020:116;:::o;11142:133::-;11185:5;11223:6;11210:20;11201:29;;11239:30;11263:5;11239:30;:::i;:::-;11142:133;;;;:::o;11281:323::-;11337:6;11386:2;11374:9;11365:7;11361:23;11357:32;11354:119;;;11392:79;;:::i;:::-;11354:119;11512:1;11537:50;11579:7;11570:6;11559:9;11555:22;11537:50;:::i;:::-;11527:60;;11483:114;11281:323;;;;:::o;11610:329::-;11669:6;11718:2;11706:9;11697:7;11693:23;11689:32;11686:119;;;11724:79;;:::i;:::-;11686:119;11844:1;11869:53;11914:7;11905:6;11894:9;11890:22;11869:53;:::i;:::-;11859:63;;11815:117;11610:329;;;;:::o;11945:765::-;12031:6;12039;12047;12055;12104:3;12092:9;12083:7;12079:23;12075:33;12072:120;;;12111:79;;:::i;:::-;12072:120;12231:1;12256:53;12301:7;12292:6;12281:9;12277:22;12256:53;:::i;:::-;12246:63;;12202:117;12358:2;12384:53;12429:7;12420:6;12409:9;12405:22;12384:53;:::i;:::-;12374:63;;12329:118;12486:2;12512:53;12557:7;12548:6;12537:9;12533:22;12512:53;:::i;:::-;12502:63;;12457:118;12614:2;12640:53;12685:7;12676:6;12665:9;12661:22;12640:53;:::i;:::-;12630:63;;12585:118;11945:765;;;;;;;:::o;12716:698::-;12808:6;12816;12824;12873:2;12861:9;12852:7;12848:23;12844:32;12841:119;;;12879:79;;:::i;:::-;12841:119;13027:1;13016:9;13012:17;12999:31;13057:18;13049:6;13046:30;13043:117;;;13079:79;;:::i;:::-;13043:117;13192:80;13264:7;13255:6;13244:9;13240:22;13192:80;:::i;:::-;13174:98;;;;12970:312;13321:2;13347:50;13389:7;13380:6;13369:9;13365:22;13347:50;:::i;:::-;13337:60;;13292:115;12716:698;;;;;:::o;13420:474::-;13488:6;13496;13545:2;13533:9;13524:7;13520:23;13516:32;13513:119;;;13551:79;;:::i;:::-;13513:119;13671:1;13696:53;13741:7;13732:6;13721:9;13717:22;13696:53;:::i;:::-;13686:63;;13642:117;13798:2;13824:53;13869:7;13860:6;13849:9;13845:22;13824:53;:::i;:::-;13814:63;;13769:118;13420:474;;;;;:::o;13900:::-;13968:6;13976;14025:2;14013:9;14004:7;14000:23;13996:32;13993:119;;;14031:79;;:::i;:::-;13993:119;14151:1;14176:53;14221:7;14212:6;14201:9;14197:22;14176:53;:::i;:::-;14166:63;;14122:117;14278:2;14304:53;14349:7;14340:6;14329:9;14325:22;14304:53;:::i;:::-;14294:63;;14249:118;13900:474;;;;;:::o;14380:182::-;14520:34;14516:1;14508:6;14504:14;14497:58;14380:182;:::o;14568:366::-;14710:3;14731:67;14795:2;14790:3;14731:67;:::i;:::-;14724:74;;14807:93;14896:3;14807:93;:::i;:::-;14925:2;14920:3;14916:12;14909:19;;14568:366;;;:::o;14940:419::-;15106:4;15144:2;15133:9;15129:18;15121:26;;15193:9;15187:4;15183:20;15179:1;15168:9;15164:17;15157:47;15221:131;15347:4;15221:131;:::i;:::-;15213:139;;14940:419;;;:::o;15365:180::-;15413:77;15410:1;15403:88;15510:4;15507:1;15500:15;15534:4;15531:1;15524:15;15551:180;15599:77;15596:1;15589:88;15696:4;15693:1;15686:15;15720:4;15717:1;15710:15;15737:233;15776:3;15799:24;15817:5;15799:24;:::i;:::-;15790:33;;15845:66;15838:5;15835:77;15832:103;;15915:18;;:::i;:::-;15832:103;15962:1;15955:5;15951:13;15944:20;;15737:233;;;:::o;15976:102::-;16018:8;16065:5;16062:1;16058:13;16037:34;;15976:102;;;:::o;16084:848::-;16145:5;16152:4;16176:6;16167:15;;16200:5;16191:14;;16214:712;16235:1;16225:8;16222:15;16214:712;;;16330:4;16325:3;16321:14;16315:4;16312:24;16309:50;;;16339:18;;:::i;:::-;16309:50;16389:1;16379:8;16375:16;16372:451;;;16804:4;16797:5;16793:16;16784:25;;16372:451;16854:4;16848;16844:15;16836:23;;16884:32;16907:8;16884:32;:::i;:::-;16872:44;;16214:712;;;16084:848;;;;;;;:::o;16938:1073::-;16992:5;17183:8;17173:40;;17204:1;17195:10;;17206:5;;17173:40;17232:4;17222:36;;17249:1;17240:10;;17251:5;;17222:36;17318:4;17366:1;17361:27;;;;17402:1;17397:191;;;;17311:277;;17361:27;17379:1;17370:10;;17381:5;;;17397:191;17442:3;17432:8;17429:17;17426:43;;;17449:18;;:::i;:::-;17426:43;17498:8;17495:1;17491:16;17482:25;;17533:3;17526:5;17523:14;17520:40;;;17540:18;;:::i;:::-;17520:40;17573:5;;;17311:277;;17697:2;17687:8;17684:16;17678:3;17672:4;17669:13;17665:36;17647:2;17637:8;17634:16;17629:2;17623:4;17620:12;17616:35;17600:111;17597:246;;;17753:8;17747:4;17743:19;17734:28;;17788:3;17781:5;17778:14;17775:40;;;17795:18;;:::i;:::-;17775:40;17828:5;;17597:246;17868:42;17906:3;17896:8;17890:4;17887:1;17868:42;:::i;:::-;17853:57;;;;17942:4;17937:3;17933:14;17926:5;17923:25;17920:51;;;17951:18;;:::i;:::-;17920:51;18000:4;17993:5;17989:16;17980:25;;16938:1073;;;;;;:::o;18017:281::-;18075:5;18099:23;18117:4;18099:23;:::i;:::-;18091:31;;18143:25;18159:8;18143:25;:::i;:::-;18131:37;;18187:104;18224:66;18214:8;18208:4;18187:104;:::i;:::-;18178:113;;18017:281;;;;:::o;18304:348::-;18344:7;18367:20;18385:1;18367:20;:::i;:::-;18362:25;;18401:20;18419:1;18401:20;:::i;:::-;18396:25;;18589:1;18521:66;18517:74;18514:1;18511:81;18506:1;18499:9;18492:17;18488:105;18485:131;;;18596:18;;:::i;:::-;18485:131;18644:1;18641;18637:9;18626:20;;18304:348;;;;:::o;18658:225::-;18798:34;18794:1;18786:6;18782:14;18775:58;18867:8;18862:2;18854:6;18850:15;18843:33;18658:225;:::o;18889:366::-;19031:3;19052:67;19116:2;19111:3;19052:67;:::i;:::-;19045:74;;19128:93;19217:3;19128:93;:::i;:::-;19246:2;19241:3;19237:12;19230:19;;18889:366;;;:::o;19261:419::-;19427:4;19465:2;19454:9;19450:18;19442:26;;19514:9;19508:4;19504:20;19500:1;19489:9;19485:17;19478:47;19542:131;19668:4;19542:131;:::i;:::-;19534:139;;19261:419;;;:::o;19686:223::-;19826:34;19822:1;19814:6;19810:14;19803:58;19895:6;19890:2;19882:6;19878:15;19871:31;19686:223;:::o;19915:366::-;20057:3;20078:67;20142:2;20137:3;20078:67;:::i;:::-;20071:74;;20154:93;20243:3;20154:93;:::i;:::-;20272:2;20267:3;20263:12;20256:19;;19915:366;;;:::o;20287:419::-;20453:4;20491:2;20480:9;20476:18;20468:26;;20540:9;20534:4;20530:20;20526:1;20515:9;20511:17;20504:47;20568:131;20694:4;20568:131;:::i;:::-;20560:139;;20287:419;;;:::o;20712:221::-;20852:34;20848:1;20840:6;20836:14;20829:58;20921:4;20916:2;20908:6;20904:15;20897:29;20712:221;:::o;20939:366::-;21081:3;21102:67;21166:2;21161:3;21102:67;:::i;:::-;21095:74;;21178:93;21267:3;21178:93;:::i;:::-;21296:2;21291:3;21287:12;21280:19;;20939:366;;;:::o;21311:419::-;21477:4;21515:2;21504:9;21500:18;21492:26;;21564:9;21558:4;21554:20;21550:1;21539:9;21535:17;21528:47;21592:131;21718:4;21592:131;:::i;:::-;21584:139;;21311:419;;;:::o;21736:224::-;21876:34;21872:1;21864:6;21860:14;21853:58;21945:7;21940:2;21932:6;21928:15;21921:32;21736:224;:::o;21966:366::-;22108:3;22129:67;22193:2;22188:3;22129:67;:::i;:::-;22122:74;;22205:93;22294:3;22205:93;:::i;:::-;22323:2;22318:3;22314:12;22307:19;;21966:366;;;:::o;22338:419::-;22504:4;22542:2;22531:9;22527:18;22519:26;;22591:9;22585:4;22581:20;22577:1;22566:9;22562:17;22555:47;22619:131;22745:4;22619:131;:::i;:::-;22611:139;;22338:419;;;:::o;22763:222::-;22903:34;22899:1;22891:6;22887:14;22880:58;22972:5;22967:2;22959:6;22955:15;22948:30;22763:222;:::o;22991:366::-;23133:3;23154:67;23218:2;23213:3;23154:67;:::i;:::-;23147:74;;23230:93;23319:3;23230:93;:::i;:::-;23348:2;23343:3;23339:12;23332:19;;22991:366;;;:::o;23363:419::-;23529:4;23567:2;23556:9;23552:18;23544:26;;23616:9;23610:4;23606:20;23602:1;23591:9;23587:17;23580:47;23644:131;23770:4;23644:131;:::i;:::-;23636:139;;23363:419;;;:::o;23788:228::-;23928:34;23924:1;23916:6;23912:14;23905:58;23997:11;23992:2;23984:6;23980:15;23973:36;23788:228;:::o;24022:366::-;24164:3;24185:67;24249:2;24244:3;24185:67;:::i;:::-;24178:74;;24261:93;24350:3;24261:93;:::i;:::-;24379:2;24374:3;24370:12;24363:19;;24022:366;;;:::o;24394:419::-;24560:4;24598:2;24587:9;24583:18;24575:26;;24647:9;24641:4;24637:20;24633:1;24622:9;24618:17;24611:47;24675:131;24801:4;24675:131;:::i;:::-;24667:139;;24394:419;;;:::o;24819:250::-;24959:34;24955:1;24947:6;24943:14;24936:58;25028:33;25023:2;25015:6;25011:15;25004:58;24819:250;:::o;25075:366::-;25217:3;25238:67;25302:2;25297:3;25238:67;:::i;:::-;25231:74;;25314:93;25403:3;25314:93;:::i;:::-;25432:2;25427:3;25423:12;25416:19;;25075:366;;;:::o;25447:419::-;25613:4;25651:2;25640:9;25636:18;25628:26;;25700:9;25694:4;25690:20;25686:1;25675:9;25671:17;25664:47;25728:131;25854:4;25728:131;:::i;:::-;25720:139;;25447:419;;;:::o;25872:178::-;26012:30;26008:1;26000:6;25996:14;25989:54;25872:178;:::o;26056:366::-;26198:3;26219:67;26283:2;26278:3;26219:67;:::i;:::-;26212:74;;26295:93;26384:3;26295:93;:::i;:::-;26413:2;26408:3;26404:12;26397:19;;26056:366;;;:::o;26428:419::-;26594:4;26632:2;26621:9;26617:18;26609:26;;26681:9;26675:4;26671:20;26667:1;26656:9;26652:17;26645:47;26709:131;26835:4;26709:131;:::i;:::-;26701:139;;26428:419;;;:::o;26853:222::-;26993:34;26989:1;26981:6;26977:14;26970:58;27062:5;27057:2;27049:6;27045:15;27038:30;26853:222;:::o;27081:366::-;27223:3;27244:67;27308:2;27303:3;27244:67;:::i;:::-;27237:74;;27320:93;27409:3;27320:93;:::i;:::-;27438:2;27433:3;27429:12;27422:19;;27081:366;;;:::o;27453:419::-;27619:4;27657:2;27646:9;27642:18;27634:26;;27706:9;27700:4;27696:20;27692:1;27681:9;27677:17;27670:47;27734:131;27860:4;27734:131;:::i;:::-;27726:139;;27453:419;;;:::o;27878:305::-;27918:3;27937:20;27955:1;27937:20;:::i;:::-;27932:25;;27971:20;27989:1;27971:20;:::i;:::-;27966:25;;28125:1;28057:66;28053:74;28050:1;28047:81;28044:107;;;28131:18;;:::i;:::-;28044:107;28175:1;28172;28168:9;28161:16;;27878:305;;;;:::o;28189:222::-;28329:34;28325:1;28317:6;28313:14;28306:58;28398:5;28393:2;28385:6;28381:15;28374:30;28189:222;:::o;28417:366::-;28559:3;28580:67;28644:2;28639:3;28580:67;:::i;:::-;28573:74;;28656:93;28745:3;28656:93;:::i;:::-;28774:2;28769:3;28765:12;28758:19;;28417:366;;;:::o;28789:419::-;28955:4;28993:2;28982:9;28978:18;28970:26;;29042:9;29036:4;29032:20;29028:1;29017:9;29013:17;29006:47;29070:131;29196:4;29070:131;:::i;:::-;29062:139;;28789:419;;;:::o;29214:191::-;29254:4;29274:20;29292:1;29274:20;:::i;:::-;29269:25;;29308:20;29326:1;29308:20;:::i;:::-;29303:25;;29347:1;29344;29341:8;29338:34;;;29352:18;;:::i;:::-;29338:34;29397:1;29394;29390:9;29382:17;;29214:191;;;;:::o;29411:229::-;29551:34;29547:1;29539:6;29535:14;29528:58;29620:12;29615:2;29607:6;29603:15;29596:37;29411:229;:::o;29646:366::-;29788:3;29809:67;29873:2;29868:3;29809:67;:::i;:::-;29802:74;;29885:93;29974:3;29885:93;:::i;:::-;30003:2;29998:3;29994:12;29987:19;;29646:366;;;:::o;30018:419::-;30184:4;30222:2;30211:9;30207:18;30199:26;;30271:9;30265:4;30261:20;30257:1;30246:9;30242:17;30235:47;30299:131;30425:4;30299:131;:::i;:::-;30291:139;;30018:419;;;:::o;30443:143::-;30500:5;30531:6;30525:13;30516:22;;30547:33;30574:5;30547:33;:::i;:::-;30443:143;;;;:::o;30592:351::-;30662:6;30711:2;30699:9;30690:7;30686:23;30682:32;30679:119;;;30717:79;;:::i;:::-;30679:119;30837:1;30862:64;30918:7;30909:6;30898:9;30894:22;30862:64;:::i;:::-;30852:74;;30808:128;30592:351;;;;:::o;30949:85::-;30994:7;31023:5;31012:16;;30949:85;;;:::o;31040:158::-;31098:9;31131:61;31149:42;31158:32;31184:5;31158:32;:::i;:::-;31149:42;:::i;:::-;31131:61;:::i;:::-;31118:74;;31040:158;;;:::o;31204:147::-;31299:45;31338:5;31299:45;:::i;:::-;31294:3;31287:58;31204:147;;:::o;31357:114::-;31424:6;31458:5;31452:12;31442:22;;31357:114;;;:::o;31477:184::-;31576:11;31610:6;31605:3;31598:19;31650:4;31645:3;31641:14;31626:29;;31477:184;;;;:::o;31667:132::-;31734:4;31757:3;31749:11;;31787:4;31782:3;31778:14;31770:22;;31667:132;;;:::o;31805:108::-;31882:24;31900:5;31882:24;:::i;:::-;31877:3;31870:37;31805:108;;:::o;31919:179::-;31988:10;32009:46;32051:3;32043:6;32009:46;:::i;:::-;32087:4;32082:3;32078:14;32064:28;;31919:179;;;;:::o;32104:113::-;32174:4;32206;32201:3;32197:14;32189:22;;32104:113;;;:::o;32253:732::-;32372:3;32401:54;32449:5;32401:54;:::i;:::-;32471:86;32550:6;32545:3;32471:86;:::i;:::-;32464:93;;32581:56;32631:5;32581:56;:::i;:::-;32660:7;32691:1;32676:284;32701:6;32698:1;32695:13;32676:284;;;32777:6;32771:13;32804:63;32863:3;32848:13;32804:63;:::i;:::-;32797:70;;32890:60;32943:6;32890:60;:::i;:::-;32880:70;;32736:224;32723:1;32720;32716:9;32711:14;;32676:284;;;32680:14;32976:3;32969:10;;32377:608;;;32253:732;;;;:::o;32991:831::-;33254:4;33292:3;33281:9;33277:19;33269:27;;33306:71;33374:1;33363:9;33359:17;33350:6;33306:71;:::i;:::-;33387:80;33463:2;33452:9;33448:18;33439:6;33387:80;:::i;:::-;33514:9;33508:4;33504:20;33499:2;33488:9;33484:18;33477:48;33542:108;33645:4;33636:6;33542:108;:::i;:::-;33534:116;;33660:72;33728:2;33717:9;33713:18;33704:6;33660:72;:::i;:::-;33742:73;33810:3;33799:9;33795:19;33786:6;33742:73;:::i;:::-;32991:831;;;;;;;;:::o;33828:180::-;33876:77;33873:1;33866:88;33973:4;33970:1;33963:15;33997:4;33994:1;33987:15;34014:185;34054:1;34071:20;34089:1;34071:20;:::i;:::-;34066:25;;34105:20;34123:1;34105:20;:::i;:::-;34100:25;;34144:1;34134:35;;34149:18;;:::i;:::-;34134:35;34191:1;34188;34184:9;34179:14;;34014:185;;;;:::o;34205:220::-;34345:34;34341:1;34333:6;34329:14;34322:58;34414:3;34409:2;34401:6;34397:15;34390:28;34205:220;:::o;34431:366::-;34573:3;34594:67;34658:2;34653:3;34594:67;:::i;:::-;34587:74;;34670:93;34759:3;34670:93;:::i;:::-;34788:2;34783:3;34779:12;34772:19;;34431:366;;;:::o;34803:419::-;34969:4;35007:2;34996:9;34992:18;34984:26;;35056:9;35050:4;35046:20;35042:1;35031:9;35027:17;35020:47;35084:131;35210:4;35084:131;:::i;:::-;35076:139;;34803:419;;;:::o;35228:177::-;35368:29;35364:1;35356:6;35352:14;35345:53;35228:177;:::o;35411:366::-;35553:3;35574:67;35638:2;35633:3;35574:67;:::i;:::-;35567:74;;35650:93;35739:3;35650:93;:::i;:::-;35768:2;35763:3;35759:12;35752:19;;35411:366;;;:::o;35783:419::-;35949:4;35987:2;35976:9;35972:18;35964:26;;36036:9;36030:4;36026:20;36022:1;36011:9;36007:17;36000:47;36064:131;36190:4;36064:131;:::i;:::-;36056:139;;35783:419;;;:::o
Swarm Source
ipfs://a39917eef0099d9d9d2cd476afec02f20aadb8670b991303baa57106e2a15635
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.