ERC-20
Overview
Max Total Supply
1,000,000,000 $MEBRO
Holders
102
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
50,742.794332978 $MEBROValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MetaverseBrokers
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT /* ┌──────────────┐ │ WE ARE MEBRO │ └──────────────┘ TELEGRAM: https://t.me/MetaverseMeBro WEBSITE: https://www.metaversebrokers.finance/ TWITTER: https://twitter.com/metaversemebro */ pragma solidity ^0.8.4; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract MetaverseBrokers is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcludedFromAntiBot; mapping (address => uint) private _antiBot; mapping (address => bool) private _bots; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e9 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public _reflectionFee = 1; uint256 public _tokensBuyFee = 12; uint256 public _maxTokensBuyFee = 12; uint256 public _tokensSellFee = 12; uint256 private _swapThreshold; uint256 private _swapAmountMax; address payable private _treasuryWallet; address payable private _teamWallet; string private constant _name = "MetaverseBrokers"; string private constant _symbol = "$MEBRO"; uint8 private constant _decimals = 9; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; uint private tradingOpenTime; bool private inSwap = false; bool private swapEnabled = false; uint256 private _maxWalletAmount = _tTotal; event TreasuryWalletUpdated(address wallet); event TeamWalletUpdated(address wallet); event MaxWalletAmountRemoved(); event SwapThresholdUpdated(uint _swapThreshold); event SwapAmountMaxUpdated(uint _swapAmountMax); event BuyFeeUpdated(uint _tokensBuyFee); event ExcludedFromFees(address _account, bool _excluded); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _treasuryWallet = payable(0x22B44C1D42239a4d0CF67C2f83ccaa869Ed20235); _teamWallet = payable(0xEA70D22a56bC8bA6fc6F3B28D542303225C160CB); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_treasuryWallet] = true; _isExcludedFromFee[_teamWallet] = true; _isExcludedFromAntiBot[owner()] = true; _isExcludedFromAntiBot[address(this)] = true; emit Transfer(address(0x0000000000000000000000000000000000000000), _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 updateTreasuryWallet(address payable account) external onlyOwner() { _treasuryWallet = account; excludeFromFee(account, true); excludeFromAntiBot(account); emit TreasuryWalletUpdated(account); } function updateTeamWallet(address payable account) external onlyOwner() { _teamWallet = account; excludeFromFee(account, true); excludeFromAntiBot(account); emit TeamWalletUpdated(account); } function setSwapThreshold(uint256 swapThreshold) external onlyOwner() { _swapThreshold = swapThreshold; emit SwapThresholdUpdated(swapThreshold); } function setSwapAmountMax(uint256 swapAmountMax) external onlyOwner() { _swapAmountMax = swapAmountMax; emit SwapAmountMaxUpdated(swapAmountMax); } function setNewBuyFee(uint256 newBuyFee) external onlyOwner() { require(newBuyFee <= _maxTokensBuyFee, "Buy fee cannot be that large"); _tokensBuyFee = newBuyFee; emit BuyFeeUpdated(newBuyFee); } function excludeFromFee(address account, bool excluded) public onlyOwner() { _isExcludedFromFee[account] = excluded; emit ExcludedFromFees(account, excluded); } function excludeFromAntiBot(address account) public onlyOwner() { _isExcludedFromAntiBot[account] = 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 _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()) { require(!_bots[from] && !_bots[to]); if ( from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) { require(balanceOf(to) + amount <= _maxWalletAmount); if(!_isExcludedFromAntiBot[to] && _antiBot[to] == 0) { uint elapsed = block.timestamp - tradingOpenTime; if(elapsed < 30) { uint256 duration = (30 - elapsed) * 240; _antiBot[to] = block.timestamp + duration; } } } uint256 swapAmount = balanceOf(address(this)); if(swapAmount > _swapAmountMax) { swapAmount = _swapAmountMax; } if (swapAmount > _swapThreshold && !inSwap && from != uniswapV2Pair && swapEnabled) { swapTokensForEth(swapAmount); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHTreasuryAndTeam(address(this).balance); } } } _tokenTransfer(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHTreasuryAndTeam(uint256 amount) private { //10/12ths goes to treasury because sell fee is 10% and team is 2%. uint256 treasury = amount * 10 / 12; uint256 team = amount - treasury; _treasuryWallet.transfer(treasury); _teamWallet.transfer(team); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromAntiBot[address(uniswapV2Router)] = true; _isExcludedFromAntiBot[address(uniswapV2Pair)] = true; _isExcludedFromFee[address(uniswapV2Router)] = true; uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; _maxWalletAmount = 1e7 * 10**9; tradingOpen = true; tradingOpenTime = block.timestamp; _swapThreshold = 1e6 * 10**9; _swapAmountMax = 3e6 * 10**9; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function setBots(address[] memory bots) public onlyOwner { //Cannot set bots after first 12 hours require(block.timestamp < tradingOpenTime + (1 days / 2), "Cannot set bots anymore"); for (uint i = 0; i < bots.length; i++) { _bots[bots[i]] = true; } } function removeStrictWalletLimit() public onlyOwner { _maxWalletAmount = 1e9 * 10**9; emit MaxWalletAmountRemoved(); } function delBot(address notbot) public onlyOwner { _bots[notbot] = false; } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } function _calculateFee(uint256 fee, address sender, address recipient) private view returns (uint256) { if(!tradingOpen || inSwap) { return 0; } if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { return 0; } return fee; } function _calculateReflectionFee(address sender, address recipient) private view returns (uint256) { if(sender == uniswapV2Pair && _tokensBuyFee == 0) { return _calculateFee(0, sender, recipient); } return _calculateFee(_reflectionFee, sender, recipient); } function _calculateTokenFee(address sender, address recipient) private view returns (uint256) { if(sender == uniswapV2Pair) { return _calculateFee(_tokensBuyFee, sender, recipient); } return _calculateFee(_tokensSellFee, sender, recipient); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount, _calculateReflectionFee(sender, recipient), _calculateTokenFee(sender, recipient)); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } 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 manualSwap() public { require(_msgSender() == _teamWallet); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualSend() public { require(_msgSender() == _teamWallet); uint256 contractETHBalance = address(this).balance; sendETHTreasuryAndTeam(contractETHBalance); } function manualSwapAndSend() external { manualSwap(); manualSend(); } function _getValues(uint256 tAmount, uint256 reflectionFee, uint256 tokenFee) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, reflectionFee, tokenFee); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, _getRate()); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).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); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokensBuyFee","type":"uint256"}],"name":"BuyFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"bool","name":"_excluded","type":"bool"}],"name":"ExcludedFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountRemoved","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":false,"internalType":"uint256","name":"_swapAmountMax","type":"uint256"}],"name":"SwapAmountMaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"SwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"TeamWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"TreasuryWalletUpdated","type":"event"},{"inputs":[],"name":"_maxTokensBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokensBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokensSellFee","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapAndSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStrictWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"}],"name":"setNewBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapAmountMax","type":"uint256"}],"name":"setSwapAmountMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapThreshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c9190620005db565b6000196200002b919062000596565b6009556001600b55600c8055600c600d55600c600e556000601660006101000a81548160ff0219169083151502179055506000601660016101000a81548160ff021916908315150217905550670de0b6b3a76400006017553480156200009057600080fd5b506000620000a36200053760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507322b44c1d42239a4d0cf67c2f83ccaa869ed20235601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ea70d22a56bc8ba6fc6f3b28d542303225c160cb601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460026000620002026200053760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002566200053f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620004096200053f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004c26200053760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000529919062000579565b60405180910390a362000671565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200057381620005d1565b82525050565b600060208201905062000590600083018462000568565b92915050565b6000620005a382620005d1565b9150620005b083620005d1565b925082821015620005c657620005c562000613565b5b828203905092915050565b6000819050919050565b6000620005e882620005d1565b9150620005f583620005d1565b92508262000608576200060762000642565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6142dc80620006816000396000f3fe6080604052600436106101c65760003560e01c8063809d458d116100f7578063a9059cbb11610095578063df8408fe11610064578063df8408fe146105eb578063f1b758b814610614578063f42938901461063f578063f46a903b14610656576101cd565b8063a9059cbb14610531578063b515566a1461056e578063c9567bf914610597578063dd62ed3e146105ae576101cd565b806395d89b41116100d157806395d89b411461049d57806399ce371a146104c85780639d0014b1146104df5780639dbc914214610508576101cd565b8063809d458d146104205780638b9dd3be146104495780638da5cb5b14610472576101cd565b80633ee0ce02116101645780636fb9ede01161013e5780636fb9ede01461037a57806370a08231146103a3578063715018a6146103e05780637cb332bb146103f7576101cd565b80633ee0ce021461032157806351bc3c851461033857806352ef10041461034f576101cd565b806323b872dd116101a057806323b872dd14610265578063273123b7146102a2578063313ce567146102cb5780633206b4aa146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610681565b6040516101f49190613945565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f919061343e565b6106be565b604051610231919061392a565b60405180910390f35b34801561024657600080fd5b5061024f6106dc565b60405161025c9190613ae7565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906133b3565b6106ec565b604051610299919061392a565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c491906132fc565b6107c5565b005b3480156102d757600080fd5b506102e06108b5565b6040516102ed9190613b5c565b60405180910390f35b34801561030257600080fd5b5061030b6108be565b6040516103189190613ae7565b60405180910390f35b34801561032d57600080fd5b506103366108c4565b005b34801561034457600080fd5b5061034d6108d6565b005b34801561035b57600080fd5b50610364610950565b6040516103719190613ae7565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c91906134e4565b610956565b005b3480156103af57600080fd5b506103ca60048036038101906103c591906132fc565b610a2c565b6040516103d79190613ae7565b60405180910390f35b3480156103ec57600080fd5b506103f5610a7d565b005b34801561040357600080fd5b5061041e6004803603810190610419919061334e565b610bd0565b005b34801561042c57600080fd5b506104476004803603810190610442919061334e565b610cf4565b005b34801561045557600080fd5b50610470600480360381019061046b91906134e4565b610e18565b005b34801561047e57600080fd5b50610487610f33565b6040516104949190613818565b60405180910390f35b3480156104a957600080fd5b506104b2610f5c565b6040516104bf9190613945565b60405180910390f35b3480156104d457600080fd5b506104dd610f99565b005b3480156104eb57600080fd5b50610506600480360381019061050191906134e4565b61106b565b005b34801561051457600080fd5b5061052f600480360381019061052a91906132fc565b611141565b005b34801561053d57600080fd5b506105586004803603810190610553919061343e565b611231565b604051610565919061392a565b60405180910390f35b34801561057a57600080fd5b506105956004803603810190610590919061347a565b61124f565b005b3480156105a357600080fd5b506105ac6113f0565b005b3480156105ba57600080fd5b506105d560048036038101906105d09190613377565b611abd565b6040516105e29190613ae7565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d9190613402565b611b44565b005b34801561062057600080fd5b50610629611c6d565b6040516106369190613ae7565b60405180910390f35b34801561064b57600080fd5b50610654611c73565b005b34801561066257600080fd5b5061066b611ce5565b6040516106789190613ae7565b60405180910390f35b60606040518060400160405280601081526020017f4d657461766572736542726f6b65727300000000000000000000000000000000815250905090565b60006106d26106cb611ceb565b8484611cf3565b6001905092915050565b6000670de0b6b3a7640000905090565b60006106f9848484611ebe565b6107ba84610705611ceb565b6107b58560405180606001604052806028815260200161427f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061076b611ceb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124429092919063ffffffff16565b611cf3565b600190509392505050565b6107cd611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190613a27565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600b5481565b6108cc6108d6565b6108d4611c73565b565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610917611ceb565b73ffffffffffffffffffffffffffffffffffffffff161461093757600080fd5b600061094230610a2c565b905061094d816124a6565b50565b600d5481565b61095e611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e290613a27565b60405180910390fd5b806010819055507ffb59193d7ee16c3f4b097b8862be6be106b66f962e36b68a1667b1cab6b7565a81604051610a219190613ae7565b60405180910390a150565b6000610a76600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a0565b9050919050565b610a85611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990613a27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bd8611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613a27565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cb1816001611b44565b610cba81611141565b7ff6215f245bfd24e51265c56ef650fdd856aa4ece6221ee1ef395bbe0a555801081604051610ce99190613833565b60405180910390a150565b610cfc611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8090613a27565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd5816001611b44565b610dde81611141565b7f97c79b3848e51f57983ac89e4403452655c8d83ceba8199011de63a74f60d1a781604051610e0d9190613833565b60405180910390a150565b610e20611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490613a27565b60405180910390fd5b600d54811115610ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee990613a67565b60405180910390fd5b80600c819055507f7c1445c98b278c9970d007fca6048704bcb25af7cc4a04eb56565d9a9f149ca381604051610f289190613ae7565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f244d4542524f0000000000000000000000000000000000000000000000000000815250905090565b610fa1611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102590613a27565b60405180910390fd5b670de0b6b3a76400006017819055507fbc54b8a36d24791ebf93a8caf2adf66076d48f98f80cd86d7cddd5b3fb46d66d60405160405180910390a1565b611073611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f790613a27565b60405180910390fd5b80600f819055507f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd06476816040516111369190613ae7565b60405180910390a150565b611149611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90613a27565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061124561123e611ceb565b8484611ebe565b6001905092915050565b611257611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112db90613a27565b60405180910390fd5b61a8c06015546112f49190613c1d565b4210611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c906139e7565b60405180910390fd5b60005b81518110156113ec57600160086000848481518110611380577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113e490613e45565b915050611338565b5050565b6113f8611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90613a27565b60405180910390fd5b60148054906101000a900460ff16156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca90613ac7565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061156230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611cf3565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156115a857600080fd5b505afa1580156115bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e09190613325565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561164257600080fd5b505afa158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a9190613325565b6040518363ffffffff1660e01b815260040161169792919061384e565b602060405180830381600087803b1580156116b157600080fd5b505af11580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190613325565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306118e030610a2c565b6000806118eb610f33565b426040518863ffffffff1660e01b815260040161190d969594939291906138c9565b6060604051808303818588803b15801561192657600080fd5b505af115801561193a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061195f919061350d565b5050506001601660016101000a81548160ff021916908315150217905550662386f26fc1000060178190555060016014806101000a81548160ff0219169083151502179055504260158190555066038d7ea4c68000600f81905550660aa87bee538000601081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611a679291906138a0565b602060405180830381600087803b158015611a8157600080fd5b505af1158015611a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab991906134bb565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b4c611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd090613a27565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb8282604051611c61929190613877565b60405180910390a15050565b600e5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cb4611ceb565b73ffffffffffffffffffffffffffffffffffffffff1614611cd457600080fd5b6000479050611ce28161280e565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5a90613aa7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca906139a7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb19190613ae7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2590613a87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9590613967565b60405180910390fd5b60008111611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613a47565b60405180910390fd5b611fe9610f33565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120575750612027610f33565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561243257600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121005750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61210957600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121b45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561220a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561235b576017548161221c84610a2c565b6122269190613c1d565b111561223157600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122ca57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561235a576000601554426122df9190613cfe565b9050601e81101561235857600060f082601e6122fb9190613cfe565b6123059190613ca4565b905080426123139190613c1d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b505b5b600061236630610a2c565b90506010548111156123785760105490505b600f54811180156123965750601660009054906101000a900460ff16155b80156123f05750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124085750601660019054906101000a900460ff165b1561243057612416816124a6565b6000479050600081111561242e5761242d4761280e565b5b505b505b61243d838383612912565b505050565b600083831115829061248a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124819190613945565b60405180910390fd5b50600083856124999190613cfe565b9050809150509392505050565b6001601660006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612504577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125325781602001602082028036833780820191505090505b5090503081600081518110612570577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561261257600080fd5b505afa158015612626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264a9190613325565b81600181518110612684577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126eb30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cf3565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161274f959493929190613b02565b600060405180830381600087803b15801561276957600080fd5b505af115801561277d573d6000803e3d6000fd5b50505050506000601660006101000a81548160ff02191690831515021790555050565b60006009548211156127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de90613987565b60405180910390fd5b60006127f1612922565b9050612806818461294d90919063ffffffff16565b915050919050565b6000600c600a8361281f9190613ca4565b6128299190613c73565b9050600081836128399190613cfe565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156128a3573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561290c573d6000803e3d6000fd5b50505050565b61291d838383612997565b505050565b600080600061292f612b76565b91509150612946818361294d90919063ffffffff16565b9250505090565b600061298f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bd5565b905092915050565b6000806000806000806129bd876129ae8b8b612c38565b6129b88c8c612cc7565b612d49565b955095509550955095509550612a1b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612daa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612afc81612e52565b612b068483612f0f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b639190613ae7565b60405180910390a3505050505050505050565b600080600060095490506000670de0b6b3a76400009050612baa670de0b6b3a764000060095461294d90919063ffffffff16565b821015612bc857600954670de0b6b3a7640000935093505050612bd1565b81819350935050505b9091565b60008083118290612c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c139190613945565b60405180910390fd5b5060008385612c2b9190613c73565b9050809150509392505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612c9957506000600c54145b15612cb157612caa60008484612f49565b9050612cc1565b612cbe600b548484612f49565b90505b92915050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d3357612d2c600c548484612f49565b9050612d43565b612d40600e548484612f49565b90505b92915050565b6000806000806000806000806000612d628c8c8c613039565b9250925092506000806000612d808f8686612d7b612922565b6130cf565b9250925092508282828888889b509b509b509b509b509b5050505050505093975093979195509350565b6000612dec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612442565b905092915050565b6000808284612e039190613c1d565b905083811015612e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3f906139c7565b60405180910390fd5b8091505092915050565b6000612e5c612922565b90506000612e73828461315890919063ffffffff16565b9050612ec781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f2482600954612daa90919063ffffffff16565b600981905550612f3f81600a54612df490919063ffffffff16565b600a819055505050565b600060148054906101000a900460ff161580612f715750601660009054906101000a900460ff165b15612f7f5760009050613032565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130205750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561302e5760009050613032565b8390505b9392505050565b6000806000806130656064613057888a61315890919063ffffffff16565b61294d90919063ffffffff16565b9050600061308f6064613081888b61315890919063ffffffff16565b61294d90919063ffffffff16565b905060006130b8826130aa858c612daa90919063ffffffff16565b612daa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806130e8858961315890919063ffffffff16565b905060006130ff868961315890919063ffffffff16565b90506000613116878961315890919063ffffffff16565b9050600061313f826131318587612daa90919063ffffffff16565b612daa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561316b57600090506131cd565b600082846131799190613ca4565b90508284826131889190613c73565b146131c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131bf90613a07565b60405180910390fd5b809150505b92915050565b60006131e66131e184613b9c565b613b77565b9050808382526020820190508285602086028201111561320557600080fd5b60005b85811015613235578161321b888261323f565b845260208401935060208301925050600181019050613208565b5050509392505050565b60008135905061324e81614222565b92915050565b60008151905061326381614222565b92915050565b60008135905061327881614239565b92915050565b600082601f83011261328f57600080fd5b813561329f8482602086016131d3565b91505092915050565b6000813590506132b781614250565b92915050565b6000815190506132cc81614250565b92915050565b6000813590506132e181614267565b92915050565b6000815190506132f681614267565b92915050565b60006020828403121561330e57600080fd5b600061331c8482850161323f565b91505092915050565b60006020828403121561333757600080fd5b600061334584828501613254565b91505092915050565b60006020828403121561336057600080fd5b600061336e84828501613269565b91505092915050565b6000806040838503121561338a57600080fd5b60006133988582860161323f565b92505060206133a98582860161323f565b9150509250929050565b6000806000606084860312156133c857600080fd5b60006133d68682870161323f565b93505060206133e78682870161323f565b92505060406133f8868287016132d2565b9150509250925092565b6000806040838503121561341557600080fd5b60006134238582860161323f565b9250506020613434858286016132a8565b9150509250929050565b6000806040838503121561345157600080fd5b600061345f8582860161323f565b9250506020613470858286016132d2565b9150509250929050565b60006020828403121561348c57600080fd5b600082013567ffffffffffffffff8111156134a657600080fd5b6134b28482850161327e565b91505092915050565b6000602082840312156134cd57600080fd5b60006134db848285016132bd565b91505092915050565b6000602082840312156134f657600080fd5b6000613504848285016132d2565b91505092915050565b60008060006060848603121561352257600080fd5b6000613530868287016132e7565b9350506020613541868287016132e7565b9250506040613552868287016132e7565b9150509250925092565b60006135688383613583565b60208301905092915050565b61357d81613d99565b82525050565b61358c81613d32565b82525050565b61359b81613d32565b82525050565b60006135ac82613bd8565b6135b68185613bfb565b93506135c183613bc8565b8060005b838110156135f25781516135d9888261355c565b97506135e483613bee565b9250506001810190506135c5565b5085935050505092915050565b61360881613d56565b82525050565b61361781613dab565b82525050565b600061362882613be3565b6136328185613c0c565b9350613642818560208601613de1565b61364b81613f1b565b840191505092915050565b6000613663602383613c0c565b915061366e82613f2c565b604082019050919050565b6000613686602a83613c0c565b915061369182613f7b565b604082019050919050565b60006136a9602283613c0c565b91506136b482613fca565b604082019050919050565b60006136cc601b83613c0c565b91506136d782614019565b602082019050919050565b60006136ef601783613c0c565b91506136fa82614042565b602082019050919050565b6000613712602183613c0c565b915061371d8261406b565b604082019050919050565b6000613735602083613c0c565b9150613740826140ba565b602082019050919050565b6000613758602983613c0c565b9150613763826140e3565b604082019050919050565b600061377b601c83613c0c565b915061378682614132565b602082019050919050565b600061379e602583613c0c565b91506137a98261415b565b604082019050919050565b60006137c1602483613c0c565b91506137cc826141aa565b604082019050919050565b60006137e4601783613c0c565b91506137ef826141f9565b602082019050919050565b61380381613d82565b82525050565b61381281613d8c565b82525050565b600060208201905061382d6000830184613592565b92915050565b60006020820190506138486000830184613574565b92915050565b60006040820190506138636000830185613592565b6138706020830184613592565b9392505050565b600060408201905061388c6000830185613592565b61389960208301846135ff565b9392505050565b60006040820190506138b56000830185613592565b6138c260208301846137fa565b9392505050565b600060c0820190506138de6000830189613592565b6138eb60208301886137fa565b6138f8604083018761360e565b613905606083018661360e565b6139126080830185613592565b61391f60a08301846137fa565b979650505050505050565b600060208201905061393f60008301846135ff565b92915050565b6000602082019050818103600083015261395f818461361d565b905092915050565b6000602082019050818103600083015261398081613656565b9050919050565b600060208201905081810360008301526139a081613679565b9050919050565b600060208201905081810360008301526139c08161369c565b9050919050565b600060208201905081810360008301526139e0816136bf565b9050919050565b60006020820190508181036000830152613a00816136e2565b9050919050565b60006020820190508181036000830152613a2081613705565b9050919050565b60006020820190508181036000830152613a4081613728565b9050919050565b60006020820190508181036000830152613a608161374b565b9050919050565b60006020820190508181036000830152613a808161376e565b9050919050565b60006020820190508181036000830152613aa081613791565b9050919050565b60006020820190508181036000830152613ac0816137b4565b9050919050565b60006020820190508181036000830152613ae0816137d7565b9050919050565b6000602082019050613afc60008301846137fa565b92915050565b600060a082019050613b1760008301886137fa565b613b24602083018761360e565b8181036040830152613b3681866135a1565b9050613b456060830185613592565b613b5260808301846137fa565b9695505050505050565b6000602082019050613b716000830184613809565b92915050565b6000613b81613b92565b9050613b8d8282613e14565b919050565b6000604051905090565b600067ffffffffffffffff821115613bb757613bb6613eec565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c2882613d82565b9150613c3383613d82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c6857613c67613e8e565b5b828201905092915050565b6000613c7e82613d82565b9150613c8983613d82565b925082613c9957613c98613ebd565b5b828204905092915050565b6000613caf82613d82565b9150613cba83613d82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cf357613cf2613e8e565b5b828202905092915050565b6000613d0982613d82565b9150613d1483613d82565b925082821015613d2757613d26613e8e565b5b828203905092915050565b6000613d3d82613d62565b9050919050565b6000613d4f82613d62565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613da482613dbd565b9050919050565b6000613db682613d82565b9050919050565b6000613dc882613dcf565b9050919050565b6000613dda82613d62565b9050919050565b60005b83811015613dff578082015181840152602081019050613de4565b83811115613e0e576000848401525b50505050565b613e1d82613f1b565b810181811067ffffffffffffffff82111715613e3c57613e3b613eec565b5b80604052505050565b6000613e5082613d82565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e8357613e82613e8e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f43616e6e6f742073657420626f747320616e796d6f7265000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f427579206665652063616e6e6f742062652074686174206c6172676500000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61422b81613d32565b811461423657600080fd5b50565b61424281613d44565b811461424d57600080fd5b50565b61425981613d56565b811461426457600080fd5b50565b61427081613d82565b811461427b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d22c0fa9b583f2adf50d4769574f75c831b4a1fd81e18b01d84d654da48c595964736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c8063809d458d116100f7578063a9059cbb11610095578063df8408fe11610064578063df8408fe146105eb578063f1b758b814610614578063f42938901461063f578063f46a903b14610656576101cd565b8063a9059cbb14610531578063b515566a1461056e578063c9567bf914610597578063dd62ed3e146105ae576101cd565b806395d89b41116100d157806395d89b411461049d57806399ce371a146104c85780639d0014b1146104df5780639dbc914214610508576101cd565b8063809d458d146104205780638b9dd3be146104495780638da5cb5b14610472576101cd565b80633ee0ce02116101645780636fb9ede01161013e5780636fb9ede01461037a57806370a08231146103a3578063715018a6146103e05780637cb332bb146103f7576101cd565b80633ee0ce021461032157806351bc3c851461033857806352ef10041461034f576101cd565b806323b872dd116101a057806323b872dd14610265578063273123b7146102a2578063313ce567146102cb5780633206b4aa146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610681565b6040516101f49190613945565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f919061343e565b6106be565b604051610231919061392a565b60405180910390f35b34801561024657600080fd5b5061024f6106dc565b60405161025c9190613ae7565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906133b3565b6106ec565b604051610299919061392a565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c491906132fc565b6107c5565b005b3480156102d757600080fd5b506102e06108b5565b6040516102ed9190613b5c565b60405180910390f35b34801561030257600080fd5b5061030b6108be565b6040516103189190613ae7565b60405180910390f35b34801561032d57600080fd5b506103366108c4565b005b34801561034457600080fd5b5061034d6108d6565b005b34801561035b57600080fd5b50610364610950565b6040516103719190613ae7565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c91906134e4565b610956565b005b3480156103af57600080fd5b506103ca60048036038101906103c591906132fc565b610a2c565b6040516103d79190613ae7565b60405180910390f35b3480156103ec57600080fd5b506103f5610a7d565b005b34801561040357600080fd5b5061041e6004803603810190610419919061334e565b610bd0565b005b34801561042c57600080fd5b506104476004803603810190610442919061334e565b610cf4565b005b34801561045557600080fd5b50610470600480360381019061046b91906134e4565b610e18565b005b34801561047e57600080fd5b50610487610f33565b6040516104949190613818565b60405180910390f35b3480156104a957600080fd5b506104b2610f5c565b6040516104bf9190613945565b60405180910390f35b3480156104d457600080fd5b506104dd610f99565b005b3480156104eb57600080fd5b50610506600480360381019061050191906134e4565b61106b565b005b34801561051457600080fd5b5061052f600480360381019061052a91906132fc565b611141565b005b34801561053d57600080fd5b506105586004803603810190610553919061343e565b611231565b604051610565919061392a565b60405180910390f35b34801561057a57600080fd5b506105956004803603810190610590919061347a565b61124f565b005b3480156105a357600080fd5b506105ac6113f0565b005b3480156105ba57600080fd5b506105d560048036038101906105d09190613377565b611abd565b6040516105e29190613ae7565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d9190613402565b611b44565b005b34801561062057600080fd5b50610629611c6d565b6040516106369190613ae7565b60405180910390f35b34801561064b57600080fd5b50610654611c73565b005b34801561066257600080fd5b5061066b611ce5565b6040516106789190613ae7565b60405180910390f35b60606040518060400160405280601081526020017f4d657461766572736542726f6b65727300000000000000000000000000000000815250905090565b60006106d26106cb611ceb565b8484611cf3565b6001905092915050565b6000670de0b6b3a7640000905090565b60006106f9848484611ebe565b6107ba84610705611ceb565b6107b58560405180606001604052806028815260200161427f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061076b611ceb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124429092919063ffffffff16565b611cf3565b600190509392505050565b6107cd611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190613a27565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600b5481565b6108cc6108d6565b6108d4611c73565b565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610917611ceb565b73ffffffffffffffffffffffffffffffffffffffff161461093757600080fd5b600061094230610a2c565b905061094d816124a6565b50565b600d5481565b61095e611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e290613a27565b60405180910390fd5b806010819055507ffb59193d7ee16c3f4b097b8862be6be106b66f962e36b68a1667b1cab6b7565a81604051610a219190613ae7565b60405180910390a150565b6000610a76600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a0565b9050919050565b610a85611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0990613a27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bd8611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613a27565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cb1816001611b44565b610cba81611141565b7ff6215f245bfd24e51265c56ef650fdd856aa4ece6221ee1ef395bbe0a555801081604051610ce99190613833565b60405180910390a150565b610cfc611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8090613a27565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd5816001611b44565b610dde81611141565b7f97c79b3848e51f57983ac89e4403452655c8d83ceba8199011de63a74f60d1a781604051610e0d9190613833565b60405180910390a150565b610e20611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490613a27565b60405180910390fd5b600d54811115610ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee990613a67565b60405180910390fd5b80600c819055507f7c1445c98b278c9970d007fca6048704bcb25af7cc4a04eb56565d9a9f149ca381604051610f289190613ae7565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f244d4542524f0000000000000000000000000000000000000000000000000000815250905090565b610fa1611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102590613a27565b60405180910390fd5b670de0b6b3a76400006017819055507fbc54b8a36d24791ebf93a8caf2adf66076d48f98f80cd86d7cddd5b3fb46d66d60405160405180910390a1565b611073611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f790613a27565b60405180910390fd5b80600f819055507f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd06476816040516111369190613ae7565b60405180910390a150565b611149611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90613a27565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061124561123e611ceb565b8484611ebe565b6001905092915050565b611257611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112db90613a27565b60405180910390fd5b61a8c06015546112f49190613c1d565b4210611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c906139e7565b60405180910390fd5b60005b81518110156113ec57600160086000848481518110611380577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113e490613e45565b915050611338565b5050565b6113f8611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90613a27565b60405180910390fd5b60148054906101000a900460ff16156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca90613ac7565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061156230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611cf3565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156115a857600080fd5b505afa1580156115bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e09190613325565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561164257600080fd5b505afa158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a9190613325565b6040518363ffffffff1660e01b815260040161169792919061384e565b602060405180830381600087803b1580156116b157600080fd5b505af11580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190613325565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306118e030610a2c565b6000806118eb610f33565b426040518863ffffffff1660e01b815260040161190d969594939291906138c9565b6060604051808303818588803b15801561192657600080fd5b505af115801561193a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061195f919061350d565b5050506001601660016101000a81548160ff021916908315150217905550662386f26fc1000060178190555060016014806101000a81548160ff0219169083151502179055504260158190555066038d7ea4c68000600f81905550660aa87bee538000601081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611a679291906138a0565b602060405180830381600087803b158015611a8157600080fd5b505af1158015611a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab991906134bb565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b4c611ceb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd090613a27565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb8282604051611c61929190613877565b60405180910390a15050565b600e5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cb4611ceb565b73ffffffffffffffffffffffffffffffffffffffff1614611cd457600080fd5b6000479050611ce28161280e565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5a90613aa7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca906139a7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb19190613ae7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2590613a87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9590613967565b60405180910390fd5b60008111611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613a47565b60405180910390fd5b611fe9610f33565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120575750612027610f33565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561243257600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121005750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61210957600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121b45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561220a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561235b576017548161221c84610a2c565b6122269190613c1d565b111561223157600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122ca57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561235a576000601554426122df9190613cfe565b9050601e81101561235857600060f082601e6122fb9190613cfe565b6123059190613ca4565b905080426123139190613c1d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b505b5b600061236630610a2c565b90506010548111156123785760105490505b600f54811180156123965750601660009054906101000a900460ff16155b80156123f05750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124085750601660019054906101000a900460ff165b1561243057612416816124a6565b6000479050600081111561242e5761242d4761280e565b5b505b505b61243d838383612912565b505050565b600083831115829061248a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124819190613945565b60405180910390fd5b50600083856124999190613cfe565b9050809150509392505050565b6001601660006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612504577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125325781602001602082028036833780820191505090505b5090503081600081518110612570577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561261257600080fd5b505afa158015612626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264a9190613325565b81600181518110612684577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126eb30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cf3565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161274f959493929190613b02565b600060405180830381600087803b15801561276957600080fd5b505af115801561277d573d6000803e3d6000fd5b50505050506000601660006101000a81548160ff02191690831515021790555050565b60006009548211156127e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127de90613987565b60405180910390fd5b60006127f1612922565b9050612806818461294d90919063ffffffff16565b915050919050565b6000600c600a8361281f9190613ca4565b6128299190613c73565b9050600081836128399190613cfe565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156128a3573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561290c573d6000803e3d6000fd5b50505050565b61291d838383612997565b505050565b600080600061292f612b76565b91509150612946818361294d90919063ffffffff16565b9250505090565b600061298f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bd5565b905092915050565b6000806000806000806129bd876129ae8b8b612c38565b6129b88c8c612cc7565b612d49565b955095509550955095509550612a1b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612daa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612afc81612e52565b612b068483612f0f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b639190613ae7565b60405180910390a3505050505050505050565b600080600060095490506000670de0b6b3a76400009050612baa670de0b6b3a764000060095461294d90919063ffffffff16565b821015612bc857600954670de0b6b3a7640000935093505050612bd1565b81819350935050505b9091565b60008083118290612c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c139190613945565b60405180910390fd5b5060008385612c2b9190613c73565b9050809150509392505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612c9957506000600c54145b15612cb157612caa60008484612f49565b9050612cc1565b612cbe600b548484612f49565b90505b92915050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d3357612d2c600c548484612f49565b9050612d43565b612d40600e548484612f49565b90505b92915050565b6000806000806000806000806000612d628c8c8c613039565b9250925092506000806000612d808f8686612d7b612922565b6130cf565b9250925092508282828888889b509b509b509b509b509b5050505050505093975093979195509350565b6000612dec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612442565b905092915050565b6000808284612e039190613c1d565b905083811015612e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3f906139c7565b60405180910390fd5b8091505092915050565b6000612e5c612922565b90506000612e73828461315890919063ffffffff16565b9050612ec781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612df490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f2482600954612daa90919063ffffffff16565b600981905550612f3f81600a54612df490919063ffffffff16565b600a819055505050565b600060148054906101000a900460ff161580612f715750601660009054906101000a900460ff165b15612f7f5760009050613032565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130205750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561302e5760009050613032565b8390505b9392505050565b6000806000806130656064613057888a61315890919063ffffffff16565b61294d90919063ffffffff16565b9050600061308f6064613081888b61315890919063ffffffff16565b61294d90919063ffffffff16565b905060006130b8826130aa858c612daa90919063ffffffff16565b612daa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806130e8858961315890919063ffffffff16565b905060006130ff868961315890919063ffffffff16565b90506000613116878961315890919063ffffffff16565b9050600061313f826131318587612daa90919063ffffffff16565b612daa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561316b57600090506131cd565b600082846131799190613ca4565b90508284826131889190613c73565b146131c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131bf90613a07565b60405180910390fd5b809150505b92915050565b60006131e66131e184613b9c565b613b77565b9050808382526020820190508285602086028201111561320557600080fd5b60005b85811015613235578161321b888261323f565b845260208401935060208301925050600181019050613208565b5050509392505050565b60008135905061324e81614222565b92915050565b60008151905061326381614222565b92915050565b60008135905061327881614239565b92915050565b600082601f83011261328f57600080fd5b813561329f8482602086016131d3565b91505092915050565b6000813590506132b781614250565b92915050565b6000815190506132cc81614250565b92915050565b6000813590506132e181614267565b92915050565b6000815190506132f681614267565b92915050565b60006020828403121561330e57600080fd5b600061331c8482850161323f565b91505092915050565b60006020828403121561333757600080fd5b600061334584828501613254565b91505092915050565b60006020828403121561336057600080fd5b600061336e84828501613269565b91505092915050565b6000806040838503121561338a57600080fd5b60006133988582860161323f565b92505060206133a98582860161323f565b9150509250929050565b6000806000606084860312156133c857600080fd5b60006133d68682870161323f565b93505060206133e78682870161323f565b92505060406133f8868287016132d2565b9150509250925092565b6000806040838503121561341557600080fd5b60006134238582860161323f565b9250506020613434858286016132a8565b9150509250929050565b6000806040838503121561345157600080fd5b600061345f8582860161323f565b9250506020613470858286016132d2565b9150509250929050565b60006020828403121561348c57600080fd5b600082013567ffffffffffffffff8111156134a657600080fd5b6134b28482850161327e565b91505092915050565b6000602082840312156134cd57600080fd5b60006134db848285016132bd565b91505092915050565b6000602082840312156134f657600080fd5b6000613504848285016132d2565b91505092915050565b60008060006060848603121561352257600080fd5b6000613530868287016132e7565b9350506020613541868287016132e7565b9250506040613552868287016132e7565b9150509250925092565b60006135688383613583565b60208301905092915050565b61357d81613d99565b82525050565b61358c81613d32565b82525050565b61359b81613d32565b82525050565b60006135ac82613bd8565b6135b68185613bfb565b93506135c183613bc8565b8060005b838110156135f25781516135d9888261355c565b97506135e483613bee565b9250506001810190506135c5565b5085935050505092915050565b61360881613d56565b82525050565b61361781613dab565b82525050565b600061362882613be3565b6136328185613c0c565b9350613642818560208601613de1565b61364b81613f1b565b840191505092915050565b6000613663602383613c0c565b915061366e82613f2c565b604082019050919050565b6000613686602a83613c0c565b915061369182613f7b565b604082019050919050565b60006136a9602283613c0c565b91506136b482613fca565b604082019050919050565b60006136cc601b83613c0c565b91506136d782614019565b602082019050919050565b60006136ef601783613c0c565b91506136fa82614042565b602082019050919050565b6000613712602183613c0c565b915061371d8261406b565b604082019050919050565b6000613735602083613c0c565b9150613740826140ba565b602082019050919050565b6000613758602983613c0c565b9150613763826140e3565b604082019050919050565b600061377b601c83613c0c565b915061378682614132565b602082019050919050565b600061379e602583613c0c565b91506137a98261415b565b604082019050919050565b60006137c1602483613c0c565b91506137cc826141aa565b604082019050919050565b60006137e4601783613c0c565b91506137ef826141f9565b602082019050919050565b61380381613d82565b82525050565b61381281613d8c565b82525050565b600060208201905061382d6000830184613592565b92915050565b60006020820190506138486000830184613574565b92915050565b60006040820190506138636000830185613592565b6138706020830184613592565b9392505050565b600060408201905061388c6000830185613592565b61389960208301846135ff565b9392505050565b60006040820190506138b56000830185613592565b6138c260208301846137fa565b9392505050565b600060c0820190506138de6000830189613592565b6138eb60208301886137fa565b6138f8604083018761360e565b613905606083018661360e565b6139126080830185613592565b61391f60a08301846137fa565b979650505050505050565b600060208201905061393f60008301846135ff565b92915050565b6000602082019050818103600083015261395f818461361d565b905092915050565b6000602082019050818103600083015261398081613656565b9050919050565b600060208201905081810360008301526139a081613679565b9050919050565b600060208201905081810360008301526139c08161369c565b9050919050565b600060208201905081810360008301526139e0816136bf565b9050919050565b60006020820190508181036000830152613a00816136e2565b9050919050565b60006020820190508181036000830152613a2081613705565b9050919050565b60006020820190508181036000830152613a4081613728565b9050919050565b60006020820190508181036000830152613a608161374b565b9050919050565b60006020820190508181036000830152613a808161376e565b9050919050565b60006020820190508181036000830152613aa081613791565b9050919050565b60006020820190508181036000830152613ac0816137b4565b9050919050565b60006020820190508181036000830152613ae0816137d7565b9050919050565b6000602082019050613afc60008301846137fa565b92915050565b600060a082019050613b1760008301886137fa565b613b24602083018761360e565b8181036040830152613b3681866135a1565b9050613b456060830185613592565b613b5260808301846137fa565b9695505050505050565b6000602082019050613b716000830184613809565b92915050565b6000613b81613b92565b9050613b8d8282613e14565b919050565b6000604051905090565b600067ffffffffffffffff821115613bb757613bb6613eec565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c2882613d82565b9150613c3383613d82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c6857613c67613e8e565b5b828201905092915050565b6000613c7e82613d82565b9150613c8983613d82565b925082613c9957613c98613ebd565b5b828204905092915050565b6000613caf82613d82565b9150613cba83613d82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cf357613cf2613e8e565b5b828202905092915050565b6000613d0982613d82565b9150613d1483613d82565b925082821015613d2757613d26613e8e565b5b828203905092915050565b6000613d3d82613d62565b9050919050565b6000613d4f82613d62565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613da482613dbd565b9050919050565b6000613db682613d82565b9050919050565b6000613dc882613dcf565b9050919050565b6000613dda82613d62565b9050919050565b60005b83811015613dff578082015181840152602081019050613de4565b83811115613e0e576000848401525b50505050565b613e1d82613f1b565b810181811067ffffffffffffffff82111715613e3c57613e3b613eec565b5b80604052505050565b6000613e5082613d82565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e8357613e82613e8e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f43616e6e6f742073657420626f747320616e796d6f7265000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f427579206665652063616e6e6f742062652074686174206c6172676500000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61422b81613d32565b811461423657600080fd5b50565b61424281613d44565b811461424d57600080fd5b50565b61425981613d56565b811461426457600080fd5b50565b61427081613d82565b811461427b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d22c0fa9b583f2adf50d4769574f75c831b4a1fd81e18b01d84d654da48c595964736f6c63430008040033
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.