ERC-20
Overview
Max Total Supply
1,000,000 DIP
Holders
21
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DipThroat
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-03 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract DipThroat is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Dip Throat"; string private constant _symbol = "DIP"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 20; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 30; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0xAC541968Aa31955aBfC64aBfaf4c16f259d3F17c); address payable private _marketingAddress = payable(0xAC541968Aa31955aBfC64aBfaf4c16f259d3F17c); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20000 * 10**9; uint256 public _maxWalletSize = 10000 * 10**9; uint256 public _swapTokensAtAmount = 1000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 0, "Buy rewards must be 0%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 99, "Buy tax must be between 0% and 10%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 0, "Sell rewards must be 0%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 99, "Sell tax must be between 0% and 90%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { require( maxTxAmount >= ((totalSupply() * 1) / 100), "Cannot set maxTransactionAmount lower than 1%" ); _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { require( maxWalletSize >= ((totalSupply() * 1) / 100), "Cannot set maxWalletAmount lower than 1%" ); _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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
608060405266038d7ea4c680006000196200001b919062000724565b6000196200002a91906200078b565b600655600060085560146009556000600a55601e600b55600a54600c55600b54600d55600c54600e55600d54600f5573ac541968aa31955abfc64abfaf4c16f259d3f17c601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ac541968aa31955abfc64abfaf4c16f259d3f17c601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506512309ce540006016556509184e72a00060175564e8d4a510006018553480156200017d57600080fd5b50600062000190620006ba60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000245620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000329573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034f919062000830565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003dd919062000830565b6040518363ffffffff1660e01b8152600401620003fc92919062000873565b6020604051808303816000875af11580156200041c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000442919062000830565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000498620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000645620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620006ab9190620008b1565b60405180910390a350620008ce565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073182620006eb565b91506200073e83620006eb565b925082620007515762000750620006f5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079882620006eb565b9150620007a583620006eb565b9250828203905081811115620007c057620007bf6200075c565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f882620007cb565b9050919050565b6200080a81620007eb565b81146200081657600080fd5b50565b6000815190506200082a81620007ff565b92915050565b600060208284031215620008495762000848620007c6565b5b6000620008598482850162000819565b91505092915050565b6200086d81620007eb565b82525050565b60006040820190506200088a600083018562000862565b62000899602083018462000862565b9392505050565b620008ab81620006eb565b82525050565b6000602082019050620008c86000830184620008a0565b92915050565b613eda80620008de6000396000f3fe6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f5578063dd62ed3e1461061e578063ea1644d51461065b578063f2fde38b14610684576101c2565b8063a9059cbb14610564578063bfd79284146105a1578063c3c8cd80146105de576101c2565b80638f9a55c0116100c65780638f9a55c0146104bc57806395d89b41146104e757806398a5c31514610512578063a2a957bb1461053b576101c2565b80637f2feddc1461042b5780638da5cb5b146104685780638f70ccf714610493576101c2565b806349bd5a5e1161015957806370a082311161013357806370a0823114610383578063715018a6146103c057806374010ece146103d75780637d1db4a514610400576101c2565b806349bd5a5e146103185780636d8aa8f8146103435780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106ad565b6040516101e99190612b99565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c59565b6106ea565b6040516102269190612cb4565b60405180910390f35b34801561023b57600080fd5b50610244610708565b6040516102519190612d2e565b60405180910390f35b34801561026657600080fd5b5061026f61072e565b60405161027c9190612d58565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612d73565b61073d565b6040516102b99190612cb4565b60405180910390f35b3480156102ce57600080fd5b506102d7610816565b6040516102e49190612d58565b60405180910390f35b3480156102f957600080fd5b5061030261081c565b60405161030f9190612de2565b60405180910390f35b34801561032457600080fd5b5061032d610825565b60405161033a9190612e0c565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612e53565b61084b565b005b34801561037857600080fd5b506103816108fd565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612e80565b6109ce565b6040516103b79190612d58565b60405180910390f35b3480156103cc57600080fd5b506103d5610a1f565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612ead565b610b72565b005b34801561040c57600080fd5b50610415610c73565b6040516104229190612d58565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612e80565b610c79565b60405161045f9190612d58565b60405180910390f35b34801561047457600080fd5b5061047d610c91565b60405161048a9190612e0c565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612e53565b610cba565b005b3480156104c857600080fd5b506104d1610d6c565b6040516104de9190612d58565b60405180910390f35b3480156104f357600080fd5b506104fc610d72565b6040516105099190612b99565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612ead565b610daf565b005b34801561054757600080fd5b50610562600480360381019061055d9190612eda565b610e4e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612c59565b611049565b6040516105989190612cb4565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612e80565b611067565b6040516105d59190612cb4565b60405180910390f35b3480156105ea57600080fd5b506105f3611087565b005b34801561060157600080fd5b5061061c60048036038101906106179190612fa6565b611160565b005b34801561062a57600080fd5b5061064560048036038101906106409190613006565b61129a565b6040516106529190612d58565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612ead565b611321565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612e80565b611422565b005b60606040518060400160405280600a81526020017f446970205468726f617400000000000000000000000000000000000000000000815250905090565b60006106fe6106f76115e3565b84846115eb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b600061074a8484846117b4565b61080b846107566115e3565b61080685604051806060016040528060288152602001613e7d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107bc6115e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120379092919063ffffffff16565b6115eb565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108536115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d790613092565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093e6115e3565b73ffffffffffffffffffffffffffffffffffffffff1614806109b45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099c6115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b6109bd57600080fd5b60004790506109cb8161209b565b50565b6000610a18600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612107565b9050919050565b610a276115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90613092565b60405180910390fd5b60646001610c1361072e565b610c1d91906130e1565b610c27919061316a565b811015610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c609061320d565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cc26115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690613092565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f4449500000000000000000000000000000000000000000000000000000000000815250905090565b610db76115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90613092565b60405180910390fd5b8060188190555050565b610e566115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90613092565b60405180910390fd5b60008410158015610ef5575060008411155b610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613279565b60405180910390fd5b60008210158015610f46575060638211155b610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c9061330b565b60405180910390fd5b60008310158015610f97575060008311155b610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90613377565b60405180910390fd5b60008110158015610fe8575060638111155b611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90613409565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061105d6110566115e3565b84846117b4565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c86115e3565b73ffffffffffffffffffffffffffffffffffffffff16148061113e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111266115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b61114757600080fd5b6000611152306109ce565b905061115d81612175565b50565b6111686115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90613092565b60405180910390fd5b60005b8383905081101561129457816005600086868581811061121b5761121a613429565b5b90506020020160208101906112309190612e80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061128c90613458565b9150506111f8565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113296115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90613092565b60405180910390fd5b606460016113c261072e565b6113cc91906130e1565b6113d6919061316a565b811015611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90613512565b60405180910390fd5b8060178190555050565b61142a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d906135a4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361165a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165190613636565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c0906136c8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a79190612d58565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a9061375a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906137ec565b60405180910390fd5b600081116118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc9061387e565b60405180910390fd5b6118dd610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561194b575061191b610c91565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d3657601560149054906101000a900460ff166119da5761196c610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d090613910565b60405180910390fd5b5b601654811115611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a169061397c565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ac35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af990613a0e565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baf5760175481611b64846109ce565b611b6e9190613a2e565b10611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613ad4565b60405180910390fd5b5b6000611bba306109ce565b9050600060185482101590506016548210611bd55760165491505b808015611bed575060158054906101000a900460ff16155b8015611c475750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5f5750601560169054906101000a900460ff165b8015611cb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d0b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d3357611d1982612175565b60004790506000811115611d3157611d304761209b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ddd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e905750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e8f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e9e5760009050612025565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f495750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f6157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561200c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561202457600a54600c81905550600b54600d819055505b5b612031848484846123ec565b50505050565b600083831115829061207f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120769190612b99565b60405180910390fd5b506000838561208e9190613af4565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612103573d6000803e3d6000fd5b5050565b600060065482111561214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214590613b9a565b60405180910390fd5b6000612158612419565b905061216d818461244490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121ac576121ab613bba565b5b6040519080825280602002602001820160405280156121da5781602001602082028036833780820191505090505b50905030816000815181106121f2576121f1613429565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bd9190613bfe565b816001815181106122d1576122d0613429565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115eb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161239c959493929190613d24565b600060405180830381600087803b1580156123b657600080fd5b505af11580156123ca573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806123fa576123f961248e565b5b6124058484846124cb565b8061241357612412612696565b5b50505050565b60008060006124266126aa565b9150915061243d818361244490919063ffffffff16565b9250505090565b600061248683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612706565b905092915050565b6000600c541480156124a257506000600d54145b6124c957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806124dd87612769565b95509550955095509550955061253b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261c81612879565b6126268483612936565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126839190612d58565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c6800090506126dc66038d7ea4c6800060065461244490919063ffffffff16565b8210156126f95760065466038d7ea4c68000935093505050612702565b81819350935050505b9091565b6000808311829061274d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127449190612b99565b60405180910390fd5b506000838561275c919061316a565b9050809150509392505050565b60008060008060008060008060006127868a600c54600d54612970565b9250925092506000612796612419565b905060008060006127a98e878787612a06565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061281383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612037565b905092915050565b600080828461282a9190613a2e565b90508381101561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613dca565b60405180910390fd5b8091505092915050565b6000612883612419565b9050600061289a8284612a8f90919063ffffffff16565b90506128ee81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61294b826006546127d190919063ffffffff16565b6006819055506129668160075461281b90919063ffffffff16565b6007819055505050565b60008060008061299c606461298e888a612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129c660646129b8888b612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129ef826129e1858c6127d190919063ffffffff16565b6127d190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a1f8589612a8f90919063ffffffff16565b90506000612a368689612a8f90919063ffffffff16565b90506000612a4d8789612a8f90919063ffffffff16565b90506000612a7682612a6885876127d190919063ffffffff16565b6127d190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612aa15760009050612b03565b60008284612aaf91906130e1565b9050828482612abe919061316a565b14612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af590613e5c565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b43578082015181840152602081019050612b28565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b6b82612b09565b612b758185612b14565b9350612b85818560208601612b25565b612b8e81612b4f565b840191505092915050565b60006020820190508181036000830152612bb38184612b60565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bf082612bc5565b9050919050565b612c0081612be5565b8114612c0b57600080fd5b50565b600081359050612c1d81612bf7565b92915050565b6000819050919050565b612c3681612c23565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b60008060408385031215612c7057612c6f612bbb565b5b6000612c7e85828601612c0e565b9250506020612c8f85828601612c44565b9150509250929050565b60008115159050919050565b612cae81612c99565b82525050565b6000602082019050612cc96000830184612ca5565b92915050565b6000819050919050565b6000612cf4612cef612cea84612bc5565b612ccf565b612bc5565b9050919050565b6000612d0682612cd9565b9050919050565b6000612d1882612cfb565b9050919050565b612d2881612d0d565b82525050565b6000602082019050612d436000830184612d1f565b92915050565b612d5281612c23565b82525050565b6000602082019050612d6d6000830184612d49565b92915050565b600080600060608486031215612d8c57612d8b612bbb565b5b6000612d9a86828701612c0e565b9350506020612dab86828701612c0e565b9250506040612dbc86828701612c44565b9150509250925092565b600060ff82169050919050565b612ddc81612dc6565b82525050565b6000602082019050612df76000830184612dd3565b92915050565b612e0681612be5565b82525050565b6000602082019050612e216000830184612dfd565b92915050565b612e3081612c99565b8114612e3b57600080fd5b50565b600081359050612e4d81612e27565b92915050565b600060208284031215612e6957612e68612bbb565b5b6000612e7784828501612e3e565b91505092915050565b600060208284031215612e9657612e95612bbb565b5b6000612ea484828501612c0e565b91505092915050565b600060208284031215612ec357612ec2612bbb565b5b6000612ed184828501612c44565b91505092915050565b60008060008060808587031215612ef457612ef3612bbb565b5b6000612f0287828801612c44565b9450506020612f1387828801612c44565b9350506040612f2487828801612c44565b9250506060612f3587828801612c44565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612f6657612f65612f41565b5b8235905067ffffffffffffffff811115612f8357612f82612f46565b5b602083019150836020820283011115612f9f57612f9e612f4b565b5b9250929050565b600080600060408486031215612fbf57612fbe612bbb565b5b600084013567ffffffffffffffff811115612fdd57612fdc612bc0565b5b612fe986828701612f50565b93509350506020612ffc86828701612e3e565b9150509250925092565b6000806040838503121561301d5761301c612bbb565b5b600061302b85828601612c0e565b925050602061303c85828601612c0e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061307c602083612b14565b915061308782613046565b602082019050919050565b600060208201905081810360008301526130ab8161306f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ec82612c23565b91506130f783612c23565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131305761312f6130b2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061317582612c23565b915061318083612c23565b9250826131905761318f61313b565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b60006131f7602d83612b14565b91506132028261319b565b604082019050919050565b60006020820190508181036000830152613226816131ea565b9050919050565b7f4275792072657761726473206d75737420626520302500000000000000000000600082015250565b6000613263601683612b14565b915061326e8261322d565b602082019050919050565b6000602082019050818103600083015261329281613256565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203160008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b60006132f5602283612b14565b915061330082613299565b604082019050919050565b60006020820190508181036000830152613324816132e8565b9050919050565b7f53656c6c2072657761726473206d757374206265203025000000000000000000600082015250565b6000613361601783612b14565b915061336c8261332b565b602082019050919050565b6000602082019050818103600083015261339081613354565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3930250000000000000000000000000000000000000000000000000000000000602082015250565b60006133f3602383612b14565b91506133fe82613397565b604082019050919050565b60006020820190508181036000830152613422816133e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061346382612c23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613495576134946130b2565b5b600182019050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b60006134fc602883612b14565b9150613507826134a0565b604082019050919050565b6000602082019050818103600083015261352b816134ef565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061358e602683612b14565b915061359982613532565b604082019050919050565b600060208201905081810360008301526135bd81613581565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613620602483612b14565b915061362b826135c4565b604082019050919050565b6000602082019050818103600083015261364f81613613565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136b2602283612b14565b91506136bd82613656565b604082019050919050565b600060208201905081810360008301526136e1816136a5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613744602583612b14565b915061374f826136e8565b604082019050919050565b6000602082019050818103600083015261377381613737565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137d6602383612b14565b91506137e18261377a565b604082019050919050565b60006020820190508181036000830152613805816137c9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613868602983612b14565b91506138738261380c565b604082019050919050565b600060208201905081810360008301526138978161385b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006138fa603f83612b14565b91506139058261389e565b604082019050919050565b60006020820190508181036000830152613929816138ed565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613966601c83612b14565b915061397182613930565b602082019050919050565b6000602082019050818103600083015261399581613959565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006139f8602383612b14565b9150613a038261399c565b604082019050919050565b60006020820190508181036000830152613a27816139eb565b9050919050565b6000613a3982612c23565b9150613a4483612c23565b9250828201905080821115613a5c57613a5b6130b2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613abe602383612b14565b9150613ac982613a62565b604082019050919050565b60006020820190508181036000830152613aed81613ab1565b9050919050565b6000613aff82612c23565b9150613b0a83612c23565b9250828203905081811115613b2257613b216130b2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b84602a83612b14565b9150613b8f82613b28565b604082019050919050565b60006020820190508181036000830152613bb381613b77565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613bf881612bf7565b92915050565b600060208284031215613c1457613c13612bbb565b5b6000613c2284828501613be9565b91505092915050565b6000819050919050565b6000613c50613c4b613c4684613c2b565b612ccf565b612c23565b9050919050565b613c6081613c35565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c9b81612be5565b82525050565b6000613cad8383613c92565b60208301905092915050565b6000602082019050919050565b6000613cd182613c66565b613cdb8185613c71565b9350613ce683613c82565b8060005b83811015613d17578151613cfe8882613ca1565b9750613d0983613cb9565b925050600181019050613cea565b5085935050505092915050565b600060a082019050613d396000830188612d49565b613d466020830187613c57565b8181036040830152613d588186613cc6565b9050613d676060830185612dfd565b613d746080830184612d49565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613db4601b83612b14565b9150613dbf82613d7e565b602082019050919050565b60006020820190508181036000830152613de381613da7565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e46602183612b14565b9150613e5182613dea565b604082019050919050565b60006020820190508181036000830152613e7581613e39565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207a0c9f7c750a0295a2c35cf22a6abf670784c0d85e1786ba5d4715ac15a9194164736f6c63430008100033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f5578063dd62ed3e1461061e578063ea1644d51461065b578063f2fde38b14610684576101c2565b8063a9059cbb14610564578063bfd79284146105a1578063c3c8cd80146105de576101c2565b80638f9a55c0116100c65780638f9a55c0146104bc57806395d89b41146104e757806398a5c31514610512578063a2a957bb1461053b576101c2565b80637f2feddc1461042b5780638da5cb5b146104685780638f70ccf714610493576101c2565b806349bd5a5e1161015957806370a082311161013357806370a0823114610383578063715018a6146103c057806374010ece146103d75780637d1db4a514610400576101c2565b806349bd5a5e146103185780636d8aa8f8146103435780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106ad565b6040516101e99190612b99565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c59565b6106ea565b6040516102269190612cb4565b60405180910390f35b34801561023b57600080fd5b50610244610708565b6040516102519190612d2e565b60405180910390f35b34801561026657600080fd5b5061026f61072e565b60405161027c9190612d58565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612d73565b61073d565b6040516102b99190612cb4565b60405180910390f35b3480156102ce57600080fd5b506102d7610816565b6040516102e49190612d58565b60405180910390f35b3480156102f957600080fd5b5061030261081c565b60405161030f9190612de2565b60405180910390f35b34801561032457600080fd5b5061032d610825565b60405161033a9190612e0c565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612e53565b61084b565b005b34801561037857600080fd5b506103816108fd565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612e80565b6109ce565b6040516103b79190612d58565b60405180910390f35b3480156103cc57600080fd5b506103d5610a1f565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612ead565b610b72565b005b34801561040c57600080fd5b50610415610c73565b6040516104229190612d58565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612e80565b610c79565b60405161045f9190612d58565b60405180910390f35b34801561047457600080fd5b5061047d610c91565b60405161048a9190612e0c565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612e53565b610cba565b005b3480156104c857600080fd5b506104d1610d6c565b6040516104de9190612d58565b60405180910390f35b3480156104f357600080fd5b506104fc610d72565b6040516105099190612b99565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612ead565b610daf565b005b34801561054757600080fd5b50610562600480360381019061055d9190612eda565b610e4e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612c59565b611049565b6040516105989190612cb4565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612e80565b611067565b6040516105d59190612cb4565b60405180910390f35b3480156105ea57600080fd5b506105f3611087565b005b34801561060157600080fd5b5061061c60048036038101906106179190612fa6565b611160565b005b34801561062a57600080fd5b5061064560048036038101906106409190613006565b61129a565b6040516106529190612d58565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612ead565b611321565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612e80565b611422565b005b60606040518060400160405280600a81526020017f446970205468726f617400000000000000000000000000000000000000000000815250905090565b60006106fe6106f76115e3565b84846115eb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b600061074a8484846117b4565b61080b846107566115e3565b61080685604051806060016040528060288152602001613e7d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107bc6115e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120379092919063ffffffff16565b6115eb565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108536115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d790613092565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093e6115e3565b73ffffffffffffffffffffffffffffffffffffffff1614806109b45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099c6115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b6109bd57600080fd5b60004790506109cb8161209b565b50565b6000610a18600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612107565b9050919050565b610a276115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90613092565b60405180910390fd5b60646001610c1361072e565b610c1d91906130e1565b610c27919061316a565b811015610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c609061320d565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cc26115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690613092565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f4449500000000000000000000000000000000000000000000000000000000000815250905090565b610db76115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90613092565b60405180910390fd5b8060188190555050565b610e566115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90613092565b60405180910390fd5b60008410158015610ef5575060008411155b610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613279565b60405180910390fd5b60008210158015610f46575060638211155b610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c9061330b565b60405180910390fd5b60008310158015610f97575060008311155b610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90613377565b60405180910390fd5b60008110158015610fe8575060638111155b611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90613409565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061105d6110566115e3565b84846117b4565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c86115e3565b73ffffffffffffffffffffffffffffffffffffffff16148061113e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111266115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b61114757600080fd5b6000611152306109ce565b905061115d81612175565b50565b6111686115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90613092565b60405180910390fd5b60005b8383905081101561129457816005600086868581811061121b5761121a613429565b5b90506020020160208101906112309190612e80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061128c90613458565b9150506111f8565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113296115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90613092565b60405180910390fd5b606460016113c261072e565b6113cc91906130e1565b6113d6919061316a565b811015611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90613512565b60405180910390fd5b8060178190555050565b61142a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d906135a4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361165a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165190613636565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c0906136c8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a79190612d58565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a9061375a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906137ec565b60405180910390fd5b600081116118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc9061387e565b60405180910390fd5b6118dd610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561194b575061191b610c91565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d3657601560149054906101000a900460ff166119da5761196c610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d090613910565b60405180910390fd5b5b601654811115611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a169061397c565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ac35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af990613a0e565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baf5760175481611b64846109ce565b611b6e9190613a2e565b10611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613ad4565b60405180910390fd5b5b6000611bba306109ce565b9050600060185482101590506016548210611bd55760165491505b808015611bed575060158054906101000a900460ff16155b8015611c475750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5f5750601560169054906101000a900460ff165b8015611cb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d0b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d3357611d1982612175565b60004790506000811115611d3157611d304761209b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ddd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e905750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e8f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e9e5760009050612025565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f495750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f6157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561200c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561202457600a54600c81905550600b54600d819055505b5b612031848484846123ec565b50505050565b600083831115829061207f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120769190612b99565b60405180910390fd5b506000838561208e9190613af4565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612103573d6000803e3d6000fd5b5050565b600060065482111561214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214590613b9a565b60405180910390fd5b6000612158612419565b905061216d818461244490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121ac576121ab613bba565b5b6040519080825280602002602001820160405280156121da5781602001602082028036833780820191505090505b50905030816000815181106121f2576121f1613429565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bd9190613bfe565b816001815181106122d1576122d0613429565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115eb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161239c959493929190613d24565b600060405180830381600087803b1580156123b657600080fd5b505af11580156123ca573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806123fa576123f961248e565b5b6124058484846124cb565b8061241357612412612696565b5b50505050565b60008060006124266126aa565b9150915061243d818361244490919063ffffffff16565b9250505090565b600061248683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612706565b905092915050565b6000600c541480156124a257506000600d54145b6124c957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806124dd87612769565b95509550955095509550955061253b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261c81612879565b6126268483612936565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126839190612d58565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c6800090506126dc66038d7ea4c6800060065461244490919063ffffffff16565b8210156126f95760065466038d7ea4c68000935093505050612702565b81819350935050505b9091565b6000808311829061274d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127449190612b99565b60405180910390fd5b506000838561275c919061316a565b9050809150509392505050565b60008060008060008060008060006127868a600c54600d54612970565b9250925092506000612796612419565b905060008060006127a98e878787612a06565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061281383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612037565b905092915050565b600080828461282a9190613a2e565b90508381101561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613dca565b60405180910390fd5b8091505092915050565b6000612883612419565b9050600061289a8284612a8f90919063ffffffff16565b90506128ee81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61294b826006546127d190919063ffffffff16565b6006819055506129668160075461281b90919063ffffffff16565b6007819055505050565b60008060008061299c606461298e888a612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129c660646129b8888b612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129ef826129e1858c6127d190919063ffffffff16565b6127d190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a1f8589612a8f90919063ffffffff16565b90506000612a368689612a8f90919063ffffffff16565b90506000612a4d8789612a8f90919063ffffffff16565b90506000612a7682612a6885876127d190919063ffffffff16565b6127d190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612aa15760009050612b03565b60008284612aaf91906130e1565b9050828482612abe919061316a565b14612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af590613e5c565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b43578082015181840152602081019050612b28565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b6b82612b09565b612b758185612b14565b9350612b85818560208601612b25565b612b8e81612b4f565b840191505092915050565b60006020820190508181036000830152612bb38184612b60565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bf082612bc5565b9050919050565b612c0081612be5565b8114612c0b57600080fd5b50565b600081359050612c1d81612bf7565b92915050565b6000819050919050565b612c3681612c23565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b60008060408385031215612c7057612c6f612bbb565b5b6000612c7e85828601612c0e565b9250506020612c8f85828601612c44565b9150509250929050565b60008115159050919050565b612cae81612c99565b82525050565b6000602082019050612cc96000830184612ca5565b92915050565b6000819050919050565b6000612cf4612cef612cea84612bc5565b612ccf565b612bc5565b9050919050565b6000612d0682612cd9565b9050919050565b6000612d1882612cfb565b9050919050565b612d2881612d0d565b82525050565b6000602082019050612d436000830184612d1f565b92915050565b612d5281612c23565b82525050565b6000602082019050612d6d6000830184612d49565b92915050565b600080600060608486031215612d8c57612d8b612bbb565b5b6000612d9a86828701612c0e565b9350506020612dab86828701612c0e565b9250506040612dbc86828701612c44565b9150509250925092565b600060ff82169050919050565b612ddc81612dc6565b82525050565b6000602082019050612df76000830184612dd3565b92915050565b612e0681612be5565b82525050565b6000602082019050612e216000830184612dfd565b92915050565b612e3081612c99565b8114612e3b57600080fd5b50565b600081359050612e4d81612e27565b92915050565b600060208284031215612e6957612e68612bbb565b5b6000612e7784828501612e3e565b91505092915050565b600060208284031215612e9657612e95612bbb565b5b6000612ea484828501612c0e565b91505092915050565b600060208284031215612ec357612ec2612bbb565b5b6000612ed184828501612c44565b91505092915050565b60008060008060808587031215612ef457612ef3612bbb565b5b6000612f0287828801612c44565b9450506020612f1387828801612c44565b9350506040612f2487828801612c44565b9250506060612f3587828801612c44565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612f6657612f65612f41565b5b8235905067ffffffffffffffff811115612f8357612f82612f46565b5b602083019150836020820283011115612f9f57612f9e612f4b565b5b9250929050565b600080600060408486031215612fbf57612fbe612bbb565b5b600084013567ffffffffffffffff811115612fdd57612fdc612bc0565b5b612fe986828701612f50565b93509350506020612ffc86828701612e3e565b9150509250925092565b6000806040838503121561301d5761301c612bbb565b5b600061302b85828601612c0e565b925050602061303c85828601612c0e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061307c602083612b14565b915061308782613046565b602082019050919050565b600060208201905081810360008301526130ab8161306f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ec82612c23565b91506130f783612c23565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131305761312f6130b2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061317582612c23565b915061318083612c23565b9250826131905761318f61313b565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b60006131f7602d83612b14565b91506132028261319b565b604082019050919050565b60006020820190508181036000830152613226816131ea565b9050919050565b7f4275792072657761726473206d75737420626520302500000000000000000000600082015250565b6000613263601683612b14565b915061326e8261322d565b602082019050919050565b6000602082019050818103600083015261329281613256565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203160008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b60006132f5602283612b14565b915061330082613299565b604082019050919050565b60006020820190508181036000830152613324816132e8565b9050919050565b7f53656c6c2072657761726473206d757374206265203025000000000000000000600082015250565b6000613361601783612b14565b915061336c8261332b565b602082019050919050565b6000602082019050818103600083015261339081613354565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3930250000000000000000000000000000000000000000000000000000000000602082015250565b60006133f3602383612b14565b91506133fe82613397565b604082019050919050565b60006020820190508181036000830152613422816133e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061346382612c23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613495576134946130b2565b5b600182019050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b60006134fc602883612b14565b9150613507826134a0565b604082019050919050565b6000602082019050818103600083015261352b816134ef565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061358e602683612b14565b915061359982613532565b604082019050919050565b600060208201905081810360008301526135bd81613581565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613620602483612b14565b915061362b826135c4565b604082019050919050565b6000602082019050818103600083015261364f81613613565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136b2602283612b14565b91506136bd82613656565b604082019050919050565b600060208201905081810360008301526136e1816136a5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613744602583612b14565b915061374f826136e8565b604082019050919050565b6000602082019050818103600083015261377381613737565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137d6602383612b14565b91506137e18261377a565b604082019050919050565b60006020820190508181036000830152613805816137c9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613868602983612b14565b91506138738261380c565b604082019050919050565b600060208201905081810360008301526138978161385b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006138fa603f83612b14565b91506139058261389e565b604082019050919050565b60006020820190508181036000830152613929816138ed565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613966601c83612b14565b915061397182613930565b602082019050919050565b6000602082019050818103600083015261399581613959565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006139f8602383612b14565b9150613a038261399c565b604082019050919050565b60006020820190508181036000830152613a27816139eb565b9050919050565b6000613a3982612c23565b9150613a4483612c23565b9250828201905080821115613a5c57613a5b6130b2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613abe602383612b14565b9150613ac982613a62565b604082019050919050565b60006020820190508181036000830152613aed81613ab1565b9050919050565b6000613aff82612c23565b9150613b0a83612c23565b9250828203905081811115613b2257613b216130b2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b84602a83612b14565b9150613b8f82613b28565b604082019050919050565b60006020820190508181036000830152613bb381613b77565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613bf881612bf7565b92915050565b600060208284031215613c1457613c13612bbb565b5b6000613c2284828501613be9565b91505092915050565b6000819050919050565b6000613c50613c4b613c4684613c2b565b612ccf565b612c23565b9050919050565b613c6081613c35565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c9b81612be5565b82525050565b6000613cad8383613c92565b60208301905092915050565b6000602082019050919050565b6000613cd182613c66565b613cdb8185613c71565b9350613ce683613c82565b8060005b83811015613d17578151613cfe8882613ca1565b9750613d0983613cb9565b925050600181019050613cea565b5085935050505092915050565b600060a082019050613d396000830188612d49565b613d466020830187613c57565b8181036040830152613d588186613cc6565b9050613d676060830185612dfd565b613d746080830184612d49565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613db4601b83612b14565b9150613dbf82613d7e565b602082019050919050565b60006020820190508181036000830152613de381613da7565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e46602183612b14565b9150613e5182613dea565b604082019050919050565b60006020820190508181036000830152613e7581613e39565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207a0c9f7c750a0295a2c35cf22a6abf670784c0d85e1786ba5d4715ac15a9194164736f6c63430008100033
Deployed Bytecode Sourcemap
4095:13944:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6614:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7546:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5452:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6894:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7748:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5756:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6802:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5500:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17136:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12576:235;;;;;;;;;;;;;:::i;:::-;;6998:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1568:148;;;;;;;;;;;;;:::i;:::-;;17277:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5652:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1352:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12221:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5703:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6706:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16944:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16228:663;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7145:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5153:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12331:236;;;;;;;;;;;;;:::i;:::-;;17800:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7353:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17538:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1725:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6614:83;6651:13;6684:5;;;;;;;;;;;;;;;;;6677:12;;6614:83;:::o;7546:193::-;7648:4;7670:39;7679:12;:10;:12::i;:::-;7693:7;7702:6;7670:8;:39::i;:::-;7727:4;7720:11;;7546:193;;;;:::o;5452:41::-;;;;;;;;;;;;;:::o;6894:95::-;6947:7;4647:15;6967:14;;6894:95;:::o;7748:446::-;7880:4;7897:36;7907:6;7915:9;7926:6;7897:9;:36::i;:::-;7944:220;7967:6;7988:12;:10;:12::i;:::-;8015:138;8071:6;8015:138;;;;;;;;;;;;;;;;;:11;:19;8027:6;8015:19;;;;;;;;;;;;;;;:33;8035:12;:10;:12::i;:::-;8015:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7944:8;:220::i;:::-;8182:4;8175:11;;7748:446;;;;;:::o;5756:49::-;;;;:::o;6802:83::-;6843:5;4320:1;6861:16;;6802:83;:::o;5500:28::-;;;;;;;;;;;;;:::o;17136:101::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17217:12:::1;17203:11;;:26;;;;;;;;;;;;;;;;;;17136:101:::0;:::o;12576:235::-;12642:19;;;;;;;;;;;12626:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12681:17;;;;;;;;;;;12665:33;;:12;:10;:12::i;:::-;:33;;;12626:72;12618:81;;;;;;12710:26;12739:21;12710:50;;12771:32;12784:18;12771:12;:32::i;:::-;12607:204;12576:235::o;6998:138::-;7064:7;7091:37;7111:7;:16;7119:7;7111:16;;;;;;;;;;;;;;;;7091:19;:37::i;:::-;7084:44;;6998:138;;;:::o;1568:148::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1675:1:::1;1638:40;;1659:6;::::0;::::1;;;;;;;;1638:40;;;;;;;;;;;;1706:1;1689:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1568:148::o:0;17277:252::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17404:3:::1;17399:1;17383:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17382:25;;;;:::i;:::-;17366:11;:42;;17344:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;17500:11;17485:12;:26;;;;17277:252:::0;:::o;5652:43::-;;;;:::o;5191:::-;;;;;;;;;;;;;;;;;:::o;1352:79::-;1390:7;1417:6;;;;;;;;;;;1410:13;;1352:79;:::o;12221:101::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12302:12:::1;12288:11;;:26;;;;;;;;;;;;;;;;;;12221:101:::0;:::o;5703:45::-;;;;:::o;6706:87::-;6745:13;6778:7;;;;;;;;;;;;;;;;;6771:14;;6706:87;:::o;16944:139::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17057:18:::1;17035:19;:40;;;;16944:139:::0;:::o;16228:663::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16387:1:::1;16370:13;:18;;:40;;;;;16409:1;16392:13;:18;;16370:40;16362:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16471:1;16456:11;:16;;:37;;;;;16491:2;16476:11;:17;;16456:37;16448:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;16569:1;16551:14;:19;;:42;;;;;16592:1;16574:14;:19;;16551:42;16543:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;16656:1;16640:12;:17;;:39;;;;;16677:2;16661:12;:18;;16640:39;16632:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16749:13;16732:14;:30;;;;16791:14;16773:15;:32;;;;16831:11;16816:12;:26;;;;16869:12;16853:13;:28;;;;16228:663:::0;;;;:::o;7145:199::-;7250:4;7272:42;7282:12;:10;:12::i;:::-;7296:9;7307:6;7272:9;:42::i;:::-;7332:4;7325:11;;7145:199;;;;:::o;5153:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12331:236::-;12397:19;;;;;;;;;;;12381:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12436:17;;;;;;;;;;;12420:33;;:12;:10;:12::i;:::-;:33;;;12381:72;12373:81;;;;;;12465:23;12491:24;12509:4;12491:9;:24::i;:::-;12465:50;;12526:33;12543:15;12526:16;:33::i;:::-;12362:205;12331:236::o;17800:234::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17917:9:::1;17913:114;17936:8;;:15;;17932:1;:19;17913:114;;;18007:8;17973:18;:31;17992:8;;18001:1;17992:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17973:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17953:3;;;;;:::i;:::-;;;;17913:114;;;;17800:234:::0;;;:::o;7353:184::-;7470:7;7502:11;:18;7514:5;7502:18;;;;;;;;;;;;;;;:27;7521:7;7502:27;;;;;;;;;;;;;;;;7495:34;;7353:184;;;;:::o;17538:253::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17670:3:::1;17665:1;17649:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17648:25;;;;:::i;:::-;17630:13;:44;;17608:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;17770:13;17753:14;:30;;;;17538:253:::0;:::o;1725:244::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1834:1:::1;1814:22;;:8;:22;;::::0;1806:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1924:8;1895:38;;1916:6;::::0;::::1;;;;;;;;1895:38;;;;;;;;;;;;1953:8;1944:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1725:244:::0;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;8891:369::-;9035:1;9018:19;;:5;:19;;;9010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9116:1;9097:21;;:7;:21;;;9089:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9198:6;9168:11;:18;9180:5;9168:18;;;;;;;;;;;;;;;:27;9187:7;9168:27;;;;;;;;;;;;;;;:36;;;;9236:7;9220:32;;9229:5;9220:32;;;9245:6;9220:32;;;;;;:::i;:::-;;;;;;;;8891:369;;;:::o;9269:2343::-;9407:1;9391:18;;:4;:18;;;9383:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9484:1;9470:16;;:2;:16;;;9462:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9554:1;9545:6;:10;9537:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9627:7;:5;:7::i;:::-;9619:15;;:4;:15;;;;:32;;;;;9644:7;:5;:7::i;:::-;9638:13;;:2;:13;;;;9619:32;9615:1265;;;9709:11;;;;;;;;;;;9704:144;;9757:7;:5;:7::i;:::-;9749:15;;:4;:15;;;9741:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9704:144;9883:12;;9873:6;:22;;9865:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9952:4;:10;9957:4;9952:10;;;;;;;;;;;;;;;;;;;;;;;;;9951:11;:24;;;;;9967:4;:8;9972:2;9967:8;;;;;;;;;;;;;;;;;;;;;;;;;9966:9;9951:24;9943:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10042:13;;;;;;;;;;;10036:19;;:2;:19;;;10033:146;;10109:14;;10100:6;10084:13;10094:2;10084:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10076:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10033:146;10196:28;10227:24;10245:4;10227:9;:24::i;:::-;10196:55;;10266:12;10305:19;;10281:20;:43;;10266:58;;10369:12;;10345:20;:36;10342:124;;10438:12;;10415:35;;10342:124;10487:7;:18;;;;;10499:6;;;;;;;;;;10498:7;10487:18;:43;;;;;10517:13;;;;;;;;;;;10509:21;;:4;:21;;;;10487:43;:58;;;;;10534:11;;;;;;;;;;;10487:58;:87;;;;;10550:18;:24;10569:4;10550:24;;;;;;;;;;;;;;;;;;;;;;;;;10549:25;10487:87;:114;;;;;10579:18;:22;10598:2;10579:22;;;;;;;;;;;;;;;;;;;;;;;;;10578:23;10487:114;10483:386;;;10622:38;10639:20;10622:16;:38::i;:::-;10679:26;10708:21;10679:50;;10773:1;10752:18;:22;10748:106;;;10799:35;10812:21;10799:12;:35::i;:::-;10748:106;10603:266;10483:386;9653:1227;;9615:1265;10893:12;10908:4;10893:19;;10958:18;:24;10977:4;10958:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10986:18;:22;11005:2;10986:22;;;;;;;;;;;;;;;;;;;;;;;;;10958:50;10957:102;;;;11022:13;;;;;;;;;;;11014:21;;:4;:21;;;;:44;;;;;11045:13;;;;;;;;;;;11039:19;;:2;:19;;;;11014:44;10957:102;10953:597;;;11086:5;11076:15;;10953:597;;;11170:13;;;;;;;;;;;11162:21;;:4;:21;;;:55;;;;;11201:15;;;;;;;;;;;11187:30;;:2;:30;;;;11162:55;11159:162;;;11250:14;;11238:9;:26;;;;11293:12;;11283:7;:22;;;;11159:162;11381:13;;;;;;;;;;;11375:19;;:2;:19;;;:55;;;;;11414:15;;;;;;;;;;;11398:32;;:4;:32;;;;11375:55;11371:165;;;11463:15;;11451:9;:27;;;;11507:13;;11497:7;:23;;;;11371:165;10953:597;11563:41;11578:4;11584:2;11588:6;11596:7;11563:14;:41::i;:::-;9372:2240;9269:2343;;;:::o;2337:224::-;2457:7;2490:1;2485;:6;;2493:12;2477:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2517:9;2533:1;2529;:5;;;;:::i;:::-;2517:17;;2552:1;2545:8;;;2337:224;;;;;:::o;12113:99::-;12170:17;;;;;;;;;;;:26;;:34;12197:6;12170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12113:99;:::o;8203:323::-;8298:7;8356;;8345;:18;;8323:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8444:19;8466:10;:8;:10::i;:::-;8444:32;;8494:24;8506:11;8494:7;:11;;:24;;;;:::i;:::-;8487:31;;;8203:323;;;:::o;11621:483::-;5909:4;5900:6;;:13;;;;;;;;;;;;;;;;;;11699:21:::1;11737:1;11723:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11699:40;;11768:4;11750;11755:1;11750:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11794:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11784:4;11789:1;11784:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11827:62;11844:4;11859:15;;;;;;;;;;;11877:11;11827:8;:62::i;:::-;11900:15;;;;;;;;;;;:66;;;11981:11;12007:1;12023:4;12050;12070:15;11900:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11688:416;5945:5:::0;5936:6;;:14;;;;;;;;;;;;;;;;;;11621:483;:::o;12820:282::-;12976:7;12971:28;;12985:14;:12;:14::i;:::-;12971:28;13010:44;13028:6;13036:9;13047:6;13010:17;:44::i;:::-;13070:7;13065:29;;13079:15;:13;:15::i;:::-;13065:29;12820:282;;;;:::o;15789:164::-;15831:7;15852:15;15869;15888:19;:17;:19::i;:::-;15851:56;;;;15925:20;15937:7;15925;:11;;:20;;;;:::i;:::-;15918:27;;;;15789:164;:::o;2825:132::-;2883:7;2910:39;2914:1;2917;2910:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2903:46;;2825:132;;;;:::o;8535:221::-;8595:1;8582:9;;:14;:30;;;;;8611:1;8600:7;;:12;8582:30;8614:7;8578:43;8654:9;;8634:17;:29;;;;8692:7;;8674:15;:25;;;;8725:1;8713:9;:13;;;;8747:1;8737:7;:11;;;;8535:221;:::o;13111:610::-;13258:15;13288:23;13326:12;13353:23;13391:12;13418:13;13445:19;13456:7;13445:10;:19::i;:::-;13243:221;;;;;;;;;;;;13493:28;13513:7;13493;:15;13501:6;13493:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13475:7;:15;13483:6;13475:15;;;;;;;;;;;;;;;:46;;;;13553:39;13576:15;13553:7;:18;13561:9;13553:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13532:7;:18;13540:9;13532:18;;;;;;;;;;;;;;;:60;;;;13603:16;13613:5;13603:9;:16::i;:::-;13630:23;13642:4;13648;13630:11;:23::i;:::-;13686:9;13669:44;;13678:6;13669:44;;;13697:15;13669:44;;;;;;:::i;:::-;;;;;;;;13232:489;;;;;;13111:610;;;:::o;8765:117::-;8821:17;;8809:9;:29;;;;8859:15;;8849:7;:25;;;;8765:117::o;15962:257::-;16013:7;16022;16042:15;16060:7;;16042:25;;16078:15;4647;16078:25;;16128:20;4647:15;16128:7;;:11;;:20;;;;:::i;:::-;16118:7;:30;16114:61;;;16158:7;;4647:15;16150:25;;;;;;;;16114:61;16194:7;16203;16186:25;;;;;;15962:257;;;:::o;2966:223::-;3086:7;3118:1;3114;:5;3121:12;3106:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3145:9;3161:1;3157;:5;;;;:::i;:::-;3145:17;;3180:1;3173:8;;;2966:223;;;;;:::o;14144:615::-;14244:7;14266;14288;14310;14332;14354;14390:23;14415:12;14429:13;14459:40;14471:7;14480:9;;14491:7;;14459:11;:40::i;:::-;14389:110;;;;;;14510:19;14532:10;:8;:10::i;:::-;14510:32;;14554:15;14571:23;14596:12;14625:46;14637:7;14646:4;14652:5;14659:11;14625;:46::i;:::-;14553:118;;;;;;14690:7;14699:15;14716:4;14722:15;14739:4;14745:5;14682:69;;;;;;;;;;;;;;;;;;;14144:615;;;;;;;:::o;2192:136::-;2250:7;2277:43;2281:1;2284;2277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2270:50;;2192:136;;;;:::o;2004:179::-;2062:7;2082:9;2098:1;2094;:5;;;;:::i;:::-;2082:17;;2123:1;2118;:6;;2110:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2174:1;2167:8;;;2004:179;;;;:::o;13730:211::-;13783:19;13805:10;:8;:10::i;:::-;13783:32;;13826:13;13842:22;13852:11;13842:5;:9;;:22;;;;:::i;:::-;13826:38;;13900:33;13927:5;13900:7;:22;13916:4;13900:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13875:7;:22;13891:4;13875:22;;;;;;;;;;;;;;;:58;;;;13772:169;;13730:211;:::o;13950:147::-;14028:17;14040:4;14028:7;;:11;;:17;;;;:::i;:::-;14018:7;:27;;;;14069:20;14084:4;14069:10;;:14;;:20;;;;:::i;:::-;14056:10;:33;;;;13950:147;;:::o;14768:469::-;14937:7;14959;14981;15016:12;15031:30;15057:3;15031:21;15043:8;15031:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15016:45;;15072:13;15088:28;15112:3;15088:19;15100:6;15088:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15072:44;;15127:23;15153:28;15175:5;15153:17;15165:4;15153:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15127:54;;15200:15;15217:4;15223:5;15192:37;;;;;;;;;14768:469;;;;;;;:::o;15246:534::-;15440:7;15462;15484;15519:15;15537:24;15549:11;15537:7;:11;;:24;;;;:::i;:::-;15519:42;;15572:12;15587:21;15596:11;15587:4;:8;;:21;;;;:::i;:::-;15572:36;;15619:13;15635:22;15645:11;15635:5;:9;;:22;;;;:::i;:::-;15619:38;;15668:23;15694:28;15716:5;15694:17;15706:4;15694:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15668:54;;15741:7;15750:15;15767:4;15733:39;;;;;;;;;;15246:534;;;;;;;;:::o;2570:246::-;2628:7;2657:1;2652;:6;2648:47;;2682:1;2675:8;;;;2648:47;2705:9;2721:1;2717;:5;;;;:::i;:::-;2705:17;;2750:1;2745;2741;:5;;;;:::i;:::-;:10;2733:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:1;2800:8;;;2570:246;;;;;:::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;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:116::-;6248:21;6263:5;6248:21;:::i;:::-;6241:5;6238:32;6228:60;;6284:1;6281;6274:12;6228:60;6178:116;:::o;6300:133::-;6343:5;6381:6;6368:20;6359:29;;6397:30;6421:5;6397:30;:::i;:::-;6300:133;;;;:::o;6439:323::-;6495:6;6544:2;6532:9;6523:7;6519:23;6515:32;6512:119;;;6550:79;;:::i;:::-;6512:119;6670:1;6695:50;6737:7;6728:6;6717:9;6713:22;6695:50;:::i;:::-;6685:60;;6641:114;6439:323;;;;:::o;6768:329::-;6827:6;6876:2;6864:9;6855:7;6851:23;6847:32;6844:119;;;6882:79;;:::i;:::-;6844:119;7002:1;7027:53;7072:7;7063:6;7052:9;7048:22;7027:53;:::i;:::-;7017:63;;6973:117;6768:329;;;;:::o;7103:::-;7162:6;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7103:329;;;;:::o;7438:765::-;7524:6;7532;7540;7548;7597:3;7585:9;7576:7;7572:23;7568:33;7565:120;;;7604:79;;:::i;:::-;7565:120;7724:1;7749:53;7794:7;7785:6;7774:9;7770:22;7749:53;:::i;:::-;7739:63;;7695:117;7851:2;7877:53;7922:7;7913:6;7902:9;7898:22;7877:53;:::i;:::-;7867:63;;7822:118;7979:2;8005:53;8050:7;8041:6;8030:9;8026:22;8005:53;:::i;:::-;7995:63;;7950:118;8107:2;8133:53;8178:7;8169:6;8158:9;8154:22;8133:53;:::i;:::-;8123:63;;8078:118;7438:765;;;;;;;:::o;8209:117::-;8318:1;8315;8308:12;8332:117;8441:1;8438;8431:12;8455:117;8564:1;8561;8554:12;8595:568;8668:8;8678:6;8728:3;8721:4;8713:6;8709:17;8705:27;8695:122;;8736:79;;:::i;:::-;8695:122;8849:6;8836:20;8826:30;;8879:18;8871:6;8868:30;8865:117;;;8901:79;;:::i;:::-;8865:117;9015:4;9007:6;9003:17;8991:29;;9069:3;9061:4;9053:6;9049:17;9039:8;9035:32;9032:41;9029:128;;;9076:79;;:::i;:::-;9029:128;8595:568;;;;;:::o;9169:698::-;9261:6;9269;9277;9326:2;9314:9;9305:7;9301:23;9297:32;9294:119;;;9332:79;;:::i;:::-;9294:119;9480:1;9469:9;9465:17;9452:31;9510:18;9502:6;9499:30;9496:117;;;9532:79;;:::i;:::-;9496:117;9645:80;9717:7;9708:6;9697:9;9693:22;9645:80;:::i;:::-;9627:98;;;;9423:312;9774:2;9800:50;9842:7;9833:6;9822:9;9818:22;9800:50;:::i;:::-;9790:60;;9745:115;9169:698;;;;;:::o;9873:474::-;9941:6;9949;9998:2;9986:9;9977:7;9973:23;9969:32;9966:119;;;10004:79;;:::i;:::-;9966:119;10124:1;10149:53;10194:7;10185:6;10174:9;10170:22;10149:53;:::i;:::-;10139:63;;10095:117;10251:2;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10222:118;9873:474;;;;;:::o;10353:182::-;10493:34;10489:1;10481:6;10477:14;10470:58;10353:182;:::o;10541:366::-;10683:3;10704:67;10768:2;10763:3;10704:67;:::i;:::-;10697:74;;10780:93;10869:3;10780:93;:::i;:::-;10898:2;10893:3;10889:12;10882:19;;10541:366;;;:::o;10913:419::-;11079:4;11117:2;11106:9;11102:18;11094:26;;11166:9;11160:4;11156:20;11152:1;11141:9;11137:17;11130:47;11194:131;11320:4;11194:131;:::i;:::-;11186:139;;10913:419;;;:::o;11338:180::-;11386:77;11383:1;11376:88;11483:4;11480:1;11473:15;11507:4;11504:1;11497:15;11524:348;11564:7;11587:20;11605:1;11587:20;:::i;:::-;11582:25;;11621:20;11639:1;11621:20;:::i;:::-;11616:25;;11809:1;11741:66;11737:74;11734:1;11731:81;11726:1;11719:9;11712:17;11708:105;11705:131;;;11816:18;;:::i;:::-;11705:131;11864:1;11861;11857:9;11846:20;;11524:348;;;;:::o;11878:180::-;11926:77;11923:1;11916:88;12023:4;12020:1;12013:15;12047:4;12044:1;12037:15;12064:185;12104:1;12121:20;12139:1;12121:20;:::i;:::-;12116:25;;12155:20;12173:1;12155:20;:::i;:::-;12150:25;;12194:1;12184:35;;12199:18;;:::i;:::-;12184:35;12241:1;12238;12234:9;12229:14;;12064:185;;;;:::o;12255:232::-;12395:34;12391:1;12383:6;12379:14;12372:58;12464:15;12459:2;12451:6;12447:15;12440:40;12255:232;:::o;12493:366::-;12635:3;12656:67;12720:2;12715:3;12656:67;:::i;:::-;12649:74;;12732:93;12821:3;12732:93;:::i;:::-;12850:2;12845:3;12841:12;12834:19;;12493:366;;;:::o;12865:419::-;13031:4;13069:2;13058:9;13054:18;13046:26;;13118:9;13112:4;13108:20;13104:1;13093:9;13089:17;13082:47;13146:131;13272:4;13146:131;:::i;:::-;13138:139;;12865:419;;;:::o;13290:172::-;13430:24;13426:1;13418:6;13414:14;13407:48;13290:172;:::o;13468:366::-;13610:3;13631:67;13695:2;13690:3;13631:67;:::i;:::-;13624:74;;13707:93;13796:3;13707:93;:::i;:::-;13825:2;13820:3;13816:12;13809:19;;13468:366;;;:::o;13840:419::-;14006:4;14044:2;14033:9;14029:18;14021:26;;14093:9;14087:4;14083:20;14079:1;14068:9;14064:17;14057:47;14121:131;14247:4;14121:131;:::i;:::-;14113:139;;13840:419;;;:::o;14265:221::-;14405:34;14401:1;14393:6;14389:14;14382:58;14474:4;14469:2;14461:6;14457:15;14450:29;14265:221;:::o;14492:366::-;14634:3;14655:67;14719:2;14714:3;14655:67;:::i;:::-;14648:74;;14731:93;14820:3;14731:93;:::i;:::-;14849:2;14844:3;14840:12;14833:19;;14492:366;;;:::o;14864:419::-;15030:4;15068:2;15057:9;15053:18;15045:26;;15117:9;15111:4;15107:20;15103:1;15092:9;15088:17;15081:47;15145:131;15271:4;15145:131;:::i;:::-;15137:139;;14864:419;;;:::o;15289:173::-;15429:25;15425:1;15417:6;15413:14;15406:49;15289:173;:::o;15468:366::-;15610:3;15631:67;15695:2;15690:3;15631:67;:::i;:::-;15624:74;;15707:93;15796:3;15707:93;:::i;:::-;15825:2;15820:3;15816:12;15809:19;;15468:366;;;:::o;15840:419::-;16006:4;16044:2;16033:9;16029:18;16021:26;;16093:9;16087:4;16083:20;16079:1;16068:9;16064:17;16057:47;16121:131;16247:4;16121:131;:::i;:::-;16113:139;;15840:419;;;:::o;16265:222::-;16405:34;16401:1;16393:6;16389:14;16382:58;16474:5;16469:2;16461:6;16457:15;16450:30;16265:222;:::o;16493:366::-;16635:3;16656:67;16720:2;16715:3;16656:67;:::i;:::-;16649:74;;16732:93;16821:3;16732:93;:::i;:::-;16850:2;16845:3;16841:12;16834:19;;16493:366;;;:::o;16865:419::-;17031:4;17069:2;17058:9;17054:18;17046:26;;17118:9;17112:4;17108:20;17104:1;17093:9;17089:17;17082:47;17146:131;17272:4;17146:131;:::i;:::-;17138:139;;16865:419;;;:::o;17290:180::-;17338:77;17335:1;17328:88;17435:4;17432:1;17425:15;17459:4;17456:1;17449:15;17476:233;17515:3;17538:24;17556:5;17538:24;:::i;:::-;17529:33;;17584:66;17577:5;17574:77;17571:103;;17654:18;;:::i;:::-;17571:103;17701:1;17694:5;17690:13;17683:20;;17476:233;;;:::o;17715:227::-;17855:34;17851:1;17843:6;17839:14;17832:58;17924:10;17919:2;17911:6;17907:15;17900:35;17715:227;:::o;17948:366::-;18090:3;18111:67;18175:2;18170:3;18111:67;:::i;:::-;18104:74;;18187:93;18276:3;18187:93;:::i;:::-;18305:2;18300:3;18296:12;18289:19;;17948:366;;;:::o;18320:419::-;18486:4;18524:2;18513:9;18509:18;18501:26;;18573:9;18567:4;18563:20;18559:1;18548:9;18544:17;18537:47;18601:131;18727:4;18601:131;:::i;:::-;18593:139;;18320:419;;;:::o;18745:225::-;18885:34;18881:1;18873:6;18869:14;18862:58;18954:8;18949:2;18941:6;18937:15;18930:33;18745:225;:::o;18976:366::-;19118:3;19139:67;19203:2;19198:3;19139:67;:::i;:::-;19132:74;;19215:93;19304:3;19215:93;:::i;:::-;19333:2;19328:3;19324:12;19317:19;;18976:366;;;:::o;19348:419::-;19514:4;19552:2;19541:9;19537:18;19529:26;;19601:9;19595:4;19591:20;19587:1;19576:9;19572:17;19565:47;19629:131;19755:4;19629:131;:::i;:::-;19621:139;;19348:419;;;:::o;19773:223::-;19913:34;19909:1;19901:6;19897:14;19890:58;19982:6;19977:2;19969:6;19965:15;19958:31;19773:223;:::o;20002:366::-;20144:3;20165:67;20229:2;20224:3;20165:67;:::i;:::-;20158:74;;20241:93;20330:3;20241:93;:::i;:::-;20359:2;20354:3;20350:12;20343:19;;20002:366;;;:::o;20374:419::-;20540:4;20578:2;20567:9;20563:18;20555:26;;20627:9;20621:4;20617:20;20613:1;20602:9;20598:17;20591:47;20655:131;20781:4;20655:131;:::i;:::-;20647:139;;20374:419;;;:::o;20799:221::-;20939:34;20935:1;20927:6;20923:14;20916:58;21008:4;21003:2;20995:6;20991:15;20984:29;20799:221;:::o;21026:366::-;21168:3;21189:67;21253:2;21248:3;21189:67;:::i;:::-;21182:74;;21265:93;21354:3;21265:93;:::i;:::-;21383:2;21378:3;21374:12;21367:19;;21026:366;;;:::o;21398:419::-;21564:4;21602:2;21591:9;21587:18;21579:26;;21651:9;21645:4;21641:20;21637:1;21626:9;21622:17;21615:47;21679:131;21805:4;21679:131;:::i;:::-;21671:139;;21398:419;;;:::o;21823:224::-;21963:34;21959:1;21951:6;21947:14;21940:58;22032:7;22027:2;22019:6;22015:15;22008:32;21823:224;:::o;22053:366::-;22195:3;22216:67;22280:2;22275:3;22216:67;:::i;:::-;22209:74;;22292:93;22381:3;22292:93;:::i;:::-;22410:2;22405:3;22401:12;22394:19;;22053:366;;;:::o;22425:419::-;22591:4;22629:2;22618:9;22614:18;22606:26;;22678:9;22672:4;22668:20;22664:1;22653:9;22649:17;22642:47;22706:131;22832:4;22706:131;:::i;:::-;22698:139;;22425:419;;;:::o;22850:222::-;22990:34;22986:1;22978:6;22974:14;22967:58;23059:5;23054:2;23046:6;23042:15;23035:30;22850:222;:::o;23078:366::-;23220:3;23241:67;23305:2;23300:3;23241:67;:::i;:::-;23234:74;;23317:93;23406:3;23317:93;:::i;:::-;23435:2;23430:3;23426:12;23419:19;;23078:366;;;:::o;23450:419::-;23616:4;23654:2;23643:9;23639:18;23631:26;;23703:9;23697:4;23693:20;23689:1;23678:9;23674:17;23667:47;23731:131;23857:4;23731:131;:::i;:::-;23723:139;;23450:419;;;:::o;23875:228::-;24015:34;24011:1;24003:6;23999:14;23992:58;24084:11;24079:2;24071:6;24067:15;24060:36;23875:228;:::o;24109:366::-;24251:3;24272:67;24336:2;24331:3;24272:67;:::i;:::-;24265:74;;24348:93;24437:3;24348:93;:::i;:::-;24466:2;24461:3;24457:12;24450:19;;24109:366;;;:::o;24481:419::-;24647:4;24685:2;24674:9;24670:18;24662:26;;24734:9;24728:4;24724:20;24720:1;24709:9;24705:17;24698:47;24762:131;24888:4;24762:131;:::i;:::-;24754:139;;24481:419;;;:::o;24906:250::-;25046:34;25042:1;25034:6;25030:14;25023:58;25115:33;25110:2;25102:6;25098:15;25091:58;24906:250;:::o;25162:366::-;25304:3;25325:67;25389:2;25384:3;25325:67;:::i;:::-;25318:74;;25401:93;25490:3;25401:93;:::i;:::-;25519:2;25514:3;25510:12;25503:19;;25162:366;;;:::o;25534:419::-;25700:4;25738:2;25727:9;25723:18;25715:26;;25787:9;25781:4;25777:20;25773:1;25762:9;25758:17;25751:47;25815:131;25941:4;25815:131;:::i;:::-;25807:139;;25534:419;;;:::o;25959:178::-;26099:30;26095:1;26087:6;26083:14;26076:54;25959:178;:::o;26143:366::-;26285:3;26306:67;26370:2;26365:3;26306:67;:::i;:::-;26299:74;;26382:93;26471:3;26382:93;:::i;:::-;26500:2;26495:3;26491:12;26484:19;;26143:366;;;:::o;26515:419::-;26681:4;26719:2;26708:9;26704:18;26696:26;;26768:9;26762:4;26758:20;26754:1;26743:9;26739:17;26732:47;26796:131;26922:4;26796:131;:::i;:::-;26788:139;;26515:419;;;:::o;26940:222::-;27080:34;27076:1;27068:6;27064:14;27057:58;27149:5;27144:2;27136:6;27132:15;27125:30;26940:222;:::o;27168:366::-;27310:3;27331:67;27395:2;27390:3;27331:67;:::i;:::-;27324:74;;27407:93;27496:3;27407:93;:::i;:::-;27525:2;27520:3;27516:12;27509:19;;27168:366;;;:::o;27540:419::-;27706:4;27744:2;27733:9;27729:18;27721:26;;27793:9;27787:4;27783:20;27779:1;27768:9;27764:17;27757:47;27821:131;27947:4;27821:131;:::i;:::-;27813:139;;27540:419;;;:::o;27965:191::-;28005:3;28024:20;28042:1;28024:20;:::i;:::-;28019:25;;28058:20;28076:1;28058:20;:::i;:::-;28053:25;;28101:1;28098;28094:9;28087:16;;28122:3;28119:1;28116:10;28113:36;;;28129:18;;:::i;:::-;28113:36;27965:191;;;;:::o;28162:222::-;28302:34;28298:1;28290:6;28286:14;28279:58;28371:5;28366:2;28358:6;28354:15;28347:30;28162:222;:::o;28390:366::-;28532:3;28553:67;28617:2;28612:3;28553:67;:::i;:::-;28546:74;;28629:93;28718:3;28629:93;:::i;:::-;28747:2;28742:3;28738:12;28731:19;;28390:366;;;:::o;28762:419::-;28928:4;28966:2;28955:9;28951:18;28943:26;;29015:9;29009:4;29005:20;29001:1;28990:9;28986:17;28979:47;29043:131;29169:4;29043:131;:::i;:::-;29035:139;;28762:419;;;:::o;29187:194::-;29227:4;29247:20;29265:1;29247:20;:::i;:::-;29242:25;;29281:20;29299:1;29281:20;:::i;:::-;29276:25;;29325:1;29322;29318:9;29310:17;;29349:1;29343:4;29340:11;29337:37;;;29354:18;;:::i;:::-;29337:37;29187:194;;;;:::o;29387:229::-;29527:34;29523:1;29515:6;29511:14;29504:58;29596:12;29591:2;29583:6;29579:15;29572:37;29387:229;:::o;29622:366::-;29764:3;29785:67;29849:2;29844:3;29785:67;:::i;:::-;29778:74;;29861:93;29950:3;29861:93;:::i;:::-;29979:2;29974:3;29970:12;29963:19;;29622:366;;;:::o;29994:419::-;30160:4;30198:2;30187:9;30183:18;30175:26;;30247:9;30241:4;30237:20;30233:1;30222:9;30218:17;30211:47;30275:131;30401:4;30275:131;:::i;:::-;30267:139;;29994:419;;;:::o;30419:180::-;30467:77;30464:1;30457:88;30564:4;30561:1;30554:15;30588:4;30585:1;30578:15;30605:143;30662:5;30693:6;30687:13;30678:22;;30709:33;30736:5;30709:33;:::i;:::-;30605:143;;;;:::o;30754:351::-;30824:6;30873:2;30861:9;30852:7;30848:23;30844:32;30841:119;;;30879:79;;:::i;:::-;30841:119;30999:1;31024:64;31080:7;31071:6;31060:9;31056:22;31024:64;:::i;:::-;31014:74;;30970:128;30754:351;;;;:::o;31111:85::-;31156:7;31185:5;31174:16;;31111:85;;;:::o;31202:158::-;31260:9;31293:61;31311:42;31320:32;31346:5;31320:32;:::i;:::-;31311:42;:::i;:::-;31293:61;:::i;:::-;31280:74;;31202:158;;;:::o;31366:147::-;31461:45;31500:5;31461:45;:::i;:::-;31456:3;31449:58;31366:147;;:::o;31519:114::-;31586:6;31620:5;31614:12;31604:22;;31519:114;;;:::o;31639:184::-;31738:11;31772:6;31767:3;31760:19;31812:4;31807:3;31803:14;31788:29;;31639:184;;;;:::o;31829:132::-;31896:4;31919:3;31911:11;;31949:4;31944:3;31940:14;31932:22;;31829:132;;;:::o;31967:108::-;32044:24;32062:5;32044:24;:::i;:::-;32039:3;32032:37;31967:108;;:::o;32081:179::-;32150:10;32171:46;32213:3;32205:6;32171:46;:::i;:::-;32249:4;32244:3;32240:14;32226:28;;32081:179;;;;:::o;32266:113::-;32336:4;32368;32363:3;32359:14;32351:22;;32266:113;;;:::o;32415:732::-;32534:3;32563:54;32611:5;32563:54;:::i;:::-;32633:86;32712:6;32707:3;32633:86;:::i;:::-;32626:93;;32743:56;32793:5;32743:56;:::i;:::-;32822:7;32853:1;32838:284;32863:6;32860:1;32857:13;32838:284;;;32939:6;32933:13;32966:63;33025:3;33010:13;32966:63;:::i;:::-;32959:70;;33052:60;33105:6;33052:60;:::i;:::-;33042:70;;32898:224;32885:1;32882;32878:9;32873:14;;32838:284;;;32842:14;33138:3;33131:10;;32539:608;;;32415:732;;;;:::o;33153:831::-;33416:4;33454:3;33443:9;33439:19;33431:27;;33468:71;33536:1;33525:9;33521:17;33512:6;33468:71;:::i;:::-;33549:80;33625:2;33614:9;33610:18;33601:6;33549:80;:::i;:::-;33676:9;33670:4;33666:20;33661:2;33650:9;33646:18;33639:48;33704:108;33807:4;33798:6;33704:108;:::i;:::-;33696:116;;33822:72;33890:2;33879:9;33875:18;33866:6;33822:72;:::i;:::-;33904:73;33972:3;33961:9;33957:19;33948:6;33904:73;:::i;:::-;33153:831;;;;;;;;:::o;33990:177::-;34130:29;34126:1;34118:6;34114:14;34107:53;33990:177;:::o;34173:366::-;34315:3;34336:67;34400:2;34395:3;34336:67;:::i;:::-;34329:74;;34412:93;34501:3;34412:93;:::i;:::-;34530:2;34525:3;34521:12;34514:19;;34173:366;;;:::o;34545:419::-;34711:4;34749:2;34738:9;34734:18;34726:26;;34798:9;34792:4;34788:20;34784:1;34773:9;34769:17;34762:47;34826:131;34952:4;34826:131;:::i;:::-;34818:139;;34545:419;;;:::o;34970:220::-;35110:34;35106:1;35098:6;35094:14;35087:58;35179:3;35174:2;35166:6;35162:15;35155:28;34970:220;:::o;35196:366::-;35338:3;35359:67;35423:2;35418:3;35359:67;:::i;:::-;35352:74;;35435:93;35524:3;35435:93;:::i;:::-;35553:2;35548:3;35544:12;35537:19;;35196:366;;;:::o;35568:419::-;35734:4;35772:2;35761:9;35757:18;35749:26;;35821:9;35815:4;35811:20;35807:1;35796:9;35792:17;35785:47;35849:131;35975:4;35849:131;:::i;:::-;35841:139;;35568:419;;;:::o
Swarm Source
ipfs://7a0c9f7c750a0295a2c35cf22a6abf670784c0d85e1786ba5d4715ac15a91941
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.