ERC-20
Overview
Max Total Supply
100,000,000 bkSWAN
Holders
187
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.777 bkSWANValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TheBlackSwan
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-13 */ /** * 私は黒い白鳥です https://t.me/bswanportal * */ 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 TheBlackSwan is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "The Black Swan"; string private constant _symbol = "bkSWAN"; 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 = 100000000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 4; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 4; //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; address private developmentAddress; address private marketingAddress; address private devFeeAddress1; address private devFeeAddress2; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 2000000 * 10**_decimals; uint256 public _maxWalletSize = 2000000 * 10**_decimals; uint256 public _swapTokensAtAmount = 250000 * 10**_decimals; struct Distribution { uint256 development; uint256 marketing; uint256 devFee; } Distribution public distribution; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address developmentAddr, address marketingAddr, address devFeeAddr1, address devFeeAddr2) { developmentAddress = developmentAddr; marketingAddress = marketingAddr; devFeeAddress1 = devFeeAddr1; devFeeAddress2 = devFeeAddr2; _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[marketingAddress] = true; _isExcludedFromFee[developmentAddress] = true; distribution = Distribution(37, 38, 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()) { //Trade start check if (!tradingOpen) { require(from == owner(), "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(2); uint256 developmentShare = distributionEth.mul(distribution.development).div(100); payable(marketingAddress).transfer(marketingShare); payable(devFeeAddress1).transfer(devFeeShare); payable(devFeeAddress2).transfer(devFeeShare); payable(developmentAddress).transfer(developmentShare); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == developmentAddress || _msgSender() == marketingAddress || _msgSender() == devFeeAddress1 || _msgSender() == devFeeAddress2); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == developmentAddress || _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 development, uint256 marketing, uint256 devFee) external onlyOwner { distribution.development = development; 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; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"developmentAddr","type":"address"},{"internalType":"address","name":"marketingAddr","type":"address"},{"internalType":"address","name":"devFeeAddr1","type":"address"},{"internalType":"address","name":"devFeeAddr2","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":"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":"development","type":"uint256"},{"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"development","type":"uint256"},{"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
60806040526009600a62000014919062000aa1565b6305f5e10062000025919062000af2565b60001962000034919062000b82565b60001962000043919062000bba565b600655600060085560046009556000600a556004600b55600a54600c55600b54600d55600c54600e55600d54600f556000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff0219169083151502179055506009600a620000b8919062000aa1565b621e8480620000c8919062000af2565b6018556009600a620000db919062000aa1565b621e8480620000eb919062000af2565b6019556009600a620000fe919062000aa1565b6203d0906200010e919062000af2565b601a553480156200011e57600080fd5b506040516200527138038062005271833981810160405281019062000144919062000c5f565b600062000156620008d660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200030f620008d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000419919062000cd1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000481573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a7919062000cd1565b6040518363ffffffff1660e01b8152600401620004c692919062000d14565b6020604051808303816000875af1158015620004e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050c919062000cd1565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000562620008de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604051806060016040528060258152602001602681526020016019815250601b60008201518160000155602082015181600101556040820151816002015590505062000844620008d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620008a3919062000aa1565b6305f5e100620008b4919062000af2565b604051620008c3919062000d52565b60405180910390a3505050505062000d6f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000995578086048111156200096d576200096c62000907565b5b60018516156200097d5780820291505b80810290506200098d8562000936565b94506200094d565b94509492505050565b600082620009b0576001905062000a83565b81620009c0576000905062000a83565b8160018114620009d95760028114620009e45762000a1a565b600191505062000a83565b60ff841115620009f957620009f862000907565b5b8360020a91508482111562000a135762000a1262000907565b5b5062000a83565b5060208310610133831016604e8410600b841016171562000a545782820a90508381111562000a4e5762000a4d62000907565b5b62000a83565b62000a63848484600162000943565b9250905081840481111562000a7d5762000a7c62000907565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aae8262000a8a565b915062000abb8362000a94565b925062000aea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200099e565b905092915050565b600062000aff8262000a8a565b915062000b0c8362000a8a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b485762000b4762000907565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b8f8262000a8a565b915062000b9c8362000a8a565b92508262000baf5762000bae62000b53565b5b828206905092915050565b600062000bc78262000a8a565b915062000bd48362000a8a565b92508282101562000bea5762000be962000907565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c278262000bfa565b9050919050565b62000c398162000c1a565b811462000c4557600080fd5b50565b60008151905062000c598162000c2e565b92915050565b6000806000806080858703121562000c7c5762000c7b62000bf5565b5b600062000c8c8782880162000c48565b945050602062000c9f8782880162000c48565b935050604062000cb28782880162000c48565b925050606062000cc58782880162000c48565b91505092959194509250565b60006020828403121562000cea5762000ce962000bf5565b5b600062000cfa8482850162000c48565b91505092915050565b62000d0e8162000c1a565b82525050565b600060408201905062000d2b600083018562000d03565b62000d3a602083018462000d03565b9392505050565b62000d4c8162000a8a565b82525050565b600060208201905062000d69600083018462000d41565b92915050565b6144f28062000d7f6000396000f3fe6080604052600436106101e65760003560e01c806374010ece11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146106c8578063dd62ed3e146106f1578063ea1644d51461072e578063f2fde38b14610757576101ed565b8063a2a957bb1461060e578063a9059cbb14610637578063bfd7928414610674578063c3c8cd80146106b1576101ed565b80638f70ccf7116100d15780638f70ccf7146105665780638f9a55c01461058f57806395d89b41146105ba57806398a5c315146105e5576101ed565b806374010ece146104aa5780637d1db4a5146104d35780637f2feddc146104fe5780638da5cb5b1461053b576101ed565b806349bd5a5e1161017a5780636f343052116101495780636f343052146104165780636fc3eaec1461043f57806370a0823114610456578063715018a614610493576101ed565b806349bd5a5e1461036c5780635ee58efc146103975780636b999053146103c45780636d8aa8f8146103ed576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613277565b610780565b005b34801561022757600080fd5b506102306108aa565b60405161023d9190613348565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906133a0565b6108e7565b60405161027a91906133fb565b60405180910390f35b34801561028f57600080fd5b50610298610905565b6040516102a59190613475565b60405180910390f35b3480156102ba57600080fd5b506102c361092b565b6040516102d0919061349f565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb91906134ba565b61094f565b60405161030d91906133fb565b60405180910390f35b34801561032257600080fd5b5061032b610a28565b604051610338919061349f565b60405180910390f35b34801561034d57600080fd5b50610356610a2e565b6040516103639190613529565b60405180910390f35b34801561037857600080fd5b50610381610a37565b60405161038e9190613553565b60405180910390f35b3480156103a357600080fd5b506103ac610a5d565b6040516103bb9392919061356e565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e691906135a5565b610a75565b005b3480156103f957600080fd5b50610414600480360381019061040f91906135fe565b610b65565b005b34801561042257600080fd5b5061043d6004803603810190610438919061362b565b610c17565b005b34801561044b57600080fd5b50610454610ccf565b005b34801561046257600080fd5b5061047d600480360381019061047891906135a5565b610e5e565b60405161048a919061349f565b60405180910390f35b34801561049f57600080fd5b506104a8610eaf565b005b3480156104b657600080fd5b506104d160048036038101906104cc919061367e565b611002565b005b3480156104df57600080fd5b506104e86110a1565b6040516104f5919061349f565b60405180910390f35b34801561050a57600080fd5b50610525600480360381019061052091906135a5565b6110a7565b604051610532919061349f565b60405180910390f35b34801561054757600080fd5b506105506110bf565b60405161055d9190613553565b60405180910390f35b34801561057257600080fd5b5061058d600480360381019061058891906135fe565b6110e8565b005b34801561059b57600080fd5b506105a461119a565b6040516105b1919061349f565b60405180910390f35b3480156105c657600080fd5b506105cf6111a0565b6040516105dc9190613348565b60405180910390f35b3480156105f157600080fd5b5061060c6004803603810190610607919061367e565b6111dd565b005b34801561061a57600080fd5b50610635600480360381019061063091906136ab565b61127c565b005b34801561064357600080fd5b5061065e600480360381019061065991906133a0565b611333565b60405161066b91906133fb565b60405180910390f35b34801561068057600080fd5b5061069b600480360381019061069691906135a5565b611351565b6040516106a891906133fb565b60405180910390f35b3480156106bd57600080fd5b506106c6611371565b005b3480156106d457600080fd5b506106ef60048036038101906106ea919061376d565b611508565b005b3480156106fd57600080fd5b50610718600480360381019061071391906137cd565b611642565b604051610725919061349f565b60405180910390f35b34801561073a57600080fd5b506107556004803603810190610750919061367e565b6116c9565b005b34801561076357600080fd5b5061077e600480360381019061077991906135a5565b611768565b005b610788611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080c90613859565b60405180910390fd5b60005b81518110156108a65760016010600084848151811061083a57610839613879565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089e906138d7565b915050610818565b5050565b60606040518060400160405280600e81526020017f54686520426c61636b205377616e000000000000000000000000000000000000815250905090565b60006108fb6108f4611929565b8484611931565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a61093b9190613a52565b6305f5e10061094a9190613a9d565b905090565b600061095c848484611afa565b610a1d84610968611929565b610a188560405180606001604052806028815260200161449560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ce611929565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f9092919063ffffffff16565b611931565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b8060000154908060010154908060020154905083565b610a7d611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190613859565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b6d611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190613859565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b610c1f611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca390613859565b60405180910390fd5b82601b6000018190555081601b6001018190555080601b60020181905550505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d10611929565b73ffffffffffffffffffffffffffffffffffffffff161480610d865750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6e611929565b73ffffffffffffffffffffffffffffffffffffffff16145b80610de55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dcd611929565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e445750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e2c611929565b73ffffffffffffffffffffffffffffffffffffffff16145b610e4d57600080fd5b6000479050610e5b816123e3565b50565b6000610ea8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612669565b9050919050565b610eb7611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61100a611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90613859565b60405180910390fd5b8060188190555050565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110f0611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490613859565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600681526020017f626b5357414e0000000000000000000000000000000000000000000000000000815250905090565b6111e5611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126990613859565b60405180910390fd5b80601a8190555050565b611284611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890613859565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611347611340611929565b8484611afa565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113b2611929565b73ffffffffffffffffffffffffffffffffffffffff1614806114285750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611410611929565b73ffffffffffffffffffffffffffffffffffffffff16145b806114875750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146f611929565b73ffffffffffffffffffffffffffffffffffffffff16145b806114e65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ce611929565b73ffffffffffffffffffffffffffffffffffffffff16145b6114ef57600080fd5b60006114fa30610e5e565b9050611505816126d7565b50565b611510611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613859565b60405180910390fd5b60005b8383905081101561163c5781600560008686858181106115c3576115c2613879565b5b90506020020160208101906115d891906135a5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611634906138d7565b9150506115a0565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116d1611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590613859565b60405180910390fd5b8060198190555050565b611770611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f490613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361186c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186390613b69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613bfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0690613c8d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aed919061349f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6090613d1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613db1565b60405180910390fd5b60008111611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1290613e43565b60405180910390fd5b611c236110bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c915750611c616110bf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561207e57601760149054906101000a900460ff16611d2057611cb26110bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613ed5565b60405180910390fd5b5b601854811115611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613f41565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e095750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613fd3565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ef55760195481611eaa84610e5e565b611eb49190613ff3565b10611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb906140bb565b60405180910390fd5b5b6000611f0030610e5e565b90506000601a5482101590506018548210611f1b5760185491505b808015611f355750601760159054906101000a900460ff16155b8015611f8f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa75750601760169054906101000a900460ff165b8015611ffd5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120535750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207b57612061826126d7565b6000479050600081111561207957612078476123e3565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121255750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121d85750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121d75750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121e6576000905061236d565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122915750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a957600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123545750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561236c57600a54600c81905550600b54600d819055505b5b61237984848484612950565b50505050565b60008383111582906123c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123be9190613348565b60405180910390fd5b50600083856123d691906140db565b9050809150509392505050565b6001601760156101000a81548160ff021916908315150217905550600081905060006124306064612422601b600101548561297d90919063ffffffff16565b6129f790919063ffffffff16565b9050600061247260026124646064612456601b600201548861297d90919063ffffffff16565b6129f790919063ffffffff16565b6129f790919063ffffffff16565b905060006124a16064612493601b600001548761297d90919063ffffffff16565b6129f790919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561250b573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612574573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156125dd573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612646573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b60006006548211156126b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a790614181565b60405180910390fd5b60006126ba612a41565b90506126cf81846129f790919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561270f5761270e6130d6565b5b60405190808252806020026020018201604052801561273d5781602001602082028036833780820191505090505b509050308160008151811061275557612754613879565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282091906141b6565b8160018151811061283457612833613879565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061289b30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611931565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128ff9594939291906142dc565b600060405180830381600087803b15801561291957600080fd5b505af115801561292d573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b8061295e5761295d612a6c565b5b612969848484612aa9565b8061297757612976612c74565b5b50505050565b600080830361298f57600090506129f1565b6000828461299d9190613a9d565b90508284826129ac9190614365565b146129ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e390614408565b60405180910390fd5b809150505b92915050565b6000612a3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c88565b905092915050565b6000806000612a4e612ceb565b91509150612a6581836129f790919063ffffffff16565b9250505090565b6000600c54148015612a8057506000600d54145b612aa757600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612abb87612d86565b955095509550955095509550612b1986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dee90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bae85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bfa81612e96565b612c048483612f53565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c61919061349f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc69190613348565b60405180910390fd5b5060008385612cde9190614365565b9050809150509392505050565b6000806000600654905060006009600a612d059190613a52565b6305f5e100612d149190613a9d565b9050612d476009600a612d279190613a52565b6305f5e100612d369190613a9d565b6006546129f790919063ffffffff16565b821015612d79576006546009600a612d5f9190613a52565b6305f5e100612d6e9190613a9d565b935093505050612d82565b81819350935050505b9091565b6000806000806000806000806000612da38a600c54600d54612f8d565b9250925092506000612db3612a41565b90506000806000612dc68e878787613023565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061237f565b905092915050565b6000808284612e479190613ff3565b905083811015612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8390614474565b60405180910390fd5b8091505092915050565b6000612ea0612a41565b90506000612eb7828461297d90919063ffffffff16565b9050612f0b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f6882600654612dee90919063ffffffff16565b600681905550612f8381600754612e3890919063ffffffff16565b6007819055505050565b600080600080612fb96064612fab888a61297d90919063ffffffff16565b6129f790919063ffffffff16565b90506000612fe36064612fd5888b61297d90919063ffffffff16565b6129f790919063ffffffff16565b9050600061300c82612ffe858c612dee90919063ffffffff16565b612dee90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061303c858961297d90919063ffffffff16565b90506000613053868961297d90919063ffffffff16565b9050600061306a878961297d90919063ffffffff16565b90506000613093826130858587612dee90919063ffffffff16565b612dee90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61310e826130c5565b810181811067ffffffffffffffff8211171561312d5761312c6130d6565b5b80604052505050565b60006131406130ac565b905061314c8282613105565b919050565b600067ffffffffffffffff82111561316c5761316b6130d6565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ad82613182565b9050919050565b6131bd816131a2565b81146131c857600080fd5b50565b6000813590506131da816131b4565b92915050565b60006131f36131ee84613151565b613136565b905080838252602082019050602084028301858111156132165761321561317d565b5b835b8181101561323f578061322b88826131cb565b845260208401935050602081019050613218565b5050509392505050565b600082601f83011261325e5761325d6130c0565b5b813561326e8482602086016131e0565b91505092915050565b60006020828403121561328d5761328c6130b6565b5b600082013567ffffffffffffffff8111156132ab576132aa6130bb565b5b6132b784828501613249565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132fa5780820151818401526020810190506132df565b83811115613309576000848401525b50505050565b600061331a826132c0565b61332481856132cb565b93506133348185602086016132dc565b61333d816130c5565b840191505092915050565b60006020820190508181036000830152613362818461330f565b905092915050565b6000819050919050565b61337d8161336a565b811461338857600080fd5b50565b60008135905061339a81613374565b92915050565b600080604083850312156133b7576133b66130b6565b5b60006133c5858286016131cb565b92505060206133d68582860161338b565b9150509250929050565b60008115159050919050565b6133f5816133e0565b82525050565b600060208201905061341060008301846133ec565b92915050565b6000819050919050565b600061343b61343661343184613182565b613416565b613182565b9050919050565b600061344d82613420565b9050919050565b600061345f82613442565b9050919050565b61346f81613454565b82525050565b600060208201905061348a6000830184613466565b92915050565b6134998161336a565b82525050565b60006020820190506134b46000830184613490565b92915050565b6000806000606084860312156134d3576134d26130b6565b5b60006134e1868287016131cb565b93505060206134f2868287016131cb565b92505060406135038682870161338b565b9150509250925092565b600060ff82169050919050565b6135238161350d565b82525050565b600060208201905061353e600083018461351a565b92915050565b61354d816131a2565b82525050565b60006020820190506135686000830184613544565b92915050565b60006060820190506135836000830186613490565b6135906020830185613490565b61359d6040830184613490565b949350505050565b6000602082840312156135bb576135ba6130b6565b5b60006135c9848285016131cb565b91505092915050565b6135db816133e0565b81146135e657600080fd5b50565b6000813590506135f8816135d2565b92915050565b600060208284031215613614576136136130b6565b5b6000613622848285016135e9565b91505092915050565b600080600060608486031215613644576136436130b6565b5b60006136528682870161338b565b93505060206136638682870161338b565b92505060406136748682870161338b565b9150509250925092565b600060208284031215613694576136936130b6565b5b60006136a28482850161338b565b91505092915050565b600080600080608085870312156136c5576136c46130b6565b5b60006136d38782880161338b565b94505060206136e48782880161338b565b93505060406136f58782880161338b565b92505060606137068782880161338b565b91505092959194509250565b600080fd5b60008083601f84011261372d5761372c6130c0565b5b8235905067ffffffffffffffff81111561374a57613749613712565b5b6020830191508360208202830111156137665761376561317d565b5b9250929050565b600080600060408486031215613786576137856130b6565b5b600084013567ffffffffffffffff8111156137a4576137a36130bb565b5b6137b086828701613717565b935093505060206137c3868287016135e9565b9150509250925092565b600080604083850312156137e4576137e36130b6565b5b60006137f2858286016131cb565b9250506020613803858286016131cb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138436020836132cb565b915061384e8261380d565b602082019050919050565b6000602082019050818103600083015261387281613836565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138e28261336a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613914576139136138a8565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b600185111561397657808604811115613952576139516138a8565b5b60018516156139615780820291505b808102905061396f8561391f565b9450613936565b94509492505050565b60008261398f5760019050613a4b565b8161399d5760009050613a4b565b81600181146139b357600281146139bd576139ec565b6001915050613a4b565b60ff8411156139cf576139ce6138a8565b5b8360020a9150848211156139e6576139e56138a8565b5b50613a4b565b5060208310610133831016604e8410600b8410161715613a215782820a905083811115613a1c57613a1b6138a8565b5b613a4b565b613a2e848484600161392c565b92509050818404811115613a4557613a446138a8565b5b81810290505b9392505050565b6000613a5d8261336a565b9150613a688361350d565b9250613a957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461397f565b905092915050565b6000613aa88261336a565b9150613ab38361336a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aec57613aeb6138a8565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b536026836132cb565b9150613b5e82613af7565b604082019050919050565b60006020820190508181036000830152613b8281613b46565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613be56024836132cb565b9150613bf082613b89565b604082019050919050565b60006020820190508181036000830152613c1481613bd8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c776022836132cb565b9150613c8282613c1b565b604082019050919050565b60006020820190508181036000830152613ca681613c6a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d096025836132cb565b9150613d1482613cad565b604082019050919050565b60006020820190508181036000830152613d3881613cfc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9b6023836132cb565b9150613da682613d3f565b604082019050919050565b60006020820190508181036000830152613dca81613d8e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e2d6029836132cb565b9150613e3882613dd1565b604082019050919050565b60006020820190508181036000830152613e5c81613e20565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613ebf603f836132cb565b9150613eca82613e63565b604082019050919050565b60006020820190508181036000830152613eee81613eb2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f2b601c836132cb565b9150613f3682613ef5565b602082019050919050565b60006020820190508181036000830152613f5a81613f1e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbd6023836132cb565b9150613fc882613f61565b604082019050919050565b60006020820190508181036000830152613fec81613fb0565b9050919050565b6000613ffe8261336a565b91506140098361336a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561403e5761403d6138a8565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006140a56023836132cb565b91506140b082614049565b604082019050919050565b600060208201905081810360008301526140d481614098565b9050919050565b60006140e68261336a565b91506140f18361336a565b925082821015614104576141036138a8565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061416b602a836132cb565b91506141768261410f565b604082019050919050565b6000602082019050818103600083015261419a8161415e565b9050919050565b6000815190506141b0816131b4565b92915050565b6000602082840312156141cc576141cb6130b6565b5b60006141da848285016141a1565b91505092915050565b6000819050919050565b60006142086142036141fe846141e3565b613416565b61336a565b9050919050565b614218816141ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614253816131a2565b82525050565b6000614265838361424a565b60208301905092915050565b6000602082019050919050565b60006142898261421e565b6142938185614229565b935061429e8361423a565b8060005b838110156142cf5781516142b68882614259565b97506142c183614271565b9250506001810190506142a2565b5085935050505092915050565b600060a0820190506142f16000830188613490565b6142fe602083018761420f565b8181036040830152614310818661427e565b905061431f6060830185613544565b61432c6080830184613490565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143708261336a565b915061437b8361336a565b92508261438b5761438a614336565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143f26021836132cb565b91506143fd82614396565b604082019050919050565b60006020820190508181036000830152614421816143e5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061445e601b836132cb565b915061446982614428565b602082019050919050565b6000602082019050818103600083015261448d81614451565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201c172c05def5354dbe425868b1bcc4c95f0f02e016c05b5c003f0e560cc2dac764736f6c634300080e0033000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f00000000000000000000000062f3011649770b80b349b7a838fc529ba6d3e66800000000000000000000000015956287f157c81340ffcb09766b3ae3c8f6783f00000000000000000000000015956287f157c81340ffcb09766b3ae3c8f6783f
Deployed Bytecode
0x6080604052600436106101e65760003560e01c806374010ece11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146106c8578063dd62ed3e146106f1578063ea1644d51461072e578063f2fde38b14610757576101ed565b8063a2a957bb1461060e578063a9059cbb14610637578063bfd7928414610674578063c3c8cd80146106b1576101ed565b80638f70ccf7116100d15780638f70ccf7146105665780638f9a55c01461058f57806395d89b41146105ba57806398a5c315146105e5576101ed565b806374010ece146104aa5780637d1db4a5146104d35780637f2feddc146104fe5780638da5cb5b1461053b576101ed565b806349bd5a5e1161017a5780636f343052116101495780636f343052146104165780636fc3eaec1461043f57806370a0823114610456578063715018a614610493576101ed565b806349bd5a5e1461036c5780635ee58efc146103975780636b999053146103c45780636d8aa8f8146103ed576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190613277565b610780565b005b34801561022757600080fd5b506102306108aa565b60405161023d9190613348565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906133a0565b6108e7565b60405161027a91906133fb565b60405180910390f35b34801561028f57600080fd5b50610298610905565b6040516102a59190613475565b60405180910390f35b3480156102ba57600080fd5b506102c361092b565b6040516102d0919061349f565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb91906134ba565b61094f565b60405161030d91906133fb565b60405180910390f35b34801561032257600080fd5b5061032b610a28565b604051610338919061349f565b60405180910390f35b34801561034d57600080fd5b50610356610a2e565b6040516103639190613529565b60405180910390f35b34801561037857600080fd5b50610381610a37565b60405161038e9190613553565b60405180910390f35b3480156103a357600080fd5b506103ac610a5d565b6040516103bb9392919061356e565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e691906135a5565b610a75565b005b3480156103f957600080fd5b50610414600480360381019061040f91906135fe565b610b65565b005b34801561042257600080fd5b5061043d6004803603810190610438919061362b565b610c17565b005b34801561044b57600080fd5b50610454610ccf565b005b34801561046257600080fd5b5061047d600480360381019061047891906135a5565b610e5e565b60405161048a919061349f565b60405180910390f35b34801561049f57600080fd5b506104a8610eaf565b005b3480156104b657600080fd5b506104d160048036038101906104cc919061367e565b611002565b005b3480156104df57600080fd5b506104e86110a1565b6040516104f5919061349f565b60405180910390f35b34801561050a57600080fd5b50610525600480360381019061052091906135a5565b6110a7565b604051610532919061349f565b60405180910390f35b34801561054757600080fd5b506105506110bf565b60405161055d9190613553565b60405180910390f35b34801561057257600080fd5b5061058d600480360381019061058891906135fe565b6110e8565b005b34801561059b57600080fd5b506105a461119a565b6040516105b1919061349f565b60405180910390f35b3480156105c657600080fd5b506105cf6111a0565b6040516105dc9190613348565b60405180910390f35b3480156105f157600080fd5b5061060c6004803603810190610607919061367e565b6111dd565b005b34801561061a57600080fd5b50610635600480360381019061063091906136ab565b61127c565b005b34801561064357600080fd5b5061065e600480360381019061065991906133a0565b611333565b60405161066b91906133fb565b60405180910390f35b34801561068057600080fd5b5061069b600480360381019061069691906135a5565b611351565b6040516106a891906133fb565b60405180910390f35b3480156106bd57600080fd5b506106c6611371565b005b3480156106d457600080fd5b506106ef60048036038101906106ea919061376d565b611508565b005b3480156106fd57600080fd5b50610718600480360381019061071391906137cd565b611642565b604051610725919061349f565b60405180910390f35b34801561073a57600080fd5b506107556004803603810190610750919061367e565b6116c9565b005b34801561076357600080fd5b5061077e600480360381019061077991906135a5565b611768565b005b610788611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080c90613859565b60405180910390fd5b60005b81518110156108a65760016010600084848151811061083a57610839613879565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089e906138d7565b915050610818565b5050565b60606040518060400160405280600e81526020017f54686520426c61636b205377616e000000000000000000000000000000000000815250905090565b60006108fb6108f4611929565b8484611931565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a61093b9190613a52565b6305f5e10061094a9190613a9d565b905090565b600061095c848484611afa565b610a1d84610968611929565b610a188560405180606001604052806028815260200161449560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ce611929565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f9092919063ffffffff16565b611931565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b8060000154908060010154908060020154905083565b610a7d611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190613859565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b6d611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190613859565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b610c1f611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca390613859565b60405180910390fd5b82601b6000018190555081601b6001018190555080601b60020181905550505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d10611929565b73ffffffffffffffffffffffffffffffffffffffff161480610d865750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6e611929565b73ffffffffffffffffffffffffffffffffffffffff16145b80610de55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dcd611929565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e445750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e2c611929565b73ffffffffffffffffffffffffffffffffffffffff16145b610e4d57600080fd5b6000479050610e5b816123e3565b50565b6000610ea8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612669565b9050919050565b610eb7611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61100a611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90613859565b60405180910390fd5b8060188190555050565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110f0611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490613859565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600681526020017f626b5357414e0000000000000000000000000000000000000000000000000000815250905090565b6111e5611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126990613859565b60405180910390fd5b80601a8190555050565b611284611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890613859565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000611347611340611929565b8484611afa565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113b2611929565b73ffffffffffffffffffffffffffffffffffffffff1614806114285750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611410611929565b73ffffffffffffffffffffffffffffffffffffffff16145b806114875750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146f611929565b73ffffffffffffffffffffffffffffffffffffffff16145b806114e65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ce611929565b73ffffffffffffffffffffffffffffffffffffffff16145b6114ef57600080fd5b60006114fa30610e5e565b9050611505816126d7565b50565b611510611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490613859565b60405180910390fd5b60005b8383905081101561163c5781600560008686858181106115c3576115c2613879565b5b90506020020160208101906115d891906135a5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611634906138d7565b9150506115a0565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116d1611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590613859565b60405180910390fd5b8060198190555050565b611770611929565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f490613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361186c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186390613b69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199790613bfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0690613c8d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aed919061349f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6090613d1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613db1565b60405180910390fd5b60008111611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1290613e43565b60405180910390fd5b611c236110bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c915750611c616110bf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561207e57601760149054906101000a900460ff16611d2057611cb26110bf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613ed5565b60405180910390fd5b5b601854811115611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613f41565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e095750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613fd3565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ef55760195481611eaa84610e5e565b611eb49190613ff3565b10611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb906140bb565b60405180910390fd5b5b6000611f0030610e5e565b90506000601a5482101590506018548210611f1b5760185491505b808015611f355750601760159054906101000a900460ff16155b8015611f8f5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa75750601760169054906101000a900460ff165b8015611ffd5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120535750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207b57612061826126d7565b6000479050600081111561207957612078476123e3565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121255750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121d85750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121d75750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121e6576000905061236d565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122915750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a957600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123545750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561236c57600a54600c81905550600b54600d819055505b5b61237984848484612950565b50505050565b60008383111582906123c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123be9190613348565b60405180910390fd5b50600083856123d691906140db565b9050809150509392505050565b6001601760156101000a81548160ff021916908315150217905550600081905060006124306064612422601b600101548561297d90919063ffffffff16565b6129f790919063ffffffff16565b9050600061247260026124646064612456601b600201548861297d90919063ffffffff16565b6129f790919063ffffffff16565b6129f790919063ffffffff16565b905060006124a16064612493601b600001548761297d90919063ffffffff16565b6129f790919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561250b573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612574573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156125dd573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612646573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b60006006548211156126b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a790614181565b60405180910390fd5b60006126ba612a41565b90506126cf81846129f790919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561270f5761270e6130d6565b5b60405190808252806020026020018201604052801561273d5781602001602082028036833780820191505090505b509050308160008151811061275557612754613879565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282091906141b6565b8160018151811061283457612833613879565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061289b30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611931565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128ff9594939291906142dc565b600060405180830381600087803b15801561291957600080fd5b505af115801561292d573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b8061295e5761295d612a6c565b5b612969848484612aa9565b8061297757612976612c74565b5b50505050565b600080830361298f57600090506129f1565b6000828461299d9190613a9d565b90508284826129ac9190614365565b146129ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e390614408565b60405180910390fd5b809150505b92915050565b6000612a3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c88565b905092915050565b6000806000612a4e612ceb565b91509150612a6581836129f790919063ffffffff16565b9250505090565b6000600c54148015612a8057506000600d54145b612aa757600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612abb87612d86565b955095509550955095509550612b1986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dee90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bae85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bfa81612e96565b612c048483612f53565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c61919061349f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc69190613348565b60405180910390fd5b5060008385612cde9190614365565b9050809150509392505050565b6000806000600654905060006009600a612d059190613a52565b6305f5e100612d149190613a9d565b9050612d476009600a612d279190613a52565b6305f5e100612d369190613a9d565b6006546129f790919063ffffffff16565b821015612d79576006546009600a612d5f9190613a52565b6305f5e100612d6e9190613a9d565b935093505050612d82565b81819350935050505b9091565b6000806000806000806000806000612da38a600c54600d54612f8d565b9250925092506000612db3612a41565b90506000806000612dc68e878787613023565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061237f565b905092915050565b6000808284612e479190613ff3565b905083811015612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8390614474565b60405180910390fd5b8091505092915050565b6000612ea0612a41565b90506000612eb7828461297d90919063ffffffff16565b9050612f0b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f6882600654612dee90919063ffffffff16565b600681905550612f8381600754612e3890919063ffffffff16565b6007819055505050565b600080600080612fb96064612fab888a61297d90919063ffffffff16565b6129f790919063ffffffff16565b90506000612fe36064612fd5888b61297d90919063ffffffff16565b6129f790919063ffffffff16565b9050600061300c82612ffe858c612dee90919063ffffffff16565b612dee90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061303c858961297d90919063ffffffff16565b90506000613053868961297d90919063ffffffff16565b9050600061306a878961297d90919063ffffffff16565b90506000613093826130858587612dee90919063ffffffff16565b612dee90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61310e826130c5565b810181811067ffffffffffffffff8211171561312d5761312c6130d6565b5b80604052505050565b60006131406130ac565b905061314c8282613105565b919050565b600067ffffffffffffffff82111561316c5761316b6130d6565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ad82613182565b9050919050565b6131bd816131a2565b81146131c857600080fd5b50565b6000813590506131da816131b4565b92915050565b60006131f36131ee84613151565b613136565b905080838252602082019050602084028301858111156132165761321561317d565b5b835b8181101561323f578061322b88826131cb565b845260208401935050602081019050613218565b5050509392505050565b600082601f83011261325e5761325d6130c0565b5b813561326e8482602086016131e0565b91505092915050565b60006020828403121561328d5761328c6130b6565b5b600082013567ffffffffffffffff8111156132ab576132aa6130bb565b5b6132b784828501613249565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156132fa5780820151818401526020810190506132df565b83811115613309576000848401525b50505050565b600061331a826132c0565b61332481856132cb565b93506133348185602086016132dc565b61333d816130c5565b840191505092915050565b60006020820190508181036000830152613362818461330f565b905092915050565b6000819050919050565b61337d8161336a565b811461338857600080fd5b50565b60008135905061339a81613374565b92915050565b600080604083850312156133b7576133b66130b6565b5b60006133c5858286016131cb565b92505060206133d68582860161338b565b9150509250929050565b60008115159050919050565b6133f5816133e0565b82525050565b600060208201905061341060008301846133ec565b92915050565b6000819050919050565b600061343b61343661343184613182565b613416565b613182565b9050919050565b600061344d82613420565b9050919050565b600061345f82613442565b9050919050565b61346f81613454565b82525050565b600060208201905061348a6000830184613466565b92915050565b6134998161336a565b82525050565b60006020820190506134b46000830184613490565b92915050565b6000806000606084860312156134d3576134d26130b6565b5b60006134e1868287016131cb565b93505060206134f2868287016131cb565b92505060406135038682870161338b565b9150509250925092565b600060ff82169050919050565b6135238161350d565b82525050565b600060208201905061353e600083018461351a565b92915050565b61354d816131a2565b82525050565b60006020820190506135686000830184613544565b92915050565b60006060820190506135836000830186613490565b6135906020830185613490565b61359d6040830184613490565b949350505050565b6000602082840312156135bb576135ba6130b6565b5b60006135c9848285016131cb565b91505092915050565b6135db816133e0565b81146135e657600080fd5b50565b6000813590506135f8816135d2565b92915050565b600060208284031215613614576136136130b6565b5b6000613622848285016135e9565b91505092915050565b600080600060608486031215613644576136436130b6565b5b60006136528682870161338b565b93505060206136638682870161338b565b92505060406136748682870161338b565b9150509250925092565b600060208284031215613694576136936130b6565b5b60006136a28482850161338b565b91505092915050565b600080600080608085870312156136c5576136c46130b6565b5b60006136d38782880161338b565b94505060206136e48782880161338b565b93505060406136f58782880161338b565b92505060606137068782880161338b565b91505092959194509250565b600080fd5b60008083601f84011261372d5761372c6130c0565b5b8235905067ffffffffffffffff81111561374a57613749613712565b5b6020830191508360208202830111156137665761376561317d565b5b9250929050565b600080600060408486031215613786576137856130b6565b5b600084013567ffffffffffffffff8111156137a4576137a36130bb565b5b6137b086828701613717565b935093505060206137c3868287016135e9565b9150509250925092565b600080604083850312156137e4576137e36130b6565b5b60006137f2858286016131cb565b9250506020613803858286016131cb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138436020836132cb565b915061384e8261380d565b602082019050919050565b6000602082019050818103600083015261387281613836565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138e28261336a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613914576139136138a8565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b600185111561397657808604811115613952576139516138a8565b5b60018516156139615780820291505b808102905061396f8561391f565b9450613936565b94509492505050565b60008261398f5760019050613a4b565b8161399d5760009050613a4b565b81600181146139b357600281146139bd576139ec565b6001915050613a4b565b60ff8411156139cf576139ce6138a8565b5b8360020a9150848211156139e6576139e56138a8565b5b50613a4b565b5060208310610133831016604e8410600b8410161715613a215782820a905083811115613a1c57613a1b6138a8565b5b613a4b565b613a2e848484600161392c565b92509050818404811115613a4557613a446138a8565b5b81810290505b9392505050565b6000613a5d8261336a565b9150613a688361350d565b9250613a957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461397f565b905092915050565b6000613aa88261336a565b9150613ab38361336a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aec57613aeb6138a8565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b536026836132cb565b9150613b5e82613af7565b604082019050919050565b60006020820190508181036000830152613b8281613b46565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613be56024836132cb565b9150613bf082613b89565b604082019050919050565b60006020820190508181036000830152613c1481613bd8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c776022836132cb565b9150613c8282613c1b565b604082019050919050565b60006020820190508181036000830152613ca681613c6a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d096025836132cb565b9150613d1482613cad565b604082019050919050565b60006020820190508181036000830152613d3881613cfc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9b6023836132cb565b9150613da682613d3f565b604082019050919050565b60006020820190508181036000830152613dca81613d8e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e2d6029836132cb565b9150613e3882613dd1565b604082019050919050565b60006020820190508181036000830152613e5c81613e20565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613ebf603f836132cb565b9150613eca82613e63565b604082019050919050565b60006020820190508181036000830152613eee81613eb2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f2b601c836132cb565b9150613f3682613ef5565b602082019050919050565b60006020820190508181036000830152613f5a81613f1e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbd6023836132cb565b9150613fc882613f61565b604082019050919050565b60006020820190508181036000830152613fec81613fb0565b9050919050565b6000613ffe8261336a565b91506140098361336a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561403e5761403d6138a8565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006140a56023836132cb565b91506140b082614049565b604082019050919050565b600060208201905081810360008301526140d481614098565b9050919050565b60006140e68261336a565b91506140f18361336a565b925082821015614104576141036138a8565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061416b602a836132cb565b91506141768261410f565b604082019050919050565b6000602082019050818103600083015261419a8161415e565b9050919050565b6000815190506141b0816131b4565b92915050565b6000602082840312156141cc576141cb6130b6565b5b60006141da848285016141a1565b91505092915050565b6000819050919050565b60006142086142036141fe846141e3565b613416565b61336a565b9050919050565b614218816141ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614253816131a2565b82525050565b6000614265838361424a565b60208301905092915050565b6000602082019050919050565b60006142898261421e565b6142938185614229565b935061429e8361423a565b8060005b838110156142cf5781516142b68882614259565b97506142c183614271565b9250506001810190506142a2565b5085935050505092915050565b600060a0820190506142f16000830188613490565b6142fe602083018761420f565b8181036040830152614310818661427e565b905061431f6060830185613544565b61432c6080830184613490565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143708261336a565b915061437b8361336a565b92508261438b5761438a614336565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143f26021836132cb565b91506143fd82614396565b604082019050919050565b60006020820190508181036000830152614421816143e5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061445e601b836132cb565b915061446982614428565b602082019050919050565b6000602082019050818103600083015261448d81614451565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201c172c05def5354dbe425868b1bcc4c95f0f02e016c05b5c003f0e560cc2dac764736f6c634300080e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f00000000000000000000000062f3011649770b80b349b7a838fc529ba6d3e66800000000000000000000000015956287f157c81340ffcb09766b3ae3c8f6783f00000000000000000000000015956287f157c81340ffcb09766b3ae3c8f6783f
-----Decoded View---------------
Arg [0] : developmentAddr (address): 0xAE4843C1A1369dDd860f40e9D74DA50919937C3F
Arg [1] : marketingAddr (address): 0x62f3011649770b80b349b7a838Fc529Ba6D3E668
Arg [2] : devFeeAddr1 (address): 0x15956287F157C81340FfCB09766b3Ae3C8f6783f
Arg [3] : devFeeAddr2 (address): 0x15956287F157C81340FfCB09766b3Ae3C8f6783f
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000ae4843c1a1369ddd860f40e9d74da50919937c3f
Arg [1] : 00000000000000000000000062f3011649770b80b349b7a838fc529ba6d3e668
Arg [2] : 00000000000000000000000015956287f157c81340ffcb09766b3ae3c8f6783f
Arg [3] : 00000000000000000000000015956287f157c81340ffcb09766b3ae3c8f6783f
Deployed Bytecode Sourcemap
4136:14964:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14012:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7191:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8116:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5450:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7468:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8317:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5762:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7377:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5498:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5949:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14189:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18484:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15197:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13703:301;;;;;;;;;;;;;:::i;:::-;;7571:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1623:148;;;;;;;;;;;;;:::i;:::-;;18624:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5640:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5244:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1409:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13284:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5700:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7282:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18293:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17950:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7717:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5200:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13393:302;;;;;;;;;;;;;:::i;:::-;;18863:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7924:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18740:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1779:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14012:169;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14088:9:::1;14083:91;14107:5;:12;14103:1;:16;14083:91;;;14158:4;14141;:14;14146:5;14152:1;14146:8;;;;;;;;:::i;:::-;;;;;;;;14141:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14121:3;;;;;:::i;:::-;;;;14083:91;;;;14012:169:::0;:::o;7191:83::-;7228:13;7261:5;;;;;;;;;;;;;;;;;7254:12;;7191:83;:::o;8116:193::-;8218:4;8240:39;8249:12;:10;:12::i;:::-;8263:7;8272:6;8240:8;:39::i;:::-;8297:4;8290:11;;8116:193;;;;:::o;5450:41::-;;;;;;;;;;;;;:::o;7468:95::-;7521:7;4369:1;4707:2;:13;;;;:::i;:::-;4695:9;:25;;;;:::i;:::-;7541:14;;7468:95;:::o;8317:446::-;8449:4;8466:36;8476:6;8484:9;8495:6;8466:9;:36::i;:::-;8513:220;8536:6;8557:12;:10;:12::i;:::-;8584:138;8640:6;8584:138;;;;;;;;;;;;;;;;;:11;:19;8596:6;8584:19;;;;;;;;;;;;;;;:33;8604:12;:10;:12::i;:::-;8584:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8513:8;:220::i;:::-;8751:4;8744:11;;8317:446;;;;;:::o;5762:59::-;;;;:::o;7377:83::-;7418:5;4369:1;7436:16;;7377:83;:::o;5498:28::-;;;;;;;;;;;;;:::o;5949:32::-;;;;;;;;;;;;;;;;;;;:::o;14189:92::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14268:5:::1;14253:4;:12;14258:6;14253:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14189:92:::0;:::o;18484:101::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18565:12:::1;18551:11;;:26;;;;;;;;;;;;;;;;;;18484:101:::0;:::o;15197:249::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15343:11:::1;15316:12;:24;;:38;;;;15390:9;15365:12;:22;;:34;;;;15432:6;15410:12;:19;;:28;;;;15197:249:::0;;;:::o;13703:301::-;13769:18;;;;;;;;;;;13753:34;;:12;:10;:12::i;:::-;:34;;;:70;;;;13807:16;;;;;;;;;;;13791:32;;:12;:10;:12::i;:::-;:32;;;13753:70;:104;;;;13843:14;;;;;;;;;;;13827:30;;:12;:10;:12::i;:::-;:30;;;13753:104;:138;;;;13877:14;;;;;;;;;;;13861:30;;:12;:10;:12::i;:::-;:30;;;13753:138;13745:147;;;;;;13903:26;13932:21;13903:50;;13964:32;13977:18;13964:12;:32::i;:::-;13734:270;13703:301::o;7571:138::-;7637:7;7664:37;7684:7;:16;7692:7;7684:16;;;;;;;;;;;;;;;;7664:19;:37::i;:::-;7657:44;;7571:138;;;:::o;1623:148::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1730:1:::1;1693:40;;1714:6;::::0;::::1;;;;;;;;1693:40;;;;;;;;;;;;1761:1;1744:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1623:148::o:0;18624:108::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18713:11:::1;18698:12;:26;;;;18624:108:::0;:::o;5640:53::-;;;;:::o;5244:43::-;;;;;;;;;;;;;;;;;:::o;1409:79::-;1447:7;1474:6;;;;;;;;;;;1467:13;;1409:79;:::o;13284:101::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13365:12:::1;13351:11;;:26;;;;;;;;;;;;;;;;;;13284:101:::0;:::o;5700:55::-;;;;:::o;7282:87::-;7321:13;7354:7;;;;;;;;;;;;;;;;;7347:14;;7282:87;:::o;18293:139::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18406:18:::1;18384:19;:40;;;;18293:139:::0;:::o;17950:291::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18101:13:::1;18084:14;:30;;;;18143:14;18125:15;:32;;;;18183:11;18168:12;:26;;;;18221:12;18205:13;:28;;;;17950:291:::0;;;;:::o;7717:199::-;7822:4;7844:42;7854:12;:10;:12::i;:::-;7868:9;7879:6;7844:9;:42::i;:::-;7904:4;7897:11;;7717:199;;;;:::o;5200:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13393:302::-;13459:18;;;;;;;;;;;13443:34;;:12;:10;:12::i;:::-;:34;;;:70;;;;13497:16;;;;;;;;;;;13481:32;;:12;:10;:12::i;:::-;:32;;;13443:70;:104;;;;13533:14;;;;;;;;;;;13517:30;;:12;:10;:12::i;:::-;:30;;;13443:104;:138;;;;13567:14;;;;;;;;;;;13551:30;;:12;:10;:12::i;:::-;:30;;;13443:138;13435:147;;;;;;13593:23;13619:24;13637:4;13619:9;:24::i;:::-;13593:50;;13654:33;13671:15;13654:16;:33::i;:::-;13424:271;13393:302::o;18863:234::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18980:9:::1;18976:114;18999:8;;:15;;18995:1;:19;18976:114;;;19070:8;19036:18;:31;19055:8;;19064:1;19055:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19036:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19016:3;;;;;:::i;:::-;;;;18976:114;;;;18863:234:::0;;;:::o;7924:184::-;8041:7;8073:11;:18;8085:5;8073:18;;;;;;;;;;;;;;;:27;8092:7;8073:27;;;;;;;;;;;;;;;;8066:34;;7924:184;;;;:::o;18740:115::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18834:13:::1;18817:14;:30;;;;18740:115:::0;:::o;1779:244::-;1546:12;:10;:12::i;:::-;1536:22;;:6;;;;;;;;;;:22;;;1528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1888:1:::1;1868:22;;:8;:22;;::::0;1860:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1978:8;1949:38;;1970:6;::::0;::::1;;;;;;;;1949:38;;;;;;;;;;;;2007:8;1998:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1779:244:::0;:::o;168:98::-;221:7;248:10;241:17;;168:98;:::o;9454:369::-;9598:1;9581:19;;:5;:19;;;9573:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9679:1;9660:21;;:7;:21;;;9652:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9761:6;9731:11;:18;9743:5;9731:18;;;;;;;;;;;;;;;:27;9750:7;9731:27;;;;;;;;;;;;;;;:36;;;;9799:7;9783:32;;9792:5;9783:32;;;9808:6;9783:32;;;;;;:::i;:::-;;;;;;;;9454:369;;;:::o;9831:2330::-;9969:1;9953:18;;:4;:18;;;9945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10046:1;10032:16;;:2;:16;;;10024:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10116:1;10107:6;:10;10099:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10188:7;:5;:7::i;:::-;10180:15;;:4;:15;;;;:32;;;;;10205:7;:5;:7::i;:::-;10199:13;;:2;:13;;;;10180:32;10176:1259;;;10269:11;;;;;;;;;;;10264:144;;10317:7;:5;:7::i;:::-;10309:15;;:4;:15;;;10301:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10264:144;10442:12;;10432:6;:22;;10424:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10511:4;:10;10516:4;10511:10;;;;;;;;;;;;;;;;;;;;;;;;;10510:11;:24;;;;;10526:4;:8;10531:2;10526:8;;;;;;;;;;;;;;;;;;;;;;;;;10525:9;10510:24;10502:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10600:13;;;;;;;;;;;10594:19;;:2;:19;;;10591:146;;10667:14;;10658:6;10642:13;10652:2;10642:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10634:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10591:146;10753:28;10784:24;10802:4;10784:9;:24::i;:::-;10753:55;;10823:12;10862:19;;10838:20;:43;;10823:58;;10925:12;;10901:20;:36;10898:124;;10994:12;;10971:35;;10898:124;11042:7;:18;;;;;11054:6;;;;;;;;;;;11053:7;11042:18;:43;;;;;11072:13;;;;;;;;;;;11064:21;;:4;:21;;;;11042:43;:58;;;;;11089:11;;;;;;;;;;;11042:58;:87;;;;;11105:18;:24;11124:4;11105:24;;;;;;;;;;;;;;;;;;;;;;;;;11104:25;11042:87;:114;;;;;11134:18;:22;11153:2;11134:22;;;;;;;;;;;;;;;;;;;;;;;;;11133:23;11042:114;11038:386;;;11177:38;11194:20;11177:16;:38::i;:::-;11234:26;11263:21;11234:50;;11328:1;11307:18;:22;11303:106;;;11354:35;11367:21;11354:12;:35::i;:::-;11303:106;11158:266;11038:386;10214:1221;;10176:1259;11447:12;11462:4;11447:19;;11511:18;:24;11530:4;11511:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11539:18;:22;11558:2;11539:22;;;;;;;;;;;;;;;;;;;;;;;;;11511:50;11510:102;;;;11575:13;;;;;;;;;;;11567:21;;:4;:21;;;;:44;;;;;11598:13;;;;;;;;;;;11592:19;;:2;:19;;;;11567:44;11510:102;11506:594;;;11639:5;11629:15;;11506:594;;;11722:13;;;;;;;;;;;11714:21;;:4;:21;;;:55;;;;;11753:15;;;;;;;;;;;11739:30;;:2;:30;;;;11714:55;11711:162;;;11802:14;;11790:9;:26;;;;11845:12;;11835:7;:22;;;;11711:162;11932:13;;;;;;;;;;;11926:19;;:2;:19;;;:55;;;;;11965:15;;;;;;;;;;;11949:32;;:4;:32;;;;11926:55;11922:165;;;12014:15;;12002:9;:27;;;;12058:13;;12048:7;:23;;;;11922:165;11506:594;12112:41;12127:4;12133:2;12137:6;12145:7;12112:14;:41::i;:::-;9934:2227;9831:2330;;;:::o;2387:224::-;2507:7;2540:1;2535;:6;;2543:12;2527:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2567:9;2583:1;2579;:5;;;;:::i;:::-;2567:17;;2602:1;2595:8;;;2387:224;;;;;:::o;12660:616::-;6084:4;6075:6;;:13;;;;;;;;;;;;;;;;;;12729:23:::1;12755:6;12729:32;;12772:22;12797:52;12845:3;12797:43;12817:12;:22;;;12797:15;:19;;:43;;;;:::i;:::-;:47;;:52;;;;:::i;:::-;12772:77;;12860:19;12882:56;12936:1;12882:49;12927:3;12882:40;12902:12;:19;;;12882:15;:19;;:40;;;;:::i;:::-;:44;;:49;;;;:::i;:::-;:53;;:56;;;;:::i;:::-;12860:78;;12949:24;12976:54;13026:3;12976:45;12996:12;:24;;;12976:15;:19;;:45;;;;:::i;:::-;:49;;:54;;;;:::i;:::-;12949:81;;13049:16;;;;;;;;;;;13041:34;;:50;13076:14;13041:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13110:14;;;;;;;;;;;13102:32;;:45;13135:11;13102:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13166:14;;;;;;;;;;;13158:32;;:45;13191:11;13158:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13222:18;;;;;;;;;;;13214:36;;:54;13251:16;13214:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12718:558;;;;6120:5:::0;6111:6;;:14;;;;;;;;;;;;;;;;;;12660:616;:::o;8771:323::-;8866:7;8924;;8913;:18;;8891:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9012:19;9034:10;:8;:10::i;:::-;9012:32;;9062:24;9074:11;9062:7;:11;;:24;;;;:::i;:::-;9055:31;;;8771:323;;;:::o;12169:483::-;6084:4;6075:6;;:13;;;;;;;;;;;;;;;;;;12247:21:::1;12285:1;12271:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12247:40;;12316:4;12298;12303:1;12298:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12342:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12332:4;12337:1;12332:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12375:62;12392:4;12407:15;;;;;;;;;;;12425:11;12375:8;:62::i;:::-;12448:15;;;;;;;;;;;:66;;;12529:11;12555:1;12571:4;12598;12618:15;12448:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12236:416;6120:5:::0;6111:6;;:14;;;;;;;;;;;;;;;;;;12169:483;:::o;14289:282::-;14445:7;14440:28;;14454:14;:12;:14::i;:::-;14440:28;14479:44;14497:6;14505:9;14516:6;14479:17;:44::i;:::-;14539:7;14534:29;;14548:15;:13;:15::i;:::-;14534:29;14289:282;;;;:::o;2619:246::-;2677:7;2706:1;2701;:6;2697:47;;2731:1;2724:8;;;;2697:47;2754:9;2770:1;2766;:5;;;;:::i;:::-;2754:17;;2799:1;2794;2790;:5;;;;:::i;:::-;:10;2782:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2856:1;2849:8;;;2619:246;;;;;:::o;2873:132::-;2931:7;2958:39;2962:1;2965;2958:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2951:46;;2873:132;;;;:::o;17513:164::-;17555:7;17576:15;17593;17612:19;:17;:19::i;:::-;17575:56;;;;17649:20;17661:7;17649;:11;;:20;;;;:::i;:::-;17642:27;;;;17513:164;:::o;9102:219::-;9162:1;9149:9;;:14;:30;;;;;9178:1;9167:7;;:12;9149:30;9181:7;9145:43;9220:9;;9200:17;:29;;;;9258:7;;9240:15;:25;;;;9290:1;9278:9;:13;;;;9312:1;9302:7;:11;;;;9102:219;:::o;14579:610::-;14726:15;14756:23;14794:12;14821:23;14859:12;14886:13;14913:19;14924:7;14913:10;:19::i;:::-;14711:221;;;;;;;;;;;;14961:28;14981:7;14961;:15;14969:6;14961:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14943:7;:15;14951:6;14943:15;;;;;;;;;;;;;;;:46;;;;15021:39;15044:15;15021:7;:18;15029:9;15021:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15000:7;:18;15008:9;15000:18;;;;;;;;;;;;;;;:60;;;;15071:16;15081:5;15071:9;:16::i;:::-;15098:23;15110:4;15116;15098:11;:23::i;:::-;15154:9;15137:44;;15146:6;15137:44;;;15165:15;15137:44;;;;;;:::i;:::-;;;;;;;;14700:489;;;;;;14579:610;;;:::o;9329:117::-;9385:17;;9373:9;:29;;;;9423:15;;9413:7;:25;;;;9329:117::o;3013:223::-;3133:7;3165:1;3161;:5;3168:12;3153:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3192:9;3208:1;3204;:5;;;;:::i;:::-;3192:17;;3227:1;3220:8;;;3013:223;;;;;:::o;17685:257::-;17736:7;17745;17765:15;17783:7;;17765:25;;17801:15;4369:1;4707:2;:13;;;;:::i;:::-;4695:9;:25;;;;:::i;:::-;17801;;17851:20;4369:1;4707:2;:13;;;;:::i;:::-;4695:9;:25;;;;:::i;:::-;17851:7;;:11;;:20;;;;:::i;:::-;17841:7;:30;17837:61;;;17881:7;;4369:1;4707:2;:13;;;;:::i;:::-;4695:9;:25;;;;:::i;:::-;17873;;;;;;;;17837:61;17917:7;17926;17909:25;;;;;;17685:257;;;:::o;15871:615::-;15971:7;15993;16015;16037;16059;16081;16117:23;16142:12;16156:13;16186:40;16198:7;16207:9;;16218:7;;16186:11;:40::i;:::-;16116:110;;;;;;16237:19;16259:10;:8;:10::i;:::-;16237:32;;16281:15;16298:23;16323:12;16352:46;16364:7;16373:4;16379:5;16386:11;16352;:46::i;:::-;16280:118;;;;;;16417:7;16426:15;16443:4;16449:15;16466:4;16472:5;16409:69;;;;;;;;;;;;;;;;;;;15871:615;;;;;;;:::o;2243:136::-;2301:7;2328:43;2332:1;2335;2328:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2321:50;;2243:136;;;;:::o;2056:179::-;2114:7;2134:9;2150:1;2146;:5;;;;:::i;:::-;2134:17;;2175:1;2170;:6;;2162:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2226:1;2219:8;;;2056:179;;;;:::o;15454:211::-;15507:19;15529:10;:8;:10::i;:::-;15507:32;;15550:13;15566:22;15576:11;15566:5;:9;;:22;;;;:::i;:::-;15550:38;;15624:33;15651:5;15624:7;:22;15640:4;15624:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15599:7;:22;15615:4;15599:22;;;;;;;;;;;;;;;:58;;;;15496:169;;15454:211;:::o;15673:147::-;15751:17;15763:4;15751:7;;:11;;:17;;;;:::i;:::-;15741:7;:27;;;;15792:20;15807:4;15792:10;;:14;;:20;;;;:::i;:::-;15779:10;:33;;;;15673:147;;:::o;16494:469::-;16663:7;16685;16707;16742:12;16757:30;16783:3;16757:21;16769:8;16757:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16742:45;;16798:13;16814:28;16838:3;16814:19;16826:6;16814:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16798:44;;16853:23;16879:28;16901:5;16879:17;16891:4;16879:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16853:54;;16926:15;16943:4;16949:5;16918:37;;;;;;;;;16494:469;;;;;;;:::o;16971:534::-;17165:7;17187;17209;17244:15;17262:24;17274:11;17262:7;:11;;:24;;;;:::i;:::-;17244:42;;17297:12;17312:21;17321:11;17312:4;:8;;:21;;;;:::i;:::-;17297:36;;17344:13;17360:22;17370:11;17360:5;:9;;:22;;;;:::i;:::-;17344:38;;17393:23;17419:28;17441:5;17419:17;17431:4;17419:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17393:54;;17466:7;17475:15;17492:4;17458:39;;;;;;;;;;16971: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:442::-;9217:4;9255:2;9244:9;9240:18;9232:26;;9268:71;9336:1;9325:9;9321:17;9312:6;9268:71;:::i;:::-;9349:72;9417:2;9406:9;9402:18;9393:6;9349:72;:::i;:::-;9431;9499:2;9488:9;9484:18;9475:6;9431:72;:::i;:::-;9068:442;;;;;;:::o;9516:329::-;9575:6;9624:2;9612:9;9603:7;9599:23;9595:32;9592:119;;;9630:79;;:::i;:::-;9592:119;9750:1;9775:53;9820:7;9811:6;9800:9;9796:22;9775:53;:::i;:::-;9765:63;;9721:117;9516:329;;;;:::o;9851:116::-;9921:21;9936:5;9921:21;:::i;:::-;9914:5;9911:32;9901:60;;9957:1;9954;9947:12;9901:60;9851:116;:::o;9973:133::-;10016:5;10054:6;10041:20;10032:29;;10070:30;10094:5;10070:30;:::i;:::-;9973:133;;;;:::o;10112:323::-;10168:6;10217:2;10205:9;10196:7;10192:23;10188:32;10185:119;;;10223:79;;:::i;:::-;10185:119;10343:1;10368:50;10410:7;10401:6;10390:9;10386:22;10368:50;:::i;:::-;10358:60;;10314:114;10112:323;;;;:::o;10441:619::-;10518:6;10526;10534;10583:2;10571:9;10562:7;10558:23;10554:32;10551:119;;;10589:79;;:::i;:::-;10551:119;10709:1;10734:53;10779:7;10770:6;10759:9;10755:22;10734:53;:::i;:::-;10724:63;;10680:117;10836:2;10862:53;10907:7;10898:6;10887:9;10883:22;10862:53;:::i;:::-;10852:63;;10807:118;10964:2;10990:53;11035:7;11026:6;11015:9;11011:22;10990:53;:::i;:::-;10980:63;;10935:118;10441:619;;;;;:::o;11066:329::-;11125:6;11174:2;11162:9;11153:7;11149:23;11145:32;11142:119;;;11180:79;;:::i;:::-;11142:119;11300:1;11325:53;11370:7;11361:6;11350:9;11346:22;11325:53;:::i;:::-;11315:63;;11271:117;11066:329;;;;:::o;11401:765::-;11487:6;11495;11503;11511;11560:3;11548:9;11539:7;11535:23;11531:33;11528:120;;;11567:79;;:::i;:::-;11528:120;11687:1;11712:53;11757:7;11748:6;11737:9;11733:22;11712:53;:::i;:::-;11702:63;;11658:117;11814:2;11840:53;11885:7;11876:6;11865:9;11861:22;11840:53;:::i;:::-;11830:63;;11785:118;11942:2;11968:53;12013:7;12004:6;11993:9;11989:22;11968:53;:::i;:::-;11958:63;;11913:118;12070:2;12096:53;12141:7;12132:6;12121:9;12117:22;12096:53;:::i;:::-;12086:63;;12041:118;11401:765;;;;;;;:::o;12172:117::-;12281:1;12278;12271:12;12312:568;12385:8;12395:6;12445:3;12438:4;12430:6;12426:17;12422:27;12412:122;;12453:79;;:::i;:::-;12412:122;12566:6;12553:20;12543:30;;12596:18;12588:6;12585:30;12582:117;;;12618:79;;:::i;:::-;12582:117;12732:4;12724:6;12720:17;12708:29;;12786:3;12778:4;12770:6;12766:17;12756:8;12752:32;12749:41;12746:128;;;12793:79;;:::i;:::-;12746:128;12312:568;;;;;:::o;12886:698::-;12978:6;12986;12994;13043:2;13031:9;13022:7;13018:23;13014:32;13011:119;;;13049:79;;:::i;:::-;13011:119;13197:1;13186:9;13182:17;13169:31;13227:18;13219:6;13216:30;13213:117;;;13249:79;;:::i;:::-;13213:117;13362:80;13434:7;13425:6;13414:9;13410:22;13362:80;:::i;:::-;13344:98;;;;13140:312;13491:2;13517:50;13559:7;13550:6;13539:9;13535:22;13517:50;:::i;:::-;13507:60;;13462:115;12886:698;;;;;:::o;13590:474::-;13658:6;13666;13715:2;13703:9;13694:7;13690:23;13686:32;13683:119;;;13721:79;;:::i;:::-;13683:119;13841:1;13866:53;13911:7;13902:6;13891:9;13887:22;13866:53;:::i;:::-;13856:63;;13812:117;13968:2;13994:53;14039:7;14030:6;14019:9;14015:22;13994:53;:::i;:::-;13984:63;;13939:118;13590:474;;;;;:::o;14070:182::-;14210:34;14206:1;14198:6;14194:14;14187:58;14070:182;:::o;14258:366::-;14400:3;14421:67;14485:2;14480:3;14421:67;:::i;:::-;14414:74;;14497:93;14586:3;14497:93;:::i;:::-;14615:2;14610:3;14606:12;14599:19;;14258:366;;;:::o;14630:419::-;14796:4;14834:2;14823:9;14819:18;14811:26;;14883:9;14877:4;14873:20;14869:1;14858:9;14854:17;14847:47;14911:131;15037:4;14911:131;:::i;:::-;14903:139;;14630:419;;;:::o;15055:180::-;15103:77;15100:1;15093:88;15200:4;15197:1;15190:15;15224:4;15221:1;15214:15;15241:180;15289:77;15286:1;15279:88;15386:4;15383:1;15376:15;15410:4;15407:1;15400:15;15427:233;15466:3;15489:24;15507:5;15489:24;:::i;:::-;15480:33;;15535:66;15528:5;15525:77;15522:103;;15605:18;;:::i;:::-;15522:103;15652:1;15645:5;15641:13;15634:20;;15427:233;;;:::o;15666:102::-;15708:8;15755:5;15752:1;15748:13;15727:34;;15666:102;;;:::o;15774:848::-;15835:5;15842:4;15866:6;15857:15;;15890:5;15881:14;;15904:712;15925:1;15915:8;15912:15;15904:712;;;16020:4;16015:3;16011:14;16005:4;16002:24;15999:50;;;16029:18;;:::i;:::-;15999:50;16079:1;16069:8;16065:16;16062:451;;;16494:4;16487:5;16483:16;16474:25;;16062:451;16544:4;16538;16534:15;16526:23;;16574:32;16597:8;16574:32;:::i;:::-;16562:44;;15904:712;;;15774:848;;;;;;;:::o;16628:1073::-;16682:5;16873:8;16863:40;;16894:1;16885:10;;16896:5;;16863:40;16922:4;16912:36;;16939:1;16930:10;;16941:5;;16912:36;17008:4;17056:1;17051:27;;;;17092:1;17087:191;;;;17001:277;;17051:27;17069:1;17060:10;;17071:5;;;17087:191;17132:3;17122:8;17119:17;17116:43;;;17139:18;;:::i;:::-;17116:43;17188:8;17185:1;17181:16;17172:25;;17223:3;17216:5;17213:14;17210:40;;;17230:18;;:::i;:::-;17210:40;17263:5;;;17001:277;;17387:2;17377:8;17374:16;17368:3;17362:4;17359:13;17355:36;17337:2;17327:8;17324:16;17319:2;17313:4;17310:12;17306:35;17290:111;17287:246;;;17443:8;17437:4;17433:19;17424:28;;17478:3;17471:5;17468:14;17465:40;;;17485:18;;:::i;:::-;17465:40;17518:5;;17287:246;17558:42;17596:3;17586:8;17580:4;17577:1;17558:42;:::i;:::-;17543:57;;;;17632:4;17627:3;17623:14;17616:5;17613:25;17610:51;;;17641:18;;:::i;:::-;17610:51;17690:4;17683:5;17679:16;17670:25;;16628:1073;;;;;;:::o;17707:281::-;17765:5;17789:23;17807:4;17789:23;:::i;:::-;17781:31;;17833:25;17849:8;17833:25;:::i;:::-;17821:37;;17877:104;17914:66;17904:8;17898:4;17877:104;:::i;:::-;17868:113;;17707:281;;;;:::o;17994:348::-;18034:7;18057:20;18075:1;18057:20;:::i;:::-;18052:25;;18091:20;18109:1;18091:20;:::i;:::-;18086:25;;18279:1;18211:66;18207:74;18204:1;18201:81;18196:1;18189:9;18182:17;18178:105;18175:131;;;18286:18;;:::i;:::-;18175:131;18334:1;18331;18327:9;18316:20;;17994:348;;;;:::o;18348:225::-;18488:34;18484:1;18476:6;18472:14;18465:58;18557:8;18552:2;18544:6;18540:15;18533:33;18348:225;:::o;18579:366::-;18721:3;18742:67;18806:2;18801:3;18742:67;:::i;:::-;18735:74;;18818:93;18907:3;18818:93;:::i;:::-;18936:2;18931:3;18927:12;18920:19;;18579:366;;;:::o;18951:419::-;19117:4;19155:2;19144:9;19140:18;19132:26;;19204:9;19198:4;19194:20;19190:1;19179:9;19175:17;19168:47;19232:131;19358:4;19232:131;:::i;:::-;19224:139;;18951:419;;;:::o;19376:223::-;19516:34;19512:1;19504:6;19500:14;19493:58;19585:6;19580:2;19572:6;19568:15;19561:31;19376:223;:::o;19605:366::-;19747:3;19768:67;19832:2;19827:3;19768:67;:::i;:::-;19761:74;;19844:93;19933:3;19844:93;:::i;:::-;19962:2;19957:3;19953:12;19946:19;;19605:366;;;:::o;19977:419::-;20143:4;20181:2;20170:9;20166:18;20158:26;;20230:9;20224:4;20220:20;20216:1;20205:9;20201:17;20194:47;20258:131;20384:4;20258:131;:::i;:::-;20250:139;;19977:419;;;:::o;20402:221::-;20542:34;20538:1;20530:6;20526:14;20519:58;20611:4;20606:2;20598:6;20594:15;20587:29;20402:221;:::o;20629:366::-;20771:3;20792:67;20856:2;20851:3;20792:67;:::i;:::-;20785:74;;20868:93;20957:3;20868:93;:::i;:::-;20986:2;20981:3;20977:12;20970:19;;20629:366;;;:::o;21001:419::-;21167:4;21205:2;21194:9;21190:18;21182:26;;21254:9;21248:4;21244:20;21240:1;21229:9;21225:17;21218:47;21282:131;21408:4;21282:131;:::i;:::-;21274:139;;21001:419;;;:::o;21426:224::-;21566:34;21562:1;21554:6;21550:14;21543:58;21635:7;21630:2;21622:6;21618:15;21611:32;21426:224;:::o;21656:366::-;21798:3;21819:67;21883:2;21878:3;21819:67;:::i;:::-;21812:74;;21895:93;21984:3;21895:93;:::i;:::-;22013:2;22008:3;22004:12;21997:19;;21656:366;;;:::o;22028:419::-;22194:4;22232:2;22221:9;22217:18;22209:26;;22281:9;22275:4;22271:20;22267:1;22256:9;22252:17;22245:47;22309:131;22435:4;22309:131;:::i;:::-;22301:139;;22028:419;;;:::o;22453:222::-;22593:34;22589:1;22581:6;22577:14;22570:58;22662:5;22657:2;22649:6;22645:15;22638:30;22453:222;:::o;22681:366::-;22823:3;22844:67;22908:2;22903:3;22844:67;:::i;:::-;22837:74;;22920:93;23009:3;22920:93;:::i;:::-;23038:2;23033:3;23029:12;23022:19;;22681:366;;;:::o;23053:419::-;23219:4;23257:2;23246:9;23242:18;23234:26;;23306:9;23300:4;23296:20;23292:1;23281:9;23277:17;23270:47;23334:131;23460:4;23334:131;:::i;:::-;23326:139;;23053:419;;;:::o;23478:228::-;23618:34;23614:1;23606:6;23602:14;23595:58;23687:11;23682:2;23674:6;23670:15;23663:36;23478:228;:::o;23712:366::-;23854:3;23875:67;23939:2;23934:3;23875:67;:::i;:::-;23868:74;;23951:93;24040:3;23951:93;:::i;:::-;24069:2;24064:3;24060:12;24053:19;;23712:366;;;:::o;24084:419::-;24250:4;24288:2;24277:9;24273:18;24265:26;;24337:9;24331:4;24327:20;24323:1;24312:9;24308:17;24301:47;24365:131;24491:4;24365:131;:::i;:::-;24357:139;;24084:419;;;:::o;24509:250::-;24649:34;24645:1;24637:6;24633:14;24626:58;24718:33;24713:2;24705:6;24701:15;24694:58;24509:250;:::o;24765:366::-;24907:3;24928:67;24992:2;24987:3;24928:67;:::i;:::-;24921:74;;25004:93;25093:3;25004:93;:::i;:::-;25122:2;25117:3;25113:12;25106:19;;24765:366;;;:::o;25137:419::-;25303:4;25341:2;25330:9;25326:18;25318:26;;25390:9;25384:4;25380:20;25376:1;25365:9;25361:17;25354:47;25418:131;25544:4;25418:131;:::i;:::-;25410:139;;25137:419;;;:::o;25562:178::-;25702:30;25698:1;25690:6;25686:14;25679:54;25562:178;:::o;25746:366::-;25888:3;25909:67;25973:2;25968:3;25909:67;:::i;:::-;25902:74;;25985:93;26074:3;25985:93;:::i;:::-;26103:2;26098:3;26094:12;26087:19;;25746:366;;;:::o;26118:419::-;26284:4;26322:2;26311:9;26307:18;26299:26;;26371:9;26365:4;26361:20;26357:1;26346:9;26342:17;26335:47;26399:131;26525:4;26399:131;:::i;:::-;26391:139;;26118:419;;;:::o;26543:222::-;26683:34;26679:1;26671:6;26667:14;26660:58;26752:5;26747:2;26739:6;26735:15;26728:30;26543:222;:::o;26771:366::-;26913:3;26934:67;26998:2;26993:3;26934:67;:::i;:::-;26927:74;;27010:93;27099:3;27010:93;:::i;:::-;27128:2;27123:3;27119:12;27112:19;;26771:366;;;:::o;27143:419::-;27309:4;27347:2;27336:9;27332:18;27324:26;;27396:9;27390:4;27386:20;27382:1;27371:9;27367:17;27360:47;27424:131;27550:4;27424:131;:::i;:::-;27416:139;;27143:419;;;:::o;27568:305::-;27608:3;27627:20;27645:1;27627:20;:::i;:::-;27622:25;;27661:20;27679:1;27661:20;:::i;:::-;27656:25;;27815:1;27747:66;27743:74;27740:1;27737:81;27734:107;;;27821:18;;:::i;:::-;27734:107;27865:1;27862;27858:9;27851:16;;27568:305;;;;:::o;27879:222::-;28019:34;28015:1;28007:6;28003:14;27996:58;28088:5;28083:2;28075:6;28071:15;28064:30;27879:222;:::o;28107:366::-;28249:3;28270:67;28334:2;28329:3;28270:67;:::i;:::-;28263:74;;28346:93;28435:3;28346:93;:::i;:::-;28464:2;28459:3;28455:12;28448:19;;28107:366;;;:::o;28479:419::-;28645:4;28683:2;28672:9;28668:18;28660:26;;28732:9;28726:4;28722:20;28718:1;28707:9;28703:17;28696:47;28760:131;28886:4;28760:131;:::i;:::-;28752:139;;28479:419;;;:::o;28904:191::-;28944:4;28964:20;28982:1;28964:20;:::i;:::-;28959:25;;28998:20;29016:1;28998:20;:::i;:::-;28993:25;;29037:1;29034;29031:8;29028:34;;;29042:18;;:::i;:::-;29028:34;29087:1;29084;29080:9;29072:17;;28904:191;;;;:::o;29101:229::-;29241:34;29237:1;29229:6;29225:14;29218:58;29310:12;29305:2;29297:6;29293:15;29286:37;29101:229;:::o;29336:366::-;29478:3;29499:67;29563:2;29558:3;29499:67;:::i;:::-;29492:74;;29575:93;29664:3;29575:93;:::i;:::-;29693:2;29688:3;29684:12;29677:19;;29336:366;;;:::o;29708:419::-;29874:4;29912:2;29901:9;29897:18;29889:26;;29961:9;29955:4;29951:20;29947:1;29936:9;29932:17;29925:47;29989:131;30115:4;29989:131;:::i;:::-;29981:139;;29708:419;;;:::o;30133:143::-;30190:5;30221:6;30215:13;30206:22;;30237:33;30264:5;30237:33;:::i;:::-;30133:143;;;;:::o;30282:351::-;30352:6;30401:2;30389:9;30380:7;30376:23;30372:32;30369:119;;;30407:79;;:::i;:::-;30369:119;30527:1;30552:64;30608:7;30599:6;30588:9;30584:22;30552:64;:::i;:::-;30542:74;;30498:128;30282:351;;;;:::o;30639:85::-;30684:7;30713:5;30702:16;;30639:85;;;:::o;30730:158::-;30788:9;30821:61;30839:42;30848:32;30874:5;30848:32;:::i;:::-;30839:42;:::i;:::-;30821:61;:::i;:::-;30808:74;;30730:158;;;:::o;30894:147::-;30989:45;31028:5;30989:45;:::i;:::-;30984:3;30977:58;30894:147;;:::o;31047:114::-;31114:6;31148:5;31142:12;31132:22;;31047:114;;;:::o;31167:184::-;31266:11;31300:6;31295:3;31288:19;31340:4;31335:3;31331:14;31316:29;;31167:184;;;;:::o;31357:132::-;31424:4;31447:3;31439:11;;31477:4;31472:3;31468:14;31460:22;;31357:132;;;:::o;31495:108::-;31572:24;31590:5;31572:24;:::i;:::-;31567:3;31560:37;31495:108;;:::o;31609:179::-;31678:10;31699:46;31741:3;31733:6;31699:46;:::i;:::-;31777:4;31772:3;31768:14;31754:28;;31609:179;;;;:::o;31794:113::-;31864:4;31896;31891:3;31887:14;31879:22;;31794:113;;;:::o;31943:732::-;32062:3;32091:54;32139:5;32091:54;:::i;:::-;32161:86;32240:6;32235:3;32161:86;:::i;:::-;32154:93;;32271:56;32321:5;32271:56;:::i;:::-;32350:7;32381:1;32366:284;32391:6;32388:1;32385:13;32366:284;;;32467:6;32461:13;32494:63;32553:3;32538:13;32494:63;:::i;:::-;32487:70;;32580:60;32633:6;32580:60;:::i;:::-;32570:70;;32426:224;32413:1;32410;32406:9;32401:14;;32366:284;;;32370:14;32666:3;32659:10;;32067:608;;;31943:732;;;;:::o;32681:831::-;32944:4;32982:3;32971:9;32967:19;32959:27;;32996:71;33064:1;33053:9;33049:17;33040:6;32996:71;:::i;:::-;33077:80;33153:2;33142:9;33138:18;33129:6;33077:80;:::i;:::-;33204:9;33198:4;33194:20;33189:2;33178:9;33174:18;33167:48;33232:108;33335:4;33326:6;33232:108;:::i;:::-;33224:116;;33350:72;33418:2;33407:9;33403:18;33394:6;33350:72;:::i;:::-;33432:73;33500:3;33489:9;33485:19;33476:6;33432:73;:::i;:::-;32681:831;;;;;;;;:::o;33518:180::-;33566:77;33563:1;33556:88;33663:4;33660:1;33653:15;33687:4;33684:1;33677:15;33704:185;33744:1;33761:20;33779:1;33761:20;:::i;:::-;33756:25;;33795:20;33813:1;33795:20;:::i;:::-;33790:25;;33834:1;33824:35;;33839:18;;:::i;:::-;33824:35;33881:1;33878;33874:9;33869:14;;33704:185;;;;:::o;33895:220::-;34035:34;34031:1;34023:6;34019:14;34012:58;34104:3;34099:2;34091:6;34087:15;34080:28;33895:220;:::o;34121:366::-;34263:3;34284:67;34348:2;34343:3;34284:67;:::i;:::-;34277:74;;34360:93;34449:3;34360:93;:::i;:::-;34478:2;34473:3;34469:12;34462:19;;34121:366;;;:::o;34493:419::-;34659:4;34697:2;34686:9;34682:18;34674:26;;34746:9;34740:4;34736:20;34732:1;34721:9;34717:17;34710:47;34774:131;34900:4;34774:131;:::i;:::-;34766:139;;34493:419;;;:::o;34918:177::-;35058:29;35054:1;35046:6;35042:14;35035:53;34918:177;:::o;35101:366::-;35243:3;35264:67;35328:2;35323:3;35264:67;:::i;:::-;35257:74;;35340:93;35429:3;35340:93;:::i;:::-;35458:2;35453:3;35449:12;35442:19;;35101:366;;;:::o;35473:419::-;35639:4;35677:2;35666:9;35662:18;35654:26;;35726:9;35720:4;35716:20;35712:1;35701:9;35697:17;35690:47;35754:131;35880:4;35754:131;:::i;:::-;35746:139;;35473:419;;;:::o
Swarm Source
ipfs://1c172c05def5354dbe425868b1bcc4c95f0f02e016c05b5c003f0e560cc2dac7
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.