Contract Overview
Balance:
0 CRO
CRO Value:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 23 internal transactions
[ Download CSV Export ]
Contract Source Code Verified (Exact Match)
Contract Name:
PhenixLiquidityManager
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2023-03-19 */ // File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } // File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/PhenixLiquidityManager.sol pragma solidity ^0.8.9; contract PhenixLiquidityManager is Ownable { // Phenix Liquidity Manange - By Phenix Finance // What is the "Phenix Liquidity Manager"? // > The Phenix Liquidity Manager is a basic middle-man contract // that allows user of the Phenix DEX to add and remove liquidity // with tax-based tokens without incuring any of the base token's // taxes (such as Phenix Finance's tokens Buy and Sell TAX) address public routerAddress; address public factoryAddress; address public weth; bool public isPaused; mapping(address => bool) public taxableToken; constructor(address _routerAddress) { routerAddress = _routerAddress; factoryAddress = IUniswapV2Router02(routerAddress).factory(); weth = IUniswapV2Router02(routerAddress).WETH(); } modifier isOpen() { require(isPaused == false, "not permitted"); _; } function setRouterAddress(address _address) external onlyOwner { routerAddress = _address; factoryAddress = IUniswapV2Router02(routerAddress).factory(); weth = IUniswapV2Router02(routerAddress).WETH(); } function setTaxableToken(address _address, bool _status) external onlyOwner { taxableToken[_address] = _status; } function setIsPaused(bool _status) external onlyOwner { isPaused = _status; } struct AddLiquidityInfo { address tokenA; address tokenB; uint256 amountADesired; uint256 amountBDesired; uint256 amountAMin; uint256 amountBMin; address to; uint256 deadline; } struct RemoveLiquidityInfo { address tokenA; address tokenB; uint256 liquidity; uint256 amountAMin; uint256 amountBMin; address to; uint256 deadline; } struct AddLiquidityETHInfo { address token; uint256 amountTokenDesired; uint256 amountTokenMin; uint256 amountETHMin; address to; uint256 deadline; } struct RemoveLiquidityETHInfo { address token; uint256 liquidity; uint256 amountTokenMin; uint256 amountETHMin; address to; uint256 deadline; } function addLiquidity( AddLiquidityInfo memory data ) external isOpen { address toAddress = taxableToken[data.tokenA] || taxableToken[data.tokenB] ? address(this) : data.to; // Get the pair address address pair = IUniswapV2Factory(factoryAddress).getPair(data.tokenA, data.tokenB); // Transfer tokens to contract require(IERC20(data.tokenA).transferFrom(msg.sender, address(this), data.amountADesired), "Token A Transfer Failed!"); require(IERC20(data.tokenB).transferFrom(msg.sender, address(this), data.amountBDesired), "Token B Transfer Failed!"); // Approve router to add liquidity IERC20(data.tokenA).approve(routerAddress, data.amountADesired); IERC20(data.tokenB).approve(routerAddress, data.amountBDesired); // Add liquidity with this contract as the receiver of the minted LP tokens (,, uint256 _liquidity) = IUniswapV2Router02(routerAddress) .addLiquidity( data.tokenA, data.tokenB, data.amountADesired, data.amountBDesired, data.amountAMin, data.amountBMin, toAddress, data.deadline ); if(toAddress == address(this)) { // Send received pair tokens to the original "to" address require(IERC20(pair).transfer(data.to, _liquidity), "Transfer failed!"); } if(IERC20(data.tokenA).balanceOf(address(this)) > 0) { require(IERC20(data.tokenA).transfer(data.to, IERC20(data.tokenA).balanceOf(address(this))), "Token A Refund Failed!"); } if(IERC20(data.tokenB).balanceOf(address(this)) > 0) { require(IERC20(data.tokenB).transfer(data.to, IERC20(data.tokenB).balanceOf(address(this))), "Token B Refund Failed!"); } } function removeLiquidity( RemoveLiquidityInfo memory data ) external isOpen { address toAddress = taxableToken[data.tokenA] || taxableToken[data.tokenB] ? address(this) : data.to; // Get the pair address address pair = IUniswapV2Factory(factoryAddress).getPair(data.tokenA, data.tokenB); // Transfer Pair Tokens to contract require(IERC20(pair).transferFrom(msg.sender, address(this), data.liquidity), "Liquidity Token Transfer Failed!"); // Approve router to remove liquidity IERC20(pair).approve(routerAddress, data.liquidity); // Add liquidity with this contract as the receiver of the minted LP tokens (uint256 amountA, uint256 amountB) = IUniswapV2Router02(routerAddress) .removeLiquidity( data.tokenA, data.tokenB, data.liquidity, data.amountAMin, data.amountBMin, toAddress, data.deadline ); if(toAddress == address(this)) { // Send received tokenA to the original "to" address require(IERC20(IUniswapV2Pair(pair).token0()).transfer(data.to, amountA), "Token A Transfer failed!"); // Send received tokenB to the original "to" address require(IERC20(IUniswapV2Pair(pair).token1()).transfer(data.to, amountB), "Token B Transfer failed!"); } } function addLiquidityETH( AddLiquidityETHInfo memory data ) external payable isOpen { address toAddress = taxableToken[data.token] ? address(this) : data.to; // Transfer token to contract require(IERC20(data.token).transferFrom(msg.sender, address(this), data.amountTokenDesired), "Token Transfer Failed"); // Approve router to add liquidity IERC20(data.token).approve(routerAddress, data.amountTokenDesired); // Add liquidity with this contract as the receiver of the minted LP tokens (,,uint256 _liquidity) = IUniswapV2Router02(routerAddress) .addLiquidityETH{ value: msg.value } ( data.token, data.amountTokenDesired, data.amountTokenMin, data.amountETHMin, toAddress, data.deadline ); if(toAddress == address(this)) { // Get the pair address after liquidity has been added address pair = IUniswapV2Factory(factoryAddress).getPair(data.token, weth); // Send received pair tokens to the original "to" address require(IERC20(pair).transfer(data.to, _liquidity), "Transfer failed!"); } if(IERC20(data.token).balanceOf(address(this)) > 0) { require(IERC20(data.token).transfer(data.to, IERC20(data.token).balanceOf(address(this))), "Token Refund Failed"); } if(address(this).balance > 0) { (bool success, ) = address(data.to).call{ value: address(this).balance }(""); require(success, "ETH Refund Failed."); } } function removeLiquidityETH( RemoveLiquidityETHInfo memory data ) external isOpen { address toAddress = taxableToken[data.token] ? address(this) : data.to; // Get the pair address address pair = IUniswapV2Factory(factoryAddress).getPair(data.token, weth); // Transfer Pair Tokens to contract require(IERC20(pair).transferFrom(msg.sender, address(this), data.liquidity), "Pair Token Transfer Failed!"); // Approve router to remove liquidity IERC20(pair).approve(routerAddress, data.liquidity); // Add liquidity with this contract as the receiver of the minted LP tokens (uint amountToken, uint amountETH) = IUniswapV2Router02(routerAddress) .removeLiquidityETH( data.token, data.liquidity, data.amountTokenMin, data.amountETHMin, toAddress, data.deadline ); if(toAddress == address(this)) { address _token0 = IUniswapV2Pair(pair).token0(); address _token1 = IUniswapV2Pair(pair).token1(); address _token = _token0 == weth ? _token1 : _token0; // Send received token to the original "to" address require(IERC20(_token).transfer(data.to, amountToken), "Token Transfer failed!"); // Send received ETH to original "to" address (bool success, ) = address(data.to).call{ value: amountETH }(""); require(success, "Failed to recover ETH."); } } function emergencyRecoverETH() external onlyOwner { require(address(this).balance > 0, "No ETH to recover."); (bool success, ) = address(msg.sender).call{ value: address(this).balance }(""); require(success, "Failed to recover ETH."); } function emergencyRecoverToken(address _tokenAddress) external onlyOwner { require( IERC20(_tokenAddress).balanceOf(address(this)) > 0, "No tokens to recover." ); IERC20(_tokenAddress).transfer( msg.sender, IERC20(_tokenAddress).balanceOf(address(this)) ); } }
[{"inputs":[{"internalType":"address","name":"_routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct PhenixLiquidityManager.AddLiquidityInfo","name":"data","type":"tuple"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct PhenixLiquidityManager.AddLiquidityETHInfo","name":"data","type":"tuple"}],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"emergencyRecoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"emergencyRecoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct PhenixLiquidityManager.RemoveLiquidityInfo","name":"data","type":"tuple"}],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct PhenixLiquidityManager.RemoveLiquidityETHInfo","name":"data","type":"tuple"}],"name":"removeLiquidityETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setIsPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setTaxableToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxableToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620026f7380380620026f78339810160408190526200003491620001bb565b6200003f336200016b565b600180546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000099573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000bf9190620001bb565b600280546001600160a01b0319166001600160a01b03928316179055600154604080516315ab88c960e31b81529051919092169163ad5c46489160048083019260209291908290030181865afa1580156200011e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001449190620001bb565b600380546001600160a01b0319166001600160a01b039290921691909117905550620001ed565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001ce57600080fd5b81516001600160a01b0381168114620001e657600080fd5b9392505050565b6124fa80620001fd6000396000f3fe6080604052600436106100fe5760003560e01c806368f47877116100955780638da5cb5b116100645780638da5cb5b1461027f578063966dae0e1461029d578063b187bd26146102bd578063d4339f7f146102ee578063f2fde38b1461031e57600080fd5b806368f478771461020a578063715018a61461022a57806384cec8551461023f57806386bce9921461025f57600080fd5b8063240976bf116100d1578063240976bf1461016d5780633268cc561461018d5780633fc8cef3146101ca57806341cb87fc146101ea57600080fd5b8063045076501461010357806307f594a314610118578063186e2d7714610138578063237902161461014d575b600080fd5b610116610111366004612178565b61033e565b005b34801561012457600080fd5b5061011661013336600461219b565b6108ed565b34801561014457600080fd5b50610116610a7b565b34801561015957600080fd5b506101166101683660046121b8565b610b5c565b34801561017957600080fd5b5061011661018836600461227e565b61139a565b34801561019957600080fd5b506001546101ad906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d657600080fd5b506003546101ad906001600160a01b031681565b3480156101f657600080fd5b5061011661020536600461219b565b6113c0565b34801561021657600080fd5b5061011661022536600461229b565b6114ea565b34801561023657600080fd5b5061011661151d565b34801561024b57600080fd5b5061011661025a3660046122d4565b611531565b34801561026b57600080fd5b5061011661027a366004612178565b611a87565b34801561028b57600080fd5b506000546001600160a01b03166101ad565b3480156102a957600080fd5b506002546101ad906001600160a01b031681565b3480156102c957600080fd5b506003546102de90600160a01b900460ff1681565b60405190151581526020016101c1565b3480156102fa57600080fd5b506102de61030936600461219b565b60046020526000908152604090205460ff1681565b34801561032a57600080fd5b5061011661033936600461219b565b611f99565b600354600160a01b900460ff16156103715760405162461bcd60e51b815260040161036890612380565b60405180910390fd5b80516001600160a01b031660009081526004602052604081205460ff1661039c57816080015161039e565b305b825160208401516040516323b872dd60e01b81529293506001600160a01b03909116916323b872dd916103d791339130916004016123a7565b6020604051808303816000875af11580156103f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041a91906123cb565b61045e5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b88151c985b9cd9995c8811985a5b1959605a1b6044820152606401610368565b8151600154602084015160405163095ea7b360e01b81526001600160a01b039384169363095ea7b393610496939116916004016123e8565b6020604051808303816000875af11580156104b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d991906123cb565b5060015482516020840151604080860151606087015160a0880151925163f305d71960e01b81526000966001600160a01b03169563f305d71995349561052895929491938b9190600401612401565b60606040518083038185885af1158015610546573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061056b919061243c565b925050306001600160a01b0384160390506106b757600254835160035460405163e6a4390560e01b81526001600160a01b0392831660048201529082166024820152600092919091169063e6a4390590604401602060405180830381865afa1580156105db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ff919061246a565b608085015160405163a9059cbb60e01b81529192506001600160a01b0383169163a9059cbb916106339186906004016123e8565b6020604051808303816000875af1158015610652573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067691906123cb565b6106b55760405162461bcd60e51b815260206004820152601060248201526f5472616e73666572206661696c65642160801b6044820152606401610368565b505b82516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190612487565b111561084457825160808401516040516370a0823160e01b81523060048201526001600160a01b039092169163a9059cbb919083906370a0823190602401602060405180830381865afa15801561077e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a29190612487565b6040518363ffffffff1660e01b81526004016107bf9291906123e8565b6020604051808303816000875af11580156107de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080291906123cb565b6108445760405162461bcd60e51b8152602060048201526013602482015272151bdad95b881499599d5b990811985a5b1959606a1b6044820152606401610368565b47156108e857600083608001516001600160a01b03164760405160006040518083038185875af1925050503d806000811461089b576040519150601f19603f3d011682016040523d82523d6000602084013e6108a0565b606091505b50509050806108e65760405162461bcd60e51b815260206004820152601260248201527122aa24102932b33ab732102330b4b632b21760711b6044820152606401610368565b505b505050565b6108f561200f565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561093c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109609190612487565b116109a55760405162461bcd60e51b81526020600482015260156024820152742737903a37b5b2b739903a37903932b1b7bb32b91760591b6044820152606401610368565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a179190612487565b6040518363ffffffff1660e01b8152600401610a349291906123e8565b6020604051808303816000875af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906123cb565b5050565b610a8361200f565b60004711610ac85760405162461bcd60e51b815260206004820152601260248201527127379022aa24103a37903932b1b7bb32b91760711b6044820152606401610368565b604051600090339047908381818185875af1925050503d8060008114610b0a576040519150601f19603f3d011682016040523d82523d6000602084013e610b0f565b606091505b5050905080610b595760405162461bcd60e51b81526020600482015260166024820152752330b4b632b2103a37903932b1b7bb32b91022aa241760511b6044820152606401610368565b50565b600354600160a01b900460ff1615610b865760405162461bcd60e51b815260040161036890612380565b80516001600160a01b031660009081526004602052604081205460ff1680610bcb57506020808301516001600160a01b031660009081526004909152604090205460ff165b610bd9578160c00151610bdb565b305b6002548351602085015160405163e6a4390560e01b81526001600160a01b039283166004820152908216602482015292935060009291169063e6a4390590604401602060405180830381865afa158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d919061246a565b835160408086015190516323b872dd60e01b81529293506001600160a01b03909116916323b872dd91610c9691339130916004016123a7565b6020604051808303816000875af1158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd991906123cb565b610d255760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2041205472616e73666572204661696c65642100000000000000006044820152606401610368565b602083015160608401516040516323b872dd60e01b81526001600160a01b03909216916323b872dd91610d5e91339130916004016123a7565b6020604051808303816000875af1158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da191906123cb565b610ded5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2042205472616e73666572204661696c65642100000000000000006044820152606401610368565b8251600154604080860151905163095ea7b360e01b81526001600160a01b039384169363095ea7b393610e25939116916004016123e8565b6020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6891906123cb565b506020830151600154606085015160405163095ea7b360e01b81526001600160a01b039384169363095ea7b393610ea4939116916004016123e8565b6020604051808303816000875af1158015610ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee791906123cb565b50600154835160208501516040808701516060880151608089015160a08a015160e08b0151945162e8e33760e81b81526001600160a01b039788166004820152958716602487015260448601939093526064850191909152608484015260a483015285831660c483015260e4820152600092919091169063e8e3370090610104016060604051808303816000875af1158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab919061243c565b925050306001600160a01b0385160390506110745760c084015160405163a9059cbb60e01b81526001600160a01b0384169163a9059cbb91610ff2919085906004016123e8565b6020604051808303816000875af1158015611011573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103591906123cb565b6110745760405162461bcd60e51b815260206004820152601060248201526f5472616e73666572206661696c65642160801b6044820152606401610368565b83516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156110bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e09190612487565b111561120457835160c08501516040516370a0823160e01b81523060048201526001600160a01b039092169163a9059cbb919083906370a0823190602401602060405180830381865afa15801561113b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115f9190612487565b6040518363ffffffff1660e01b815260040161117c9291906123e8565b6020604051808303816000875af115801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf91906123cb565b6112045760405162461bcd60e51b8152602060048201526016602482015275546f6b656e204120526566756e64204661696c65642160501b6044820152606401610368565b60208401516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190612487565b11156108e657602084015160c08501516040516370a0823160e01b81523060048201526001600160a01b039092169163a9059cbb919083906370a0823190602401602060405180830381865afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f59190612487565b6040518363ffffffff1660e01b81526004016113129291906123e8565b6020604051808303816000875af1158015611331573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135591906123cb565b6108e65760405162461bcd60e51b8152602060048201526016602482015275546f6b656e204220526566756e64204661696c65642160501b6044820152606401610368565b6113a261200f565b60038054911515600160a01b0260ff60a01b19909216919091179055565b6113c861200f565b600180546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611421573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611445919061246a565b600280546001600160a01b0319166001600160a01b03928316179055600154604080516315ab88c960e31b81529051919092169163ad5c46489160048083019260209291908290030181865afa1580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c7919061246a565b600380546001600160a01b0319166001600160a01b039290921691909117905550565b6114f261200f565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b61152561200f565b61152f6000612069565b565b600354600160a01b900460ff161561155b5760405162461bcd60e51b815260040161036890612380565b80516001600160a01b031660009081526004602052604081205460ff16806115a057506020808301516001600160a01b031660009081526004909152604090205460ff165b6115ae578160a001516115b0565b305b6002548351602085015160405163e6a4390560e01b81526001600160a01b039283166004820152908216602482015292935060009291169063e6a4390590604401602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611632919061246a565b60408085015190516323b872dd60e01b81529192506001600160a01b038316916323b872dd9161166891339130916004016123a7565b6020604051808303816000875af1158015611687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ab91906123cb565b6116f75760405162461bcd60e51b815260206004820181905260248201527f4c697175696469747920546f6b656e205472616e73666572204661696c6564216044820152606401610368565b600154604084810151905163095ea7b360e01b81526001600160a01b038481169363095ea7b39361172f9392909116916004016123e8565b6020604051808303816000875af115801561174e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177291906123cb565b50600154835160208501516040808701516060880151608089015160c08a01519351635d5155ef60e11b81526001600160a01b039687166004820152948616602486015260448501929092526064840152608483015285831660a483015260c48201526000928392169063baa2abde9060e40160408051808303816000875af1158015611803573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182791906124a0565b9092509050306001600160a01b03851603611a8057826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561187a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189e919061246a565b6001600160a01b031663a9059cbb8660a00151846040518363ffffffff1660e01b81526004016118cf9291906123e8565b6020604051808303816000875af11580156118ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191291906123cb565b61195e5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2041205472616e73666572206661696c65642100000000000000006044820152606401610368565b826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561199c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c0919061246a565b6001600160a01b031663a9059cbb8660a00151836040518363ffffffff1660e01b81526004016119f19291906123e8565b6020604051808303816000875af1158015611a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3491906123cb565b611a805760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2042205472616e73666572206661696c65642100000000000000006044820152606401610368565b5050505050565b600354600160a01b900460ff1615611ab15760405162461bcd60e51b815260040161036890612380565b80516001600160a01b031660009081526004602052604081205460ff16611adc578160800151611ade565b305b600254835160035460405163e6a4390560e01b81526001600160a01b039283166004820152908216602482015292935060009291169063e6a4390590604401602060405180830381865afa158015611b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5e919061246a565b60208401516040516323b872dd60e01b81529192506001600160a01b038316916323b872dd91611b9491339130916004016123a7565b6020604051808303816000875af1158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd791906123cb565b611c235760405162461bcd60e51b815260206004820152601b60248201527f5061697220546f6b656e205472616e73666572204661696c65642100000000006044820152606401610368565b600154602084015160405163095ea7b360e01b81526001600160a01b038481169363095ea7b393611c5b9392909116916004016123e8565b6020604051808303816000875af1158015611c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9e91906123cb565b5060015483516020850151604080870151606088015160a08901519251629d473b60e21b815260009687966001600160a01b03909116956302751cec95611cee95929491938c9190600401612401565b60408051808303816000875af1158015611d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3091906124a0565b9092509050306001600160a01b03851603611a80576000836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da9919061246a565b90506000846001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0f919061246a565b6003549091506000906001600160a01b03848116911614611e305782611e32565b815b608089015160405163a9059cbb60e01b81529192506001600160a01b0383169163a9059cbb91611e669189906004016123e8565b6020604051808303816000875af1158015611e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea991906123cb565b611eee5760405162461bcd60e51b8152602060048201526016602482015275546f6b656e205472616e73666572206661696c65642160501b6044820152606401610368565b600088608001516001600160a01b03168560405160006040518083038185875af1925050503d8060008114611f3f576040519150601f19603f3d011682016040523d82523d6000602084013e611f44565b606091505b5050905080611f8e5760405162461bcd60e51b81526020600482015260166024820152752330b4b632b2103a37903932b1b7bb32b91022aa241760511b6044820152606401610368565b505050505050505050565b611fa161200f565b6001600160a01b0381166120065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610368565b610b5981612069565b6000546001600160a01b0316331461152f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610368565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610b5957600080fd5b80356120d9816120b9565b919050565b600060c082840312156120f057600080fd5b60405160c0810181811067ffffffffffffffff8211171561212157634e487b7160e01b600052604160045260246000fd5b6040529050808235612132816120b9565b808252506020830135602082015260408301356040820152606083013560608201526080830135612162816120b9565b608082015260a092830135920191909152919050565b600060c0828403121561218a57600080fd5b61219483836120de565b9392505050565b6000602082840312156121ad57600080fd5b8135612194816120b9565b60006101008083850312156121cc57600080fd5b6040519081019067ffffffffffffffff821181831017156121fd57634e487b7160e01b600052604160045260246000fd5b816040528335915061220e826120b9565b81815261221d602085016120ce565b602082015260408401356040820152606084013560608201526080840135608082015260a084013560a082015261225660c085016120ce565b60c082015260e084013560e0820152809250505092915050565b8015158114610b5957600080fd5b60006020828403121561229057600080fd5b813561219481612270565b600080604083850312156122ae57600080fd5b82356122b9816120b9565b915060208301356122c981612270565b809150509250929050565b600060e082840312156122e657600080fd5b60405160e0810181811067ffffffffffffffff8211171561231757634e487b7160e01b600052604160045260246000fd5b6040528235612325816120b9565b81526020830135612335816120b9565b8060208301525060408301356040820152606083013560608201526080830135608082015260a0830135612368816120b9565b60a082015260c0928301359281019290925250919050565b6020808252600d908201526c1b9bdd081c195c9b5a5d1d1959609a1b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000602082840312156123dd57600080fd5b815161219481612270565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561245157600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561247c57600080fd5b8151612194816120b9565b60006020828403121561249957600080fd5b5051919050565b600080604083850312156124b357600080fd5b50508051602090910151909290915056fea264697066735822122025eba336ecdeb5cdc7efb96c49f1da86c648198657cdbafa8a5c9858573e709164736f6c6343000812003300000000000000000000000062bc82f8ae8b6ebbebc5aef9147f88ddede7cf28
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000062bc82f8ae8b6ebbebc5aef9147f88ddede7cf28
-----Decoded View---------------
Arg [0] : _routerAddress (address): 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000062bc82f8ae8b6ebbebc5aef9147f88ddede7cf28
Deployed ByteCode Sourcemap
14936:9803:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20699:1724;;;;;;:::i;:::-;;:::i;:::-;;24383:351;;;;;;;;;;-1:-1:-1;24383:351:0;;;;;:::i;:::-;;:::i;24085:290::-;;;;;;;;;;;;;:::i;17263:1936::-;;;;;;;;;;-1:-1:-1;17263:1936:0;;;;;:::i;:::-;;:::i;16249:91::-;;;;;;;;;;-1:-1:-1;16249:91:0;;;;;:::i;:::-;;:::i;15370:28::-;;;;;;;;;;-1:-1:-1;15370:28:0;;;;-1:-1:-1;;;;;15370:28:0;;;;;;-1:-1:-1;;;;;3451:32:1;;;3433:51;;3421:2;3406:18;15370:28:0;;;;;;;;15441:19;;;;;;;;;;-1:-1:-1;15441:19:0;;;;-1:-1:-1;;;;;15441:19:0;;;15871:235;;;;;;;;;;-1:-1:-1;15871:235:0;;;;;:::i;:::-;;:::i;16114:127::-;;;;;;;;;;-1:-1:-1;16114:127:0;;;;;:::i;:::-;;:::i;14029:103::-;;;;;;;;;;;;;:::i;19207:1484::-;;;;;;;;;;-1:-1:-1;19207:1484:0;;;;;:::i;:::-;;:::i;22431:1646::-;;;;;;;;;;-1:-1:-1;22431:1646:0;;;;;:::i;:::-;;:::i;13381:87::-;;;;;;;;;;-1:-1:-1;13427:7:0;13454:6;-1:-1:-1;;;;;13454:6:0;13381:87;;15405:29;;;;;;;;;;-1:-1:-1;15405:29:0;;;;-1:-1:-1;;;;;15405:29:0;;;15467:20;;;;;;;;;;-1:-1:-1;15467:20:0;;;;-1:-1:-1;;;15467:20:0;;;;;;;;;5476:14:1;;5469:22;5451:41;;5439:2;5424:18;15467:20:0;5311:187:1;15496:44:0;;;;;;;;;;-1:-1:-1;15496:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14287:201;;;;;;;;;;-1:-1:-1;14287:201:0;;;;;:::i;:::-;;:::i;20699:1724::-;15808:8;;-1:-1:-1;;;15808:8:0;;;;:17;15800:43;;;;-1:-1:-1;;;15800:43:0;;;;;;;:::i;:::-;;;;;;;;;20841:10;;-1:-1:-1;;;;;20828:24:0::1;20808:17;20828:24:::0;;;:12:::1;:24;::::0;;;;;::::1;;:50;;20871:4;:7;;;20828:50;;;20863:4;20828:50;20945:10:::0;;20997:23:::1;::::0;::::1;::::0;20938:83:::1;::::0;-1:-1:-1;;;20938:83:0;;20808:70;;-1:-1:-1;;;;;;20938:31:0;;::::1;::::0;::::1;::::0;:83:::1;::::0;20970:10:::1;::::0;20990:4:::1;::::0;20938:83:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20930:117;;;::::0;-1:-1:-1;;;20930:117:0;;6677:2:1;20930:117:0::1;::::0;::::1;6659:21:1::0;6716:2;6696:18;;;6689:30;-1:-1:-1;;;6735:18:1;;;6728:51;6796:18;;20930:117:0::1;6475:345:1::0;20930:117:0::1;21111:10:::0;;21131:13:::1;::::0;21146:23:::1;::::0;::::1;::::0;21104:66:::1;::::0;-1:-1:-1;;;21104:66:0;;-1:-1:-1;;;;;21104:26:0;;::::1;::::0;::::1;::::0;:66:::1;::::0;21131:13;::::1;::::0;21104:66:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;21312:13:0::1;::::0;21409:10;;21438:23:::1;::::0;::::1;::::0;21480:19:::1;::::0;;::::1;::::0;21518:17:::1;::::0;::::1;::::0;21582:13:::1;::::0;::::1;::::0;21293:317;;-1:-1:-1;;;21293:317:0;;21271:18:::1;::::0;-1:-1:-1;;;;;21312:13:0::1;::::0;21293:63:::1;::::0;21365:9:::1;::::0;21293:317:::1;::::0;21409:10;;21438:23;;21554:9;;21582:13;21293:317:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21268:342:::0;-1:-1:-1;;21647:4:0::1;-1:-1:-1::0;;;;;21626:26:0;::::1;::::0;;-1:-1:-1;21623:359:0::1;;21770:14;::::0;21794:10;;21806:4:::1;::::0;21752:59:::1;::::0;-1:-1:-1;;;21752:59:0;;-1:-1:-1;;;;;8241:15:1;;;21752:59:0::1;::::0;::::1;8223:34:1::0;21806:4:0;;::::1;8273:18:1::0;;;8266:43;21737:12:0::1;::::0;21770:14;;;::::1;::::0;21752:41:::1;::::0;8158:18:1;;21752:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21929:7;::::0;::::1;::::0;21907:42:::1;::::0;-1:-1:-1;;;21907:42:0;;21737:74;;-1:-1:-1;;;;;;21907:21:0;::::1;::::0;::::1;::::0;:42:::1;::::0;21938:10;;21907:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21899:71;;;::::0;-1:-1:-1;;;21899:71:0;;8778:2:1;21899:71:0::1;::::0;::::1;8760:21:1::0;8817:2;8797:18;;;8790:30;-1:-1:-1;;;8836:18:1;;;8829:46;8892:18;;21899:71:0::1;8576:340:1::0;21899:71:0::1;21654:328;21623:359;22004:10:::0;;21997:43:::1;::::0;-1:-1:-1;;;21997:43:0;;22034:4:::1;21997:43;::::0;::::1;3433:51:1::0;22043:1:0::1;::::0;-1:-1:-1;;;;;21997:28:0::1;::::0;::::1;::::0;3406:18:1;;21997:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;21994:192;;;22076:10:::0;;22097:7:::1;::::0;::::1;::::0;22106:43:::1;::::0;-1:-1:-1;;;22106:43:0;;22143:4:::1;22106:43;::::0;::::1;3433:51:1::0;-1:-1:-1;;;;;22069:27:0;;::::1;::::0;::::1;::::0;22097:7;22069:27;;22106:28:::1;::::0;3406:18:1;;22106:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22069:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22061:113;;;::::0;-1:-1:-1;;;22061:113:0;;9312:2:1;22061:113:0::1;::::0;::::1;9294:21:1::0;9351:2;9331:18;;;9324:30;-1:-1:-1;;;9370:18:1;;;9363:49;9429:18;;22061:113:0::1;9110:343:1::0;22061:113:0::1;22201:21;:25:::0;22198:218:::1;;22244:12;22270:4;:7;;;-1:-1:-1::0;;;;;22262:21:0::1;22309;22262:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22243:106;;;22374:7;22366:38;;;::::0;-1:-1:-1;;;22366:38:0;;9870:2:1;22366:38:0::1;::::0;::::1;9852:21:1::0;9909:2;9889:18;;;9882:30;-1:-1:-1;;;9928:18:1;;;9921:48;9986:18;;22366:38:0::1;9668:342:1::0;22366:38:0::1;22228:188;22198:218;20797:1626;;20699:1724:::0;:::o;24383:351::-;13267:13;:11;:13::i;:::-;24489:46:::1;::::0;-1:-1:-1;;;24489:46:0;;24529:4:::1;24489:46;::::0;::::1;3433:51:1::0;24538:1:0::1;::::0;-1:-1:-1;;;;;24489:31:0;::::1;::::0;::::1;::::0;3406:18:1;;24489:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;24467:121;;;::::0;-1:-1:-1;;;24467:121:0;;10217:2:1;24467:121:0::1;::::0;::::1;10199:21:1::0;10256:2;10236:18;;;10229:30;-1:-1:-1;;;10275:18:1;;;10268:51;10336:18;;24467:121:0::1;10015:345:1::0;24467:121:0::1;24669:46;::::0;-1:-1:-1;;;24669:46:0;;24709:4:::1;24669:46;::::0;::::1;3433:51:1::0;-1:-1:-1;;;;;24599:30:0;::::1;::::0;::::1;::::0;24644:10:::1;::::0;24599:30;;24669:31:::1;::::0;3406:18:1;;24669:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24599:127;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24383:351:::0;:::o;24085:290::-;13267:13;:11;:13::i;:::-;24178:1:::1;24154:21;:25;24146:56;;;::::0;-1:-1:-1;;;24146:56:0;;10567:2:1;24146:56:0::1;::::0;::::1;10549:21:1::0;10606:2;10586:18;;;10579:30;-1:-1:-1;;;10625:18:1;;;10618:48;10683:18;;24146:56:0::1;10365:342:1::0;24146:56:0::1;24232:82;::::0;24214:12:::1;::::0;24240:10:::1;::::0;24278:21:::1;::::0;24214:12;24232:82;24214:12;24232:82;24278:21;24240:10;24232:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24213:101;;;24333:7;24325:42;;;::::0;-1:-1:-1;;;24325:42:0;;10914:2:1;24325:42:0::1;::::0;::::1;10896:21:1::0;10953:2;10933:18;;;10926:30;-1:-1:-1;;;10972:18:1;;;10965:52;11034:18;;24325:42:0::1;10712:346:1::0;24325:42:0::1;24135:240;24085:290::o:0;17263:1936::-;15808:8;;-1:-1:-1;;;15808:8:0;;;;:17;15800:43;;;;-1:-1:-1;;;15800:43:0;;;;;;;:::i;:::-;17391:11;;-1:-1:-1;;;;;17378:25:0::1;17358:17;17378:25:::0;;;:12:::1;:25;::::0;;;;;::::1;;::::0;:54:::1;;-1:-1:-1::0;17420:11:0::1;::::0;;::::1;::::0;-1:-1:-1;;;;;17407:25:0::1;;::::0;;;:12:::1;:25:::0;;;;;;;::::1;;17378:54;:80;;17451:4;:7;;;17378:80;;;17443:4;17378:80;17537:14;::::0;17561:11;;17574::::1;::::0;::::1;::::0;17519:67:::1;::::0;-1:-1:-1;;;17519:67:0;;-1:-1:-1;;;;;8241:15:1;;;17519:67:0::1;::::0;::::1;8223:34:1::0;8293:15;;;8273:18;;;8266:43;17358:100:0;;-1:-1:-1;17504:12:0::1;::::0;17537:14;::::1;::::0;17519:41:::1;::::0;8158:18:1;;17519:67:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17654:11:::0;;17707:19:::1;::::0;;::::1;::::0;17647:80;;-1:-1:-1;;;17647:80:0;;17504:82;;-1:-1:-1;;;;;;17647:32:0;;::::1;::::0;::::1;::::0;:80:::1;::::0;17680:10:::1;::::0;17700:4:::1;::::0;17647:80:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17639:117;;;::::0;-1:-1:-1;;;17639:117:0;;11265:2:1;17639:117:0::1;::::0;::::1;11247:21:1::0;11304:2;11284:18;;;11277:30;11343:26;11323:18;;;11316:54;11387:18;;17639:117:0::1;11063:348:1::0;17639:117:0::1;17782:11;::::0;::::1;::::0;17835:19:::1;::::0;::::1;::::0;17775:80:::1;::::0;-1:-1:-1;;;17775:80:0;;-1:-1:-1;;;;;17775:32:0;;::::1;::::0;::::1;::::0;:80:::1;::::0;17808:10:::1;::::0;17828:4:::1;::::0;17775:80:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17767:117;;;::::0;-1:-1:-1;;;17767:117:0;;11618:2:1;17767:117:0::1;::::0;::::1;11600:21:1::0;11657:2;11637:18;;;11630:30;11696:26;11676:18;;;11669:54;11740:18;;17767:117:0::1;11416:348:1::0;17767:117:0::1;17948:11:::0;;17969:13:::1;::::0;17984:19:::1;::::0;;::::1;::::0;17941:63;;-1:-1:-1;;;17941:63:0;;-1:-1:-1;;;;;17941:27:0;;::::1;::::0;::::1;::::0;:63:::1;::::0;17969:13;::::1;::::0;17941:63:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;18022:11:0::1;::::0;::::1;::::0;18043:13:::1;::::0;18058:19:::1;::::0;::::1;::::0;18015:63:::1;::::0;-1:-1:-1;;;18015:63:0;;-1:-1:-1;;;;;18015:27:0;;::::1;::::0;::::1;::::0;:63:::1;::::0;18043:13;::::1;::::0;18015:63:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;18229:13:0::1;::::0;18289:11;;18319::::1;::::0;::::1;::::0;18349:19:::1;::::0;;::::1;::::0;18387::::1;::::0;::::1;::::0;18425:15:::1;::::0;::::1;::::0;18459::::1;::::0;::::1;::::0;18521:13:::1;::::0;::::1;::::0;18210:339;;-1:-1:-1;;;18210:339:0;;-1:-1:-1;;;;;12168:15:1;;;18210:339:0::1;::::0;::::1;12150:34:1::0;12220:15;;;12200:18;;;12193:43;12252:18;;;12245:34;;;;12295:18;;;12288:34;;;;12338:19;;;12331:35;12382:19;;;12375:35;12447:15;;;12426:19;;;12419:44;12479:19;;;12472:35;18188:18:0::1;::::0;18229:13;;;::::1;::::0;18210:60:::1;::::0;12084:19:1;;18210:339:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18184:365:::0;-1:-1:-1;;18596:4:0::1;-1:-1:-1::0;;;;;18575:26:0;::::1;::::0;;-1:-1:-1;18572:200:0::1;;18719:7;::::0;::::1;::::0;18697:42:::1;::::0;-1:-1:-1;;;18697:42:0;;-1:-1:-1;;;;;18697:21:0;::::1;::::0;::::1;::::0;:42:::1;::::0;18719:7;18728:10;;18697:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18689:71;;;::::0;-1:-1:-1;;;18689:71:0;;8778:2:1;18689:71:0::1;::::0;::::1;8760:21:1::0;8817:2;8797:18;;;8790:30;-1:-1:-1;;;8836:18:1;;;8829:46;8892:18;;18689:71:0::1;8576:340:1::0;18689:71:0::1;18794:11:::0;;18787:44:::1;::::0;-1:-1:-1;;;18787:44:0;;18825:4:::1;18787:44;::::0;::::1;3433:51:1::0;18834:1:0::1;::::0;-1:-1:-1;;;;;18787:29:0::1;::::0;::::1;::::0;3406:18:1;;18787:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;18784:198;;;18867:11:::0;;18889:7:::1;::::0;::::1;::::0;18898:44:::1;::::0;-1:-1:-1;;;18898:44:0;;18936:4:::1;18898:44;::::0;::::1;3433:51:1::0;-1:-1:-1;;;;;18860:28:0;;::::1;::::0;::::1;::::0;18889:7;18860:28;;18898:29:::1;::::0;3406:18:1;;18898:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18860:83;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18852:118;;;::::0;-1:-1:-1;;;18852:118:0;;12720:2:1;18852:118:0::1;::::0;::::1;12702:21:1::0;12759:2;12739:18;;;12732:30;-1:-1:-1;;;12778:18:1;;;12771:52;12840:18;;18852:118:0::1;12518:346:1::0;18852:118:0::1;19004:11;::::0;::::1;::::0;18997:44:::1;::::0;-1:-1:-1;;;18997:44:0;;19035:4:::1;18997:44;::::0;::::1;3433:51:1::0;19044:1:0::1;::::0;-1:-1:-1;;;;;18997:29:0::1;::::0;::::1;::::0;3406:18:1;;18997:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;18994:198;;;19077:11;::::0;::::1;::::0;19099:7:::1;::::0;::::1;::::0;19108:44:::1;::::0;-1:-1:-1;;;19108:44:0;;19146:4:::1;19108:44;::::0;::::1;3433:51:1::0;-1:-1:-1;;;;;19070:28:0;;::::1;::::0;::::1;::::0;19099:7;19070:28;;19108:29:::1;::::0;3406:18:1;;19108:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19070:83;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19062:118;;;::::0;-1:-1:-1;;;19062:118:0;;13071:2:1;19062:118:0::1;::::0;::::1;13053:21:1::0;13110:2;13090:18;;;13083:30;-1:-1:-1;;;13129:18:1;;;13122:52;13191:18;;19062:118:0::1;12869:346:1::0;16249:91:0;13267:13;:11;:13::i;:::-;16314:8:::1;:18:::0;;;::::1;;-1:-1:-1::0;;;16314:18:0::1;-1:-1:-1::0;;;;16314:18:0;;::::1;::::0;;;::::1;::::0;;16249:91::o;15871:235::-;13267:13;:11;:13::i;:::-;15945::::1;:24:::0;;-1:-1:-1;;;;;;15945:24:0::1;-1:-1:-1::0;;;;;15945:24:0;::::1;::::0;;::::1;::::0;;;15997:43:::1;::::0;;-1:-1:-1;;;15997:43:0;;;;:41:::1;::::0;:43:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;15945:24;15997:43:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15980:14;:60:::0;;-1:-1:-1;;;;;;15980:60:0::1;-1:-1:-1::0;;;;;15980:60:0;;::::1;;::::0;;-1:-1:-1;16077:13:0;16058:40:::1;::::0;;-1:-1:-1;;;16058:40:0;;;;16077:13;;;::::1;::::0;16058:38:::1;::::0;:40:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;16077:13;16058:40:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16051:4;:47:::0;;-1:-1:-1;;;;;;16051:47:0::1;-1:-1:-1::0;;;;;16051:47:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;15871:235:0:o;16114:127::-;13267:13;:11;:13::i;:::-;-1:-1:-1;;;;;16201:22:0;;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:32;;-1:-1:-1;;16201:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16114:127::o;14029:103::-;13267:13;:11;:13::i;:::-;14094:30:::1;14121:1;14094:18;:30::i;:::-;14029:103::o:0;19207:1484::-;15808:8;;-1:-1:-1;;;15808:8:0;;;;:17;15800:43;;;;-1:-1:-1;;;15800:43:0;;;;;;;:::i;:::-;19341:11;;-1:-1:-1;;;;;19328:25:0::1;19308:17;19328:25:::0;;;:12:::1;:25;::::0;;;;;::::1;;::::0;:54:::1;;-1:-1:-1::0;19370:11:0::1;::::0;;::::1;::::0;-1:-1:-1;;;;;19357:25:0::1;;::::0;;;:12:::1;:25:::0;;;;;;;::::1;;19328:54;:80;;19401:4;:7;;;19328:80;;;19393:4;19328:80;19487:14;::::0;19511:11;;19524::::1;::::0;::::1;::::0;19469:67:::1;::::0;-1:-1:-1;;;19469:67:0;;-1:-1:-1;;;;;8241:15:1;;;19469:67:0::1;::::0;::::1;8223:34:1::0;8293:15;;;8273:18;;;8266:43;19308:100:0;;-1:-1:-1;19454:12:0::1;::::0;19487:14;::::1;::::0;19469:41:::1;::::0;8158:18:1;;19469:67:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19655:14;::::0;;::::1;::::0;19602:68;;-1:-1:-1;;;19602:68:0;;19454:82;;-1:-1:-1;;;;;;19602:25:0;::::1;::::0;::::1;::::0;:68:::1;::::0;19628:10:::1;::::0;19648:4:::1;::::0;19602:68:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19594:113;;;::::0;-1:-1:-1;;;19594:113:0;;13422:2:1;19594:113:0::1;::::0;::::1;13404:21:1::0;;;13441:18;;;13434:30;13500:34;13480:18;;;13473:62;13552:18;;19594:113:0::1;13220:356:1::0;19594:113:0::1;19788:13;::::0;19803:14:::1;::::0;;::::1;::::0;19767:51;;-1:-1:-1;;;19767:51:0;;-1:-1:-1;;;;;19767:20:0;;::::1;::::0;::::1;::::0;:51:::1;::::0;19788:13;;;::::1;::::0;19767:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;19972:13:0::1;::::0;20035:11;;20065::::1;::::0;::::1;::::0;20095:14:::1;::::0;;::::1;::::0;20128:15:::1;::::0;::::1;::::0;20162::::1;::::0;::::1;::::0;20224:13:::1;::::0;::::1;::::0;19953:299;;-1:-1:-1;;;19953:299:0;;-1:-1:-1;;;;;13952:15:1;;;19953:299:0::1;::::0;::::1;13934:34:1::0;14004:15;;;13984:18;;;13977:43;14036:18;;;14029:34;;;;14079:18;;;14072:34;14122:19;;;14115:35;14187:15;;;14166:19;;;14159:44;14219:19;;;14212:35;19917:15:0::1;::::0;;;19972:13:::1;::::0;19953:63:::1;::::0;13868:19:1;;19953:299:0::1;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19916:336:::0;;-1:-1:-1;19916:336:0;-1:-1:-1;20299:4:0::1;-1:-1:-1::0;;;;;20278:26:0;::::1;::::0;20275:409:::1;;20417:4;-1:-1:-1::0;;;;;20402:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20395:46:0::1;;20442:4;:7;;;20451;20395:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20387:101;;;::::0;-1:-1:-1;;;20387:101:0;;14710:2:1;20387:101:0::1;::::0;::::1;14692:21:1::0;14749:2;14729:18;;;14722:30;14788:26;14768:18;;;14761:54;14832:18;;20387:101:0::1;14508:348:1::0;20387:101:0::1;20601:4;-1:-1:-1::0;;;;;20586:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20579:46:0::1;;20626:4;:7;;;20635;20579:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20571:101;;;::::0;-1:-1:-1;;;20571:101:0;;15063:2:1;20571:101:0::1;::::0;::::1;15045:21:1::0;15102:2;15082:18;;;15075:30;15141:26;15121:18;;;15114:54;15185:18;;20571:101:0::1;14861:348:1::0;20571:101:0::1;19297:1394;;;;19207:1484:::0;:::o;22431:1646::-;15808:8;;-1:-1:-1;;;15808:8:0;;;;:17;15800:43;;;;-1:-1:-1;;;15800:43:0;;;;;;;:::i;:::-;22571:10;;-1:-1:-1;;;;;22558:24:0::1;22538:17;22558:24:::0;;;:12:::1;:24;::::0;;;;;::::1;;:50;;22601:4;:7;;;22558:50;;;22593:4;22558:50;22687:14;::::0;22711:10;;22723:4:::1;::::0;22669:59:::1;::::0;-1:-1:-1;;;22669:59:0;;-1:-1:-1;;;;;8241:15:1;;;22669:59:0::1;::::0;::::1;8223:34:1::0;22723:4:0;;::::1;8273:18:1::0;;;8266:43;22538:70:0;;-1:-1:-1;22654:12:0::1;::::0;22687:14;::::1;::::0;22669:41:::1;::::0;8158:18:1;;22669:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22847:14;::::0;::::1;::::0;22794:68:::1;::::0;-1:-1:-1;;;22794:68:0;;22654:74;;-1:-1:-1;;;;;;22794:25:0;::::1;::::0;::::1;::::0;:68:::1;::::0;22820:10:::1;::::0;22840:4:::1;::::0;22794:68:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22786:108;;;::::0;-1:-1:-1;;;22786:108:0;;15416:2:1;22786:108:0::1;::::0;::::1;15398:21:1::0;15455:2;15435:18;;;15428:30;15494:29;15474:18;;;15467:57;15541:18;;22786:108:0::1;15214:351:1::0;22786:108:0::1;22975:13;::::0;22990:14:::1;::::0;::::1;::::0;22954:51:::1;::::0;-1:-1:-1;;;22954:51:0;;-1:-1:-1;;;;;22954:20:0;;::::1;::::0;::::1;::::0;:51:::1;::::0;22975:13;;;::::1;::::0;22954:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23159:13:0::1;::::0;23225:10;;23254:14:::1;::::0;::::1;::::0;23287:19:::1;::::0;;::::1;::::0;23325:17:::1;::::0;::::1;::::0;23389:13:::1;::::0;::::1;::::0;23140:277;;-1:-1:-1;;;23140:277:0;;23104:16:::1;::::0;;;-1:-1:-1;;;;;23159:13:0;;::::1;::::0;23140:66:::1;::::0;:277:::1;::::0;23225:10;;23254:14;;23361:9;;23389:13;23140:277:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23103:314:::0;;-1:-1:-1;23103:314:0;-1:-1:-1;23464:4:0::1;-1:-1:-1::0;;;;;23443:26:0;::::1;::::0;23440:630:::1;;23486:15;23519:4;-1:-1:-1::0;;;;;23504:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23486:47;;23548:15;23581:4;-1:-1:-1::0;;;;;23566:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23638:4;::::0;23548:47;;-1:-1:-1;23610:14:0::1;::::0;-1:-1:-1;;;;;23627:15:0;;::::1;23638:4:::0;::::1;23627:15;:35;;23655:7;23627:35;;;23645:7;23627:35;23776:7;::::0;::::1;::::0;23752:45:::1;::::0;-1:-1:-1;;;23752:45:0;;23610:52;;-1:-1:-1;;;;;;23752:23:0;::::1;::::0;::::1;::::0;:45:::1;::::0;23785:11;;23752:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23744:80;;;::::0;-1:-1:-1;;;23744:80:0;;15772:2:1;23744:80:0::1;::::0;::::1;15754:21:1::0;15811:2;15791:18;;;15784:30;-1:-1:-1;;;15830:18:1;;;15823:52;15892:18;;23744:80:0::1;15570:346:1::0;23744:80:0::1;23901:12;23927:4;:7;;;-1:-1:-1::0;;;;;23919:21:0::1;23966:9;23919:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23900:94;;;24019:7;24011:42;;;::::0;-1:-1:-1;;;24011:42:0;;10914:2:1;24011:42:0::1;::::0;::::1;10896:21:1::0;10953:2;10933:18;;;10926:30;-1:-1:-1;;;10972:18:1;;;10965:52;11034:18;;24011:42:0::1;10712:346:1::0;24011:42:0::1;23471:599;;;;22527:1550;;;;22431:1646:::0;:::o;14287:201::-;13267:13;:11;:13::i;:::-;-1:-1:-1;;;;;14376:22:0;::::1;14368:73;;;::::0;-1:-1:-1;;;14368:73:0;;16123:2:1;14368:73:0::1;::::0;::::1;16105:21:1::0;16162:2;16142:18;;;16135:30;16201:34;16181:18;;;16174:62;-1:-1:-1;;;16252:18:1;;;16245:36;16298:19;;14368:73:0::1;15921:402:1::0;14368:73:0::1;14452:28;14471:8;14452:18;:28::i;13546:132::-:0;13427:7;13454:6;-1:-1:-1;;;;;13454:6:0;12012:10;13610:23;13602:68;;;;-1:-1:-1;;;13602:68:0;;16530:2:1;13602:68:0;;;16512:21:1;;;16549:18;;;16542:30;16608:34;16588:18;;;16581:62;16660:18;;13602:68:0;16328:356:1;14648:191:0;14722:16;14741:6;;-1:-1:-1;;;;;14758:17:0;;;-1:-1:-1;;;;;;14758:17:0;;;;;;14791:40;;14741:6;;;;;;;14791:40;;14722:16;14791:40;14711:128;14648:191;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:134;218:20;;247:31;218:20;247:31;:::i;:::-;150:134;;;:::o;289:995::-;355:5;403:4;391:9;386:3;382:19;378:30;375:50;;;421:1;418;411:12;375:50;454:2;448:9;496:4;488:6;484:17;567:6;555:10;552:22;531:18;519:10;516:34;513:62;510:185;;;617:10;612:3;608:20;605:1;598:31;652:4;649:1;642:15;680:4;677:1;670:15;510:185;711:2;704:22;744:6;-1:-1:-1;744:6:1;774:23;;806:33;774:23;806:33;:::i;:::-;863:7;855:6;848:23;;932:2;921:9;917:18;904:32;899:2;891:6;887:15;880:57;998:2;987:9;983:18;970:32;965:2;957:6;953:15;946:57;1064:2;1053:9;1049:18;1036:32;1031:2;1023:6;1019:15;1012:57;1121:3;1110:9;1106:19;1093:33;1135;1160:7;1135:33;:::i;:::-;1196:3;1184:16;;1177:33;1272:3;1257:19;;;1244:33;1226:16;;1219:59;;;;289:995;;-1:-1:-1;289:995:1:o;1289:252::-;1385:6;1438:3;1426:9;1417:7;1413:23;1409:33;1406:53;;;1455:1;1452;1445:12;1406:53;1478:57;1527:7;1516:9;1478:57;:::i;:::-;1468:67;1289:252;-1:-1:-1;;;1289:252:1:o;1546:247::-;1605:6;1658:2;1646:9;1637:7;1633:23;1629:32;1626:52;;;1674:1;1671;1664:12;1626:52;1713:9;1700:23;1732:31;1757:5;1732:31;:::i;1798:1115::-;1891:6;1922:3;1966:2;1954:9;1945:7;1941:23;1937:32;1934:52;;;1982:1;1979;1972:12;1934:52;2015:2;2009:9;2045:15;;;;2090:18;2075:34;;2111:22;;;2072:62;2069:185;;;2176:10;2171:3;2167:20;2164:1;2157:31;2211:4;2208:1;2201:15;2239:4;2236:1;2229:15;2069:185;2274:10;2270:2;2263:22;2320:9;2307:23;2294:36;;2339:31;2364:5;2339:31;:::i;:::-;2394:5;2386:6;2379:21;2433:38;2467:2;2456:9;2452:18;2433:38;:::i;:::-;2428:2;2420:6;2416:15;2409:63;2533:2;2522:9;2518:18;2505:32;2500:2;2492:6;2488:15;2481:57;2599:2;2588:9;2584:18;2571:32;2566:2;2558:6;2554:15;2547:57;2666:3;2655:9;2651:19;2638:33;2632:3;2624:6;2620:16;2613:59;2734:3;2723:9;2719:19;2706:33;2700:3;2692:6;2688:16;2681:59;2774:39;2808:3;2797:9;2793:19;2774:39;:::i;:::-;2768:3;2760:6;2756:16;2749:65;2876:3;2865:9;2861:19;2848:33;2842:3;2834:6;2830:16;2823:59;2901:6;2891:16;;;;1798:1115;;;;:::o;2918:118::-;3004:5;2997:13;2990:21;2983:5;2980:32;2970:60;;3026:1;3023;3016:12;3041:241;3097:6;3150:2;3138:9;3129:7;3125:23;3121:32;3118:52;;;3166:1;3163;3156:12;3118:52;3205:9;3192:23;3224:28;3246:5;3224:28;:::i;3495:382::-;3560:6;3568;3621:2;3609:9;3600:7;3596:23;3592:32;3589:52;;;3637:1;3634;3627:12;3589:52;3676:9;3663:23;3695:31;3720:5;3695:31;:::i;:::-;3745:5;-1:-1:-1;3802:2:1;3787:18;;3774:32;3815:30;3774:32;3815:30;:::i;:::-;3864:7;3854:17;;;3495:382;;;;;:::o;3882:1164::-;3978:6;4031:3;4019:9;4010:7;4006:23;4002:33;3999:53;;;4048:1;4045;4038:12;3999:53;4081:2;4075:9;4123:3;4115:6;4111:16;4193:6;4181:10;4178:22;4157:18;4145:10;4142:34;4139:62;4136:185;;;4243:10;4238:3;4234:20;4231:1;4224:31;4278:4;4275:1;4268:15;4306:4;4303:1;4296:15;4136:185;4337:2;4330:22;4374:23;;4406:31;4374:23;4406:31;:::i;:::-;4446:21;;4519:2;4504:18;;4491:32;4532:33;4491:32;4532:33;:::i;:::-;4598:7;4593:2;4585:6;4581:15;4574:32;;4667:2;4656:9;4652:18;4639:32;4634:2;4626:6;4622:15;4615:57;4733:2;4722:9;4718:18;4705:32;4700:2;4692:6;4688:15;4681:57;4800:3;4789:9;4785:19;4772:33;4766:3;4758:6;4754:16;4747:59;4858:3;4847:9;4843:19;4830:33;4872;4897:7;4872:33;:::i;:::-;4933:3;4921:16;;4914:33;5009:3;4994:19;;;4981:33;4963:16;;;4956:59;;;;-1:-1:-1;4925:6:1;3882:1164;-1:-1:-1;3882:1164:1:o;5503:337::-;5705:2;5687:21;;;5744:2;5724:18;;;5717:30;-1:-1:-1;;;5778:2:1;5763:18;;5756:43;5831:2;5816:18;;5503:337::o;5845:375::-;-1:-1:-1;;;;;6103:15:1;;;6085:34;;6155:15;;;;6150:2;6135:18;;6128:43;6202:2;6187:18;;6180:34;;;;6035:2;6020:18;;5845:375::o;6225:245::-;6292:6;6345:2;6333:9;6324:7;6320:23;6316:32;6313:52;;;6361:1;6358;6351:12;6313:52;6393:9;6387:16;6412:28;6434:5;6412:28;:::i;6825:274::-;-1:-1:-1;;;;;7017:32:1;;;;6999:51;;7081:2;7066:18;;7059:34;6987:2;6972:18;;6825:274::o;7104:591::-;-1:-1:-1;;;;;7447:15:1;;;7429:34;;7494:2;7479:18;;7472:34;;;;7537:2;7522:18;;7515:34;;;;7580:2;7565:18;;7558:34;;;;7629:15;;;7623:3;7608:19;;7601:44;7409:3;7661:19;;7654:35;;;;7378:3;7363:19;;7104:591::o;7700:306::-;7788:6;7796;7804;7857:2;7845:9;7836:7;7832:23;7828:32;7825:52;;;7873:1;7870;7863:12;7825:52;7902:9;7896:16;7886:26;;7952:2;7941:9;7937:18;7931:25;7921:35;;7996:2;7985:9;7981:18;7975:25;7965:35;;7700:306;;;;;:::o;8320:251::-;8390:6;8443:2;8431:9;8422:7;8418:23;8414:32;8411:52;;;8459:1;8456;8449:12;8411:52;8491:9;8485:16;8510:31;8535:5;8510:31;:::i;8921:184::-;8991:6;9044:2;9032:9;9023:7;9019:23;9015:32;9012:52;;;9060:1;9057;9050:12;9012:52;-1:-1:-1;9083:16:1;;8921:184;-1:-1:-1;8921:184:1:o;14258:245::-;14337:6;14345;14398:2;14386:9;14377:7;14373:23;14369:32;14366:52;;;14414:1;14411;14404:12;14366:52;-1:-1:-1;;14437:16:1;;14493:2;14478:18;;;14472:25;14437:16;;14472:25;;-1:-1:-1;14258:245:1:o
Swarm Source
ipfs://25eba336ecdeb5cdc7efb96c49f1da86c648198657cdbafa8a5c9858573e7091
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.