More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 53 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Change Currency ... | 62583153 | 171 days ago | IN | 0 POL | 0.0026869 | ||||
Change Currency ... | 62583146 | 171 days ago | IN | 0 POL | 0.0026869 | ||||
Set Time To Elap... | 62583144 | 171 days ago | IN | 0 POL | 0.0028936 | ||||
Set Time To Elap... | 62583074 | 171 days ago | IN | 0 POL | 0.0028912 | ||||
Change Currency ... | 62582969 | 171 days ago | IN | 0 POL | 0.0026869 | ||||
Change Currency ... | 62553442 | 172 days ago | IN | 0 POL | 0.0029669 | ||||
Change Currency ... | 62553416 | 172 days ago | IN | 0 POL | 0.0029669 | ||||
Add Eoa Whitelis... | 60932529 | 212 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60932524 | 212 days ago | IN | 0 POL | 0.0046475 | ||||
Add Eoa Whitelis... | 60909553 | 213 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60909543 | 213 days ago | IN | 0 POL | 0.0046475 | ||||
Delete Get Eoa W... | 60868034 | 214 days ago | IN | 0 POL | 0.002653 | ||||
Delete Get Eoa W... | 60868019 | 214 days ago | IN | 0 POL | 0.002453 | ||||
Add Eoa Whitelis... | 60867341 | 214 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60867328 | 214 days ago | IN | 0 POL | 0.0046475 | ||||
Set Time To Elap... | 60499453 | 223 days ago | IN | 0 POL | 0.0028936 | ||||
Add Eoa Whitelis... | 60260586 | 229 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60260169 | 229 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60260102 | 229 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60259927 | 229 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60259868 | 229 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60069226 | 234 days ago | IN | 0 POL | 0.0026575 | ||||
Add Eoa Whitelis... | 60069208 | 234 days ago | IN | 0 POL | 0.00132875 | ||||
Add Eoa Whitelis... | 60068540 | 234 days ago | IN | 0 POL | 0.00132875 | ||||
Add Eoa Whitelis... | 60064568 | 234 days ago | IN | 0 POL | 0.00132875 |
Latest 5 internal transactions
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
59823317 | 240 days ago | Contract Creation | 0 POL | |||
59823249 | 240 days ago | Contract Creation | 0 POL | |||
59822045 | 240 days ago | Contract Creation | 0 POL | |||
59793995 | 241 days ago | Contract Creation | 0 POL | |||
59793547 | 241 days ago | Contract Creation | 0 POL |
Loading...
Loading
Contract Name:
SwapFactory
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: unlicensed // (c) Copyright 2024 Kolibri GmbH, all rights reserved pragma solidity ^0.8.9; import "@openzeppelin/contracts/access/Ownable.sol"; import '../interfaces/one-to-one/ISwapFactory.sol'; import './SwapPair.sol'; contract SwapFactory is ISwapFactory, Ownable { mapping(address => mapping(address => address)) public getPair; address[] public allPairs; mapping(address => bool) public feeableTokens; mapping(address => uint256) private currencyConversions; mapping(address => bool) private eoaAddresses; mapping(address => mapping(address => bool)) private oncesList; mapping(address => mapping(address => uint)) private timesList; uint256 private feeBase; uint private timeToElapse; constructor(address _uhuAddress, address _alphaAddress) { feeableTokens[_uhuAddress] = true; feeableTokens[_alphaAddress] = true; feeBase = 4; } function allPairsLength() external view returns (uint) { return allPairs.length; } function createPair(address tokenA, address tokenB) external returns (address pair) { require(tokenA != tokenB, 'Swap: IDENTICAL_ADDRESSES'); (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA); require(token0 != address(0), 'Swap: ZERO_ADDRESS'); require(getPair[token0][token1] == address(0), 'Swap: PAIR_EXISTS'); // single check is sufficient bytes memory bytecode = type(SwapPair).creationCode; bytes32 salt = keccak256(abi.encodePacked(token0, token1)); assembly { pair := create2(0, add(bytecode, 32), mload(bytecode), salt) } ISwapPair(pair).initialize(token0, token1); getPair[token0][token1] = pair; getPair[token1][token0] = pair; // populate mapping in the reverse direction allPairs.push(pair); emit PairCreated(token0, token1, pair, allPairs.length); } function changeFeeBase(uint256 fee) external onlyOwner { feeBase = fee; } function getFeeBase() external view returns (uint256) { return feeBase; } function changeCurrencyConversion(address currency, uint256 newRate) external onlyOwner { currencyConversions[currency] = newRate; } function getCurrencyConversion(address currency) external view returns (uint256) { return currencyConversions[currency]; } function getEoaWhitelist(address eoaAddress) external view returns (bool) { return eoaAddresses[eoaAddress]; } function addEoaWhitelist(address eoaAddress) external onlyOwner { eoaAddresses[eoaAddress] = true; } function deleteGetEoaWhitelist(address eoaAddress) external onlyOwner { eoaAddresses[eoaAddress] = false; } function getOnce(address pair, address onces) external view returns (bool) { return oncesList[pair][onces]; } function addOnce(address pair, address onces) external { require(eoaAddresses[msg.sender], 'Factory: Sender not whitelisted'); oncesList[pair][onces] = true; } function getTime(address pair, address times) external view returns (uint) { return timesList[pair][times]; } function addTime(address pair, address times) external { require(eoaAddresses[msg.sender], 'Factory: Sender not whitelisted'); timesList[pair][times] = block.number; } function getTimeToElapse() external view returns (uint) { return timeToElapse; } function setTimeToElapse(uint timeNumber) external onlyOwner { timeToElapse = timeNumber; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @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. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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); } }
// SPDX-License-Identifier: MIT // 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; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; interface IERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view 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); }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; interface ISwapCallee { function swapCall(address sender, uint amount0, uint amount1, bytes calldata data) external; }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; interface ISwapERC20 { 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, address factory) external returns (bool); function transferFrom(address from, address to, uint value, address factory) 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); }
// SPDX-License-Identifier: unlicensed // (c) Copyright 2024 Kolibri GmbH, all rights reserved pragma solidity ^0.8.9; interface ISwapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function getPair(address tokenA, address tokenB) external view returns (address pair); function feeableTokens(address token) external view returns (bool isFeeable); 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 changeFeeBase(uint256 fee) external; function getFeeBase() external view returns (uint256); function changeCurrencyConversion(address currency, uint256 newRate) external; function getCurrencyConversion(address currency) external view returns (uint256); function getEoaWhitelist(address eoaAddress) external view returns (bool); function addEoaWhitelist(address eoaAddress) external; function deleteGetEoaWhitelist(address eoaAddress) external; function getOnce(address pair, address onces) external view returns (bool); function addOnce(address pair, address onces) external; function getTime(address pair, address times) external view returns (uint); function addTime(address pair, address times) external; function getTimeToElapse() external view returns (uint); function setTimeToElapse(uint timeNumber) external; }
// SPDX-License-Identifier: unlicensed // (c) Copyright 2024 Kolibri GmbH, all rights reserved pragma solidity ^0.8.9; import '../ISwapERC20.sol'; interface ISwapPair is ISwapERC20 { 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 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 initialize(address, address) external; }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; // a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math) library SafeMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x, 'ds-math-add-overflow'); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, 'ds-math-sub-underflow'); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow'); } }
// SPDX-License-Identifier: unlicensed // (c) Copyright 2024 Kolibri GmbH, all rights reserved pragma solidity ^0.8.9; import '../interfaces/one-to-one/ISwapPair.sol'; import '../SwapERC20.sol'; import '../interfaces/IERC20.sol'; import '../interfaces/ISwapCallee.sol'; import '../interfaces/one-to-one/ISwapFactory.sol'; contract SwapPair is ISwapPair, SwapERC20 { using SafeMath for uint; uint public constant MINIMUM_LIQUIDITY = 10 ** 3; bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)'))); address public factory; address public token0; address public token1; uint112 private reserve0; // uses single storage slot, accessible via getReserves uint112 private reserve1; // uses single storage slot, accessible via getReserves uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves bool private isFeeable; uint private unlocked = 1; modifier lock() { require(unlocked == 1, 'Swap: LOCKED'); unlocked = 0; _; unlocked = 1; } modifier onlyNormal() { if (ISwapFactory(factory).getEoaWhitelist(msg.sender)) { } else { require(tx.origin == msg.sender, 'Address forbidden'); } _; } function getReserves() public view onlyNormal returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) { _reserve0 = reserve0; _reserve1 = reserve1; _blockTimestampLast = blockTimestampLast; } function _safeTransfer(address token, address to, uint value) private { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'Swap: TRANSFER_FAILED'); } constructor() { factory = msg.sender; } // called once by the factory at time of deployment function initialize(address _token0, address _token1) external onlyNormal { require(msg.sender == factory, 'Swap: FORBIDDEN'); // sufficient check token0 = _token0; token1 = _token1; } // update reserves and, on the first call per block, price accumulators function _update(uint balance0, uint balance1) private { require(balance0 <= type(uint112).max && balance1 <= type(uint112).max, 'Swap: OVERFLOW'); uint32 blockTimestamp = uint32(block.timestamp % 2 ** 32); reserve0 = uint112(balance0); reserve1 = uint112(balance1); blockTimestampLast = blockTimestamp; emit Sync(reserve0, reserve1); } // this low-level function should be called from a contract which performs important safety checks function mint(address to) external lock onlyNormal returns (uint liquidity) { (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings uint balance0 = IERC20(token0).balanceOf(address(this)); uint balance1 = IERC20(token1).balanceOf(address(this)); uint amount0 = balance0.sub(_reserve0); uint amount1 = balance1.sub(_reserve1); uint _totalSupply = totalSupply; // gas savings if (_totalSupply == 0) { if (token0 == address(0x8D5482C83Bb5B49E2B4B97BcF264342eaC164c00)) { liquidity = amount0.sub(MINIMUM_LIQUIDITY); } else { liquidity = amount1.sub(MINIMUM_LIQUIDITY); } _mint(address(0), MINIMUM_LIQUIDITY, factory); // permanently lock the first MINIMUM_LIQUIDITY tokens } else { if (token0 == address(0x8D5482C83Bb5B49E2B4B97BcF264342eaC164c00)) { liquidity = amount0.mul(_totalSupply) / _reserve0; } else { liquidity = amount1.mul(_totalSupply) / _reserve1; } } require(liquidity > 0, 'Swap: INSUFFICIENT_LIQUIDITY_MINTED'); _mint(to, liquidity, factory); _update(balance0, balance1); emit Mint(msg.sender, amount0, amount1); } // this low-level function should be called from a contract which performs important safety checks function burn(address to) external lock onlyNormal returns (uint amount0, uint amount1) { address _token0 = token0; // gas savings address _token1 = token1; // gas savings uint balance0 = IERC20(_token0).balanceOf(address(this)); uint balance1 = IERC20(_token1).balanceOf(address(this)); uint liquidity = balanceOf[address(this)]; uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution require(amount1 > 0, 'Swap: INSUFFICIENT_LIQUIDITY_BURNED'); _burn(address(this), liquidity, factory); _safeTransfer(_token0, to, amount0); _safeTransfer(_token1, to, amount1); balance0 = IERC20(_token0).balanceOf(address(this)); balance1 = IERC20(_token1).balanceOf(address(this)); _update(balance0, balance1); emit Burn(msg.sender, amount0, amount1, to); } // this low-level function should be called from a contract which performs important safety checks function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock onlyNormal { require(amount0Out > 0 || amount1Out > 0, 'Swap: INSUFFICIENT_OUTPUT_AMOUNT'); (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings require(amount0Out < _reserve0 && amount1Out < _reserve1, 'Swap: INSUFFICIENT_LIQUIDITY'); uint balance0; uint balance1; { // scope for _token{0,1}, avoids stack too deep errors address _token0 = token0; address _token1 = token1; require(to != _token0 && to != _token1, 'Swap: INVALID_TO'); if (amount0Out > 0) { _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens } if (amount1Out > 0) { _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens } if (data.length > 0) ISwapCallee(to).swapCall(msg.sender, amount0Out, amount1Out, data); balance0 = IERC20(_token0).balanceOf(address(this)); balance1 = IERC20(_token1).balanceOf(address(this)); } uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0; uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0; require(amount0In > 0 || amount1In > 0, 'Swap: INSUFFICIENT_INPUT_AMOUNT'); _update(balance0, balance1); emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to); } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; import './interfaces/ISwapERC20.sol'; import './libraries/SafeMath.sol'; import './interfaces/one-to-one/ISwapFactory.sol'; contract SwapERC20 is ISwapERC20 { using SafeMath for uint; string public constant name = 'UHU Liquidity Token'; string public constant symbol = 'UHU-LQT'; uint8 public constant decimals = 18; uint public totalSupply; mapping(address => uint) public balanceOf; mapping(address => mapping(address => uint)) public allowance; bytes32 public DOMAIN_SEPARATOR; // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; mapping(address => uint) public nonces; modifier onlyNormalInternal(address factory) { if (ISwapFactory(factory).getEoaWhitelist(msg.sender)) { } else { require(tx.origin == msg.sender, 'Address forbidden'); } _; } constructor() { uint chainId; assembly { chainId := chainid() } DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes(name)), keccak256(bytes('1')), chainId, address(this) ) ); } function _mint(address to, uint value, address factory) internal onlyNormalInternal(factory) { totalSupply = totalSupply.add(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(address(0), to, value); } function _burn(address from, uint value, address factory) internal onlyNormalInternal(factory) { balanceOf[from] = balanceOf[from].sub(value); totalSupply = totalSupply.sub(value); emit Transfer(from, address(0), value); } function _approve(address owner, address spender, uint value, address factory) private onlyNormalInternal(factory) { allowance[owner][spender] = value; emit Approval(owner, spender, value); } function _transfer(address from, address to, uint value, address factory) private onlyNormalInternal(factory) { balanceOf[from] = balanceOf[from].sub(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(from, to, value); } function approve(address spender, uint value, address factory) external onlyNormalInternal(factory) returns (bool) { _approve(msg.sender, spender, value, factory); return true; } function transfer(address to, uint value, address factory) internal onlyNormalInternal(factory) returns (bool) { _transfer(msg.sender, to, value, factory); return true; } function transferFrom(address from, address to, uint value, address factory) external onlyNormalInternal(factory) returns (bool) { if (allowance[from][msg.sender] != type(uint).max) { allowance[from][msg.sender] = allowance[from][msg.sender].sub(value); } _transfer(from, to, value, factory); return true; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_uhuAddress","type":"address"},{"internalType":"address","name":"_alphaAddress","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"PairCreated","type":"event"},{"inputs":[{"internalType":"address","name":"eoaAddress","type":"address"}],"name":"addEoaWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"onces","type":"address"}],"name":"addOnce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"times","type":"address"}],"name":"addTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"currency","type":"address"},{"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"changeCurrencyConversion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"changeFeeBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"eoaAddress","type":"address"}],"name":"deleteGetEoaWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeableTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"currency","type":"address"}],"name":"getCurrencyConversion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"eoaAddress","type":"address"}],"name":"getEoaWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"onces","type":"address"}],"name":"getOnce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"times","type":"address"}],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeToElapse","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timeNumber","type":"uint256"}],"name":"setTimeToElapse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620058223803806200582283398181016040528101906200003791906200024d565b620000576200004b6200011760201b60201c565b6200011f60201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004600881905550505062000294565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200021582620001e8565b9050919050565b620002278162000208565b81146200023357600080fd5b50565b60008151905062000247816200021c565b92915050565b60008060408385031215620002675762000266620001e3565b5b6000620002778582860162000236565b92505060206200028a8582860162000236565b9150509250929050565b61557e80620002a46000396000f3fe60806040523480156200001157600080fd5b5060043610620001545760003560e01c8063715018a611620000c9578063d571d7e41162000087578063d571d7e414620003af578063dc93377714620003cf578063e6a4390514620003f1578063e96c58c91462000427578063ec39bc391462000447578063f2fde38b146200047d5762000154565b8063715018a6146200030b5780638da5cb5b14620003175780639d2183c31462000339578063c616b48d1462000359578063c9c6539614620003795762000154565b80633edafd5b11620001175780633edafd5b1462000227578063534c5037146200024757806357284a65146200027d578063574f2ba314620002b35780635df672e914620002d55762000154565b8063060ac20714620001595780630858e10f146200017957806313c4f95314620001995780631e3dd18b14620001cf5780632d6058e21462000205575b600080fd5b62000177600480360381019062000171919062001267565b6200049d565b005b62000197600480360381019062000191919062001267565b620004b1565b005b620001b76004803603810190620001b19190620012fe565b620004c5565b604051620001c6919062001356565b60405180910390f35b620001ed6004803603810190620001e7919062001267565b6200054c565b604051620001fc919062001384565b60405180910390f35b6200020f6200058c565b6040516200021e919062001356565b60405180910390f35b6200024560048036038101906200023f9190620012fe565b62000596565b005b6200026560048036038101906200025f9190620012fe565b620006aa565b604051620002749190620013be565b60405180910390f35b6200029b6004803603810190620002959190620013db565b6200073e565b604051620002aa919062001356565b60405180910390f35b620002bd62000787565b604051620002cc919062001356565b60405180910390f35b620002f36004803603810190620002ed9190620013db565b62000794565b604051620003029190620013be565b60405180910390f35b62000315620007ea565b005b6200032162000802565b60405162000330919062001384565b60405180910390f35b620003576004803603810190620003519190620013db565b6200082b565b005b6200037760048036038101906200037191906200140d565b62000890565b005b620003976004803603810190620003919190620012fe565b620008e2565b604051620003a6919062001384565b60405180910390f35b620003cd6004803603810190620003c79190620013db565b62000e44565b005b620003d962000ea9565b604051620003e8919062001356565b60405180910390f35b6200040f6004803603810190620004099190620012fe565b62000eb3565b6040516200041e919062001384565b60405180910390f35b6200044560048036038101906200043f9190620012fe565b62000ef5565b005b6200046560048036038101906200045f9190620013db565b6200101d565b604051620004749190620013be565b60405180910390f35b6200049b6004803603810190620004959190620013db565b6200103d565b005b620004a7620010c8565b8060098190555050565b620004bb620010c8565b8060088190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600281815481106200055d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000625576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200061c90620014b5565b60405180910390fd5b43600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600280549050905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b620007f4620010c8565b6200080060006200114d565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000835620010c8565b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6200089a620010c8565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000956576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200094d9062001527565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200099557838562000998565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a069062001599565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000b1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b14906200160b565b60405180910390fd5b60006040518060200162000b319062001219565b6020820181038252601f19601f8201166040525090506000838360405160200162000b5e9291906200167d565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b815260040162000bbf929190620016ad565b600060405180830381600087803b15801562000bda57600080fd5b505af115801562000bef573d6000803e3d6000fd5b5050505084600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e98760028054905060405162000e32929190620016da565b60405180910390a35050505092915050565b62000e4e620010c8565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600854905090565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000f84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f7b90620014b5565b60405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60036020528060005260406000206000915054906101000a900460ff1681565b62001047620010c8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620010ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010b1906200177d565b60405180910390fd5b620010c5816200114d565b50565b620010d262001211565b73ffffffffffffffffffffffffffffffffffffffff16620010f262000802565b73ffffffffffffffffffffffffffffffffffffffff16146200114b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200114290620017ef565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b613d37806200181283390190565b600080fd5b6000819050919050565b62001241816200122c565b81146200124d57600080fd5b50565b600081359050620012618162001236565b92915050565b60006020828403121562001280576200127f62001227565b5b6000620012908482850162001250565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012c68262001299565b9050919050565b620012d881620012b9565b8114620012e457600080fd5b50565b600081359050620012f881620012cd565b92915050565b6000806040838503121562001318576200131762001227565b5b60006200132885828601620012e7565b92505060206200133b85828601620012e7565b9150509250929050565b62001350816200122c565b82525050565b60006020820190506200136d600083018462001345565b92915050565b6200137e81620012b9565b82525050565b60006020820190506200139b600083018462001373565b92915050565b60008115159050919050565b620013b881620013a1565b82525050565b6000602082019050620013d56000830184620013ad565b92915050565b600060208284031215620013f457620013f362001227565b5b60006200140484828501620012e7565b91505092915050565b6000806040838503121562001427576200142662001227565b5b60006200143785828601620012e7565b92505060206200144a8582860162001250565b9150509250929050565b600082825260208201905092915050565b7f466163746f72793a2053656e646572206e6f742077686974656c697374656400600082015250565b60006200149d601f8362001454565b9150620014aa8262001465565b602082019050919050565b60006020820190508181036000830152620014d0816200148e565b9050919050565b7f537761703a204944454e544943414c5f41444452455353455300000000000000600082015250565b60006200150f60198362001454565b91506200151c82620014d7565b602082019050919050565b60006020820190508181036000830152620015428162001500565b9050919050565b7f537761703a205a45524f5f414444524553530000000000000000000000000000600082015250565b60006200158160128362001454565b91506200158e8262001549565b602082019050919050565b60006020820190508181036000830152620015b48162001572565b9050919050565b7f537761703a20504149525f455849535453000000000000000000000000000000600082015250565b6000620015f360118362001454565b91506200160082620015bb565b602082019050919050565b600060208201905081810360008301526200162681620015e4565b9050919050565b60008160601b9050919050565b600062001647826200162d565b9050919050565b60006200165b826200163a565b9050919050565b620016776200167182620012b9565b6200164e565b82525050565b60006200168b828562001662565b6014820191506200169d828462001662565b6014820191508190509392505050565b6000604082019050620016c4600083018562001373565b620016d3602083018462001373565b9392505050565b6000604082019050620016f1600083018562001373565b62001700602083018462001345565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200176560268362001454565b9150620017728262001707565b604082019050919050565b60006020820190508181036000830152620017988162001756565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620017d760208362001454565b9150620017e4826200179f565b602082019050919050565b600060208201905081810360008301526200180a81620017c8565b905091905056fe60806040526001600a553480156200001657600080fd5b5060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280601381526020017f554855204c697175696469747920546f6b656e00000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001620000cf959493929190620001ae565b604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200020b565b6000819050919050565b620001488162000133565b82525050565b6000819050919050565b62000163816200014e565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001968262000169565b9050919050565b620001a88162000189565b82525050565b600060a082019050620001c560008301886200013d565b620001d460208301876200013d565b620001e360408301866200013d565b620001f2606083018562000158565b6200020160808301846200019d565b9695505050505050565b613b1c806200021b6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80635fc9309c116100ad57806395d89b411161007157806395d89b411461035e578063ba9a7a561461037c578063c45a01551461039a578063d21220a7146103b8578063dd62ed3e146103d65761012c565b80635fc9309c1461026d5780636a6278421461029d57806370a08231146102cd5780637ecebe00146102fd57806389afcb441461032d5761012c565b806318160ddd116100f457806318160ddd146101d957806330adf81f146101f7578063313ce567146102155780633644e51514610233578063485cc955146102515761012c565b8063022c0d9f1461013157806306fdde031461014d5780630902f1ac1461016b5780630dfe16811461018b5780631271f09a146101a9575b600080fd5b61014b60048036038101906101469190612cdc565b610406565b005b610155610a7e565b6040516101629190612dfd565b60405180910390f35b610173610ab7565b60405161018293929190612e67565b60405180910390f35b610193610c38565b6040516101a09190612ead565b60405180910390f35b6101c360048036038101906101be9190612ec8565b610c5e565b6040516101d09190612f36565b60405180910390f35b6101e1610d7b565b6040516101ee9190612f60565b60405180910390f35b6101ff610d81565b60405161020c9190612f94565b60405180910390f35b61021d610da8565b60405161022a9190612fcb565b60405180910390f35b61023b610dad565b6040516102489190612f94565b60405180910390f35b61026b60048036038101906102669190612fe6565b610db3565b005b61028760048036038101906102829190613026565b610fed565b6040516102949190612f36565b60405180910390f35b6102b760048036038101906102b2919061308d565b6112be565b6040516102c49190612f60565b60405180910390f35b6102e760048036038101906102e2919061308d565b61187e565b6040516102f49190612f60565b60405180910390f35b6103176004803603810190610312919061308d565b611896565b6040516103249190612f60565b60405180910390f35b6103476004803603810190610342919061308d565b6118ae565b6040516103559291906130ba565b60405180910390f35b610366611e34565b6040516103739190612dfd565b60405180910390f35b610384611e6d565b6040516103919190612f60565b60405180910390f35b6103a2611e73565b6040516103af9190612ead565b60405180910390f35b6103c0611e99565b6040516103cd9190612ead565b60405180910390f35b6103f060048036038101906103eb9190612fe6565b611ebf565b6040516103fd9190612f60565b60405180910390f35b6001600a541461044b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104429061312f565b60405180910390fd5b6000600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016104ae9190612ead565b60206040518083038186803b1580156104c657600080fd5b505afa1580156104da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fe919061317b565b1561050857610577565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056d906131f4565b60405180910390fd5b5b60008511806105865750600084115b6105c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bc90613260565b60405180910390fd5b6000806105d0610ab7565b5091509150816dffffffffffffffffffffffffffff16871080156106035750806dffffffffffffffffffffffffffff1686105b610642576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610639906132cc565b60405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141580156106fb57508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073190613338565b60405180910390fd5b60008b111561074f5761074e828a8d611ee4565b5b60008a111561076457610763818a8c611ee4565b5b60008888905011156107e4578873ffffffffffffffffffffffffffffffffffffffff1663df9aee68338d8d8c8c6040518663ffffffff1660e01b81526004016107b19594939291906133a5565b600060405180830381600087803b1580156107cb57600080fd5b505af11580156107df573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161081d9190612ead565b60206040518083038186803b15801561083557600080fd5b505afa158015610849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086d9190613408565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108a89190612ead565b60206040518083038186803b1580156108c057600080fd5b505afa1580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f89190613408565b92505050600089856dffffffffffffffffffffffffffff1661091a9190613464565b831161092757600061094f565b89856dffffffffffffffffffffffffffff166109439190613464565b8361094e9190613464565b5b9050600089856dffffffffffffffffffffffffffff1661096f9190613464565b831161097c5760006109a4565b89856dffffffffffffffffffffffffffff166109989190613464565b836109a39190613464565b5b905060008211806109b55750600081115b6109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb906134e4565b60405180910390fd5b6109fe848461206e565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f604051610a619493929190613504565b60405180910390a35050505050506001600a819055505050505050565b6040518060400160405280601381526020017f554855204c697175696469747920546f6b656e0000000000000000000000000081525081565b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b8152600401610b179190612ead565b60206040518083038186803b158015610b2f57600080fd5b505afa158015610b43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b67919061317b565b15610b7157610be0565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd6906131f4565b60405180910390fd5b5b600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000818073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b8152600401610c9a9190612ead565b60206040518083038186803b158015610cb257600080fd5b505afa158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea919061317b565b15610cf457610d63565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d59906131f4565b60405180910390fd5b5b610d6f338686866121f3565b60019150509392505050565b60005481565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b8152600401610e0e9190612ead565b60206040518083038186803b158015610e2657600080fd5b505afa158015610e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5e919061317b565b15610e6857610ed7565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecd906131f4565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90613595565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000818073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016110299190612ead565b60206040518083038186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611079919061317b565b15611083576110f2565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e8906131f4565b60405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112a55761122484600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e390919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112b18686868661243c565b6001915050949350505050565b60006001600a5414611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc9061312f565b60405180910390fd5b6000600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016113689190612ead565b60206040518083038186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b8919061317b565b156113c257611431565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611427906131f4565b60405180910390fd5b5b60008061143c610ab7565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161149e9190612ead565b60206040518083038186803b1580156114b657600080fd5b505afa1580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee9190613408565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161154d9190612ead565b60206040518083038186803b15801561156557600080fd5b505afa158015611579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159d9190613408565b905060006115c4856dffffffffffffffffffffffffffff16846123e390919063ffffffff16565b905060006115eb856dffffffffffffffffffffffffffff16846123e390919063ffffffff16565b905060008054905060008114156116cf57738d5482c83bb5b49e2b4b97bcf264342eac164c0073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116825761167b6103e8846123e390919063ffffffff16565b975061169a565b6116976103e8836123e390919063ffffffff16565b97505b6116ca60006103e8600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126d5565b6117a0565b738d5482c83bb5b49e2b4b97bcf264342eac164c0073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561176e57866dffffffffffffffffffffffffffff1661175d82856128f490919063ffffffff16565b61176791906135e4565b975061179f565b856dffffffffffffffffffffffffffff1661179282846128f490919063ffffffff16565b61179c91906135e4565b97505b5b600088116117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613687565b60405180910390fd5b6118108989600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126d5565b61181a858561206e565b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f84846040516118629291906130ba565b60405180910390a2505050505050506001600a81905550919050565b60016020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b6000806001600a54146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed9061312f565b60405180910390fd5b6000600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016119599190612ead565b60206040518083038186803b15801561197157600080fd5b505afa158015611985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a9919061317b565b156119b357611a22565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a18906131f4565b60405180910390fd5b5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611aab9190612ead565b60206040518083038186803b158015611ac357600080fd5b505afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190613408565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b389190612ead565b60206040518083038186803b158015611b5057600080fd5b505afa158015611b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b889190613408565b90506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008054905080611be885846128f490919063ffffffff16565b611bf291906135e4565b975080611c0884846128f490919063ffffffff16565b611c1291906135e4565b965060008711611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e90613719565b60405180910390fd5b611c843083600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612961565b611c8f868a8a611ee4565b611c9a858a89611ee4565b8573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611cd39190612ead565b60206040518083038186803b158015611ceb57600080fd5b505afa158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190613408565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611d5e9190612ead565b60206040518083038186803b158015611d7657600080fd5b505afa158015611d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dae9190613408565b9250611dba848461206e565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968a8a604051611e199291906130ba565b60405180910390a35050505050506001600a81905550915091565b6040518060400160405280600781526020017f5548552d4c51540000000000000000000000000000000000000000000000000081525081565b6103e881565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052816000526040600020602052806000526040600020600091509150505481565b6000808473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401611f4e929190613739565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fb891906137a9565b6000604051808303816000865af19150503d8060008114611ff5576040519150601f19603f3d011682016040523d82523d6000602084013e611ffa565b606091505b50915091508180156120285750600081511480612027575080806020019051810190612026919061317b565b5b5b612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e9061380c565b60405180910390fd5b5050505050565b6dffffffffffffffffffffffffffff8016821115801561209e57506dffffffffffffffffffffffffffff80168111155b6120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613878565b60405180910390fd5b6000640100000000426120f09190613898565b905082600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550806008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff166040516121e69291906138c9565b60405180910390a1505050565b808073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b815260040161222d9190612ead565b60206040518083038186803b15801561224557600080fd5b505afa158015612259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227d919061317b565b15612287576122f6565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec906131f4565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516123d49190612f60565b60405180910390a35050505050565b60008282846123f29190613464565b9150811115612436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242d9061393e565b60405180910390fd5b92915050565b808073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016124769190612ead565b60206040518083038186803b15801561248e57600080fd5b505afa1580156124a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c6919061317b565b156124d05761253f565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461253e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612535906131f4565b60405180910390fd5b5b61259183600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e390919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262683600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126c69190612f60565b60405180910390a35050505050565b808073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b815260040161270f9190612ead565b60206040518083038186803b15801561272757600080fd5b505afa15801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f919061317b565b15612769576127d8565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce906131f4565b60405180910390fd5b5b6127ed83600054612b8090919063ffffffff16565b60008190555061284583600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128e69190612f60565b60405180910390a350505050565b60008082148061291c57508282838561290d919061395e565b92508261291a91906135e4565b145b61295b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295290613a04565b60405180910390fd5b92915050565b808073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b815260040161299b9190612ead565b60206040518083038186803b1580156129b357600080fd5b505afa1580156129c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129eb919061317b565b156129f557612a64565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614612a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5a906131f4565b60405180910390fd5b5b612ab683600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b0e836000546123e390919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b729190612f60565b60405180910390a350505050565b6000828284612b8f9190613a24565b9150811015612bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bca90613ac6565b60405180910390fd5b92915050565b600080fd5b600080fd5b6000819050919050565b612bf681612be3565b8114612c0157600080fd5b50565b600081359050612c1381612bed565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c4482612c19565b9050919050565b612c5481612c39565b8114612c5f57600080fd5b50565b600081359050612c7181612c4b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c9c57612c9b612c77565b5b8235905067ffffffffffffffff811115612cb957612cb8612c7c565b5b602083019150836001820283011115612cd557612cd4612c81565b5b9250929050565b600080600080600060808688031215612cf857612cf7612bd9565b5b6000612d0688828901612c04565b9550506020612d1788828901612c04565b9450506040612d2888828901612c62565b935050606086013567ffffffffffffffff811115612d4957612d48612bde565b5b612d5588828901612c86565b92509250509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d9e578082015181840152602081019050612d83565b83811115612dad576000848401525b50505050565b6000601f19601f8301169050919050565b6000612dcf82612d64565b612dd98185612d6f565b9350612de9818560208601612d80565b612df281612db3565b840191505092915050565b60006020820190508181036000830152612e178184612dc4565b905092915050565b60006dffffffffffffffffffffffffffff82169050919050565b612e4281612e1f565b82525050565b600063ffffffff82169050919050565b612e6181612e48565b82525050565b6000606082019050612e7c6000830186612e39565b612e896020830185612e39565b612e966040830184612e58565b949350505050565b612ea781612c39565b82525050565b6000602082019050612ec26000830184612e9e565b92915050565b600080600060608486031215612ee157612ee0612bd9565b5b6000612eef86828701612c62565b9350506020612f0086828701612c04565b9250506040612f1186828701612c62565b9150509250925092565b60008115159050919050565b612f3081612f1b565b82525050565b6000602082019050612f4b6000830184612f27565b92915050565b612f5a81612be3565b82525050565b6000602082019050612f756000830184612f51565b92915050565b6000819050919050565b612f8e81612f7b565b82525050565b6000602082019050612fa96000830184612f85565b92915050565b600060ff82169050919050565b612fc581612faf565b82525050565b6000602082019050612fe06000830184612fbc565b92915050565b60008060408385031215612ffd57612ffc612bd9565b5b600061300b85828601612c62565b925050602061301c85828601612c62565b9150509250929050565b600080600080608085870312156130405761303f612bd9565b5b600061304e87828801612c62565b945050602061305f87828801612c62565b935050604061307087828801612c04565b925050606061308187828801612c62565b91505092959194509250565b6000602082840312156130a3576130a2612bd9565b5b60006130b184828501612c62565b91505092915050565b60006040820190506130cf6000830185612f51565b6130dc6020830184612f51565b9392505050565b7f537761703a204c4f434b45440000000000000000000000000000000000000000600082015250565b6000613119600c83612d6f565b9150613124826130e3565b602082019050919050565b600060208201905081810360008301526131488161310c565b9050919050565b61315881612f1b565b811461316357600080fd5b50565b6000815190506131758161314f565b92915050565b60006020828403121561319157613190612bd9565b5b600061319f84828501613166565b91505092915050565b7f4164647265737320666f7262696464656e000000000000000000000000000000600082015250565b60006131de601183612d6f565b91506131e9826131a8565b602082019050919050565b6000602082019050818103600083015261320d816131d1565b9050919050565b7f537761703a20494e53554646494349454e545f4f55545055545f414d4f554e54600082015250565b600061324a602083612d6f565b915061325582613214565b602082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f537761703a20494e53554646494349454e545f4c495155494449545900000000600082015250565b60006132b6601c83612d6f565b91506132c182613280565b602082019050919050565b600060208201905081810360008301526132e5816132a9565b9050919050565b7f537761703a20494e56414c49445f544f00000000000000000000000000000000600082015250565b6000613322601083612d6f565b915061332d826132ec565b602082019050919050565b6000602082019050818103600083015261335181613315565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b60006133848385613358565b9350613391838584613369565b61339a83612db3565b840190509392505050565b60006080820190506133ba6000830188612e9e565b6133c76020830187612f51565b6133d46040830186612f51565b81810360608301526133e7818486613378565b90509695505050505050565b60008151905061340281612bed565b92915050565b60006020828403121561341e5761341d612bd9565b5b600061342c848285016133f3565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061346f82612be3565b915061347a83612be3565b92508282101561348d5761348c613435565b5b828203905092915050565b7f537761703a20494e53554646494349454e545f494e5055545f414d4f554e5400600082015250565b60006134ce601f83612d6f565b91506134d982613498565b602082019050919050565b600060208201905081810360008301526134fd816134c1565b9050919050565b60006080820190506135196000830187612f51565b6135266020830186612f51565b6135336040830185612f51565b6135406060830184612f51565b95945050505050565b7f537761703a20464f5242494444454e0000000000000000000000000000000000600082015250565b600061357f600f83612d6f565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135ef82612be3565b91506135fa83612be3565b92508261360a576136096135b5565b5b828204905092915050565b7f537761703a20494e53554646494349454e545f4c49515549444954595f4d494e60008201527f5445440000000000000000000000000000000000000000000000000000000000602082015250565b6000613671602383612d6f565b915061367c82613615565b604082019050919050565b600060208201905081810360008301526136a081613664565b9050919050565b7f537761703a20494e53554646494349454e545f4c49515549444954595f42555260008201527f4e45440000000000000000000000000000000000000000000000000000000000602082015250565b6000613703602383612d6f565b915061370e826136a7565b604082019050919050565b60006020820190508181036000830152613732816136f6565b9050919050565b600060408201905061374e6000830185612e9e565b61375b6020830184612f51565b9392505050565b600081519050919050565b600081905092915050565b600061378382613762565b61378d818561376d565b935061379d818560208601612d80565b80840191505092915050565b60006137b58284613778565b915081905092915050565b7f537761703a205452414e534645525f4641494c45440000000000000000000000600082015250565b60006137f6601583612d6f565b9150613801826137c0565b602082019050919050565b60006020820190508181036000830152613825816137e9565b9050919050565b7f537761703a204f564552464c4f57000000000000000000000000000000000000600082015250565b6000613862600e83612d6f565b915061386d8261382c565b602082019050919050565b6000602082019050818103600083015261389181613855565b9050919050565b60006138a382612be3565b91506138ae83612be3565b9250826138be576138bd6135b5565b5b828206905092915050565b60006040820190506138de6000830185612e39565b6138eb6020830184612e39565b9392505050565b7f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000600082015250565b6000613928601583612d6f565b9150613933826138f2565b602082019050919050565b600060208201905081810360008301526139578161391b565b9050919050565b600061396982612be3565b915061397483612be3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139ad576139ac613435565b5b828202905092915050565b7f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000600082015250565b60006139ee601483612d6f565b91506139f9826139b8565b602082019050919050565b60006020820190508181036000830152613a1d816139e1565b9050919050565b6000613a2f82612be3565b9150613a3a83612be3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6f57613a6e613435565b5b828201905092915050565b7f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000600082015250565b6000613ab0601483612d6f565b9150613abb82613a7a565b602082019050919050565b60006020820190508181036000830152613adf81613aa3565b905091905056fea2646970667358221220588292676b8d3a9daf9e44d0586b7565138ea15089127cbdf7064298b83ee84a64736f6c63430008090033a2646970667358221220091e0f6b84da94685d3d1122e56765aba12f87d57b4e14cdb7cba4a974c2fae064736f6c634300080900330000000000000000000000008d5482c83bb5b49e2b4b97bcf264342eac164c000000000000000000000000006fd7c66784508cde319f80c54fc760c42ec400b7
Deployed Bytecode
0x60806040523480156200001157600080fd5b5060043610620001545760003560e01c8063715018a611620000c9578063d571d7e41162000087578063d571d7e414620003af578063dc93377714620003cf578063e6a4390514620003f1578063e96c58c91462000427578063ec39bc391462000447578063f2fde38b146200047d5762000154565b8063715018a6146200030b5780638da5cb5b14620003175780639d2183c31462000339578063c616b48d1462000359578063c9c6539614620003795762000154565b80633edafd5b11620001175780633edafd5b1462000227578063534c5037146200024757806357284a65146200027d578063574f2ba314620002b35780635df672e914620002d55762000154565b8063060ac20714620001595780630858e10f146200017957806313c4f95314620001995780631e3dd18b14620001cf5780632d6058e21462000205575b600080fd5b62000177600480360381019062000171919062001267565b6200049d565b005b62000197600480360381019062000191919062001267565b620004b1565b005b620001b76004803603810190620001b19190620012fe565b620004c5565b604051620001c6919062001356565b60405180910390f35b620001ed6004803603810190620001e7919062001267565b6200054c565b604051620001fc919062001384565b60405180910390f35b6200020f6200058c565b6040516200021e919062001356565b60405180910390f35b6200024560048036038101906200023f9190620012fe565b62000596565b005b6200026560048036038101906200025f9190620012fe565b620006aa565b604051620002749190620013be565b60405180910390f35b6200029b6004803603810190620002959190620013db565b6200073e565b604051620002aa919062001356565b60405180910390f35b620002bd62000787565b604051620002cc919062001356565b60405180910390f35b620002f36004803603810190620002ed9190620013db565b62000794565b604051620003029190620013be565b60405180910390f35b62000315620007ea565b005b6200032162000802565b60405162000330919062001384565b60405180910390f35b620003576004803603810190620003519190620013db565b6200082b565b005b6200037760048036038101906200037191906200140d565b62000890565b005b620003976004803603810190620003919190620012fe565b620008e2565b604051620003a6919062001384565b60405180910390f35b620003cd6004803603810190620003c79190620013db565b62000e44565b005b620003d962000ea9565b604051620003e8919062001356565b60405180910390f35b6200040f6004803603810190620004099190620012fe565b62000eb3565b6040516200041e919062001384565b60405180910390f35b6200044560048036038101906200043f9190620012fe565b62000ef5565b005b6200046560048036038101906200045f9190620013db565b6200101d565b604051620004749190620013be565b60405180910390f35b6200049b6004803603810190620004959190620013db565b6200103d565b005b620004a7620010c8565b8060098190555050565b620004bb620010c8565b8060088190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600281815481106200055d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000625576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200061c90620014b5565b60405180910390fd5b43600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600280549050905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b620007f4620010c8565b6200080060006200114d565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000835620010c8565b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6200089a620010c8565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000956576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200094d9062001527565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200099557838562000998565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a069062001599565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000b1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b14906200160b565b60405180910390fd5b60006040518060200162000b319062001219565b6020820181038252601f19601f8201166040525090506000838360405160200162000b5e9291906200167d565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663485cc95585856040518363ffffffff1660e01b815260040162000bbf929190620016ad565b600060405180830381600087803b15801562000bda57600080fd5b505af115801562000bef573d6000803e3d6000fd5b5050505084600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e98760028054905060405162000e32929190620016da565b60405180910390a35050505092915050565b62000e4e620010c8565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600854905090565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000f84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f7b90620014b5565b60405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60036020528060005260406000206000915054906101000a900460ff1681565b62001047620010c8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620010ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010b1906200177d565b60405180910390fd5b620010c5816200114d565b50565b620010d262001211565b73ffffffffffffffffffffffffffffffffffffffff16620010f262000802565b73ffffffffffffffffffffffffffffffffffffffff16146200114b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200114290620017ef565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b613d37806200181283390190565b600080fd5b6000819050919050565b62001241816200122c565b81146200124d57600080fd5b50565b600081359050620012618162001236565b92915050565b60006020828403121562001280576200127f62001227565b5b6000620012908482850162001250565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012c68262001299565b9050919050565b620012d881620012b9565b8114620012e457600080fd5b50565b600081359050620012f881620012cd565b92915050565b6000806040838503121562001318576200131762001227565b5b60006200132885828601620012e7565b92505060206200133b85828601620012e7565b9150509250929050565b62001350816200122c565b82525050565b60006020820190506200136d600083018462001345565b92915050565b6200137e81620012b9565b82525050565b60006020820190506200139b600083018462001373565b92915050565b60008115159050919050565b620013b881620013a1565b82525050565b6000602082019050620013d56000830184620013ad565b92915050565b600060208284031215620013f457620013f362001227565b5b60006200140484828501620012e7565b91505092915050565b6000806040838503121562001427576200142662001227565b5b60006200143785828601620012e7565b92505060206200144a8582860162001250565b9150509250929050565b600082825260208201905092915050565b7f466163746f72793a2053656e646572206e6f742077686974656c697374656400600082015250565b60006200149d601f8362001454565b9150620014aa8262001465565b602082019050919050565b60006020820190508181036000830152620014d0816200148e565b9050919050565b7f537761703a204944454e544943414c5f41444452455353455300000000000000600082015250565b60006200150f60198362001454565b91506200151c82620014d7565b602082019050919050565b60006020820190508181036000830152620015428162001500565b9050919050565b7f537761703a205a45524f5f414444524553530000000000000000000000000000600082015250565b60006200158160128362001454565b91506200158e8262001549565b602082019050919050565b60006020820190508181036000830152620015b48162001572565b9050919050565b7f537761703a20504149525f455849535453000000000000000000000000000000600082015250565b6000620015f360118362001454565b91506200160082620015bb565b602082019050919050565b600060208201905081810360008301526200162681620015e4565b9050919050565b60008160601b9050919050565b600062001647826200162d565b9050919050565b60006200165b826200163a565b9050919050565b620016776200167182620012b9565b6200164e565b82525050565b60006200168b828562001662565b6014820191506200169d828462001662565b6014820191508190509392505050565b6000604082019050620016c4600083018562001373565b620016d3602083018462001373565b9392505050565b6000604082019050620016f1600083018562001373565b62001700602083018462001345565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200176560268362001454565b9150620017728262001707565b604082019050919050565b60006020820190508181036000830152620017988162001756565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620017d760208362001454565b9150620017e4826200179f565b602082019050919050565b600060208201905081810360008301526200180a81620017c8565b905091905056fe60806040526001600a553480156200001657600080fd5b5060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280601381526020017f554855204c697175696469747920546f6b656e00000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001620000cf959493929190620001ae565b604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200020b565b6000819050919050565b620001488162000133565b82525050565b6000819050919050565b62000163816200014e565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001968262000169565b9050919050565b620001a88162000189565b82525050565b600060a082019050620001c560008301886200013d565b620001d460208301876200013d565b620001e360408301866200013d565b620001f2606083018562000158565b6200020160808301846200019d565b9695505050505050565b613b1c806200021b6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80635fc9309c116100ad57806395d89b411161007157806395d89b411461035e578063ba9a7a561461037c578063c45a01551461039a578063d21220a7146103b8578063dd62ed3e146103d65761012c565b80635fc9309c1461026d5780636a6278421461029d57806370a08231146102cd5780637ecebe00146102fd57806389afcb441461032d5761012c565b806318160ddd116100f457806318160ddd146101d957806330adf81f146101f7578063313ce567146102155780633644e51514610233578063485cc955146102515761012c565b8063022c0d9f1461013157806306fdde031461014d5780630902f1ac1461016b5780630dfe16811461018b5780631271f09a146101a9575b600080fd5b61014b60048036038101906101469190612cdc565b610406565b005b610155610a7e565b6040516101629190612dfd565b60405180910390f35b610173610ab7565b60405161018293929190612e67565b60405180910390f35b610193610c38565b6040516101a09190612ead565b60405180910390f35b6101c360048036038101906101be9190612ec8565b610c5e565b6040516101d09190612f36565b60405180910390f35b6101e1610d7b565b6040516101ee9190612f60565b60405180910390f35b6101ff610d81565b60405161020c9190612f94565b60405180910390f35b61021d610da8565b60405161022a9190612fcb565b60405180910390f35b61023b610dad565b6040516102489190612f94565b60405180910390f35b61026b60048036038101906102669190612fe6565b610db3565b005b61028760048036038101906102829190613026565b610fed565b6040516102949190612f36565b60405180910390f35b6102b760048036038101906102b2919061308d565b6112be565b6040516102c49190612f60565b60405180910390f35b6102e760048036038101906102e2919061308d565b61187e565b6040516102f49190612f60565b60405180910390f35b6103176004803603810190610312919061308d565b611896565b6040516103249190612f60565b60405180910390f35b6103476004803603810190610342919061308d565b6118ae565b6040516103559291906130ba565b60405180910390f35b610366611e34565b6040516103739190612dfd565b60405180910390f35b610384611e6d565b6040516103919190612f60565b60405180910390f35b6103a2611e73565b6040516103af9190612ead565b60405180910390f35b6103c0611e99565b6040516103cd9190612ead565b60405180910390f35b6103f060048036038101906103eb9190612fe6565b611ebf565b6040516103fd9190612f60565b60405180910390f35b6001600a541461044b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104429061312f565b60405180910390fd5b6000600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016104ae9190612ead565b60206040518083038186803b1580156104c657600080fd5b505afa1580156104da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fe919061317b565b1561050857610577565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056d906131f4565b60405180910390fd5b5b60008511806105865750600084115b6105c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bc90613260565b60405180910390fd5b6000806105d0610ab7565b5091509150816dffffffffffffffffffffffffffff16871080156106035750806dffffffffffffffffffffffffffff1686105b610642576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610639906132cc565b60405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141580156106fb57508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b61073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073190613338565b60405180910390fd5b60008b111561074f5761074e828a8d611ee4565b5b60008a111561076457610763818a8c611ee4565b5b60008888905011156107e4578873ffffffffffffffffffffffffffffffffffffffff1663df9aee68338d8d8c8c6040518663ffffffff1660e01b81526004016107b19594939291906133a5565b600060405180830381600087803b1580156107cb57600080fd5b505af11580156107df573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161081d9190612ead565b60206040518083038186803b15801561083557600080fd5b505afa158015610849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086d9190613408565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108a89190612ead565b60206040518083038186803b1580156108c057600080fd5b505afa1580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f89190613408565b92505050600089856dffffffffffffffffffffffffffff1661091a9190613464565b831161092757600061094f565b89856dffffffffffffffffffffffffffff166109439190613464565b8361094e9190613464565b5b9050600089856dffffffffffffffffffffffffffff1661096f9190613464565b831161097c5760006109a4565b89856dffffffffffffffffffffffffffff166109989190613464565b836109a39190613464565b5b905060008211806109b55750600081115b6109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb906134e4565b60405180910390fd5b6109fe848461206e565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f604051610a619493929190613504565b60405180910390a35050505050506001600a819055505050505050565b6040518060400160405280601381526020017f554855204c697175696469747920546f6b656e0000000000000000000000000081525081565b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b8152600401610b179190612ead565b60206040518083038186803b158015610b2f57600080fd5b505afa158015610b43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b67919061317b565b15610b7157610be0565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd6906131f4565b60405180910390fd5b5b600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000818073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b8152600401610c9a9190612ead565b60206040518083038186803b158015610cb257600080fd5b505afa158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea919061317b565b15610cf457610d63565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d59906131f4565b60405180910390fd5b5b610d6f338686866121f3565b60019150509392505050565b60005481565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b8152600401610e0e9190612ead565b60206040518083038186803b158015610e2657600080fd5b505afa158015610e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5e919061317b565b15610e6857610ed7565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecd906131f4565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90613595565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000818073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016110299190612ead565b60206040518083038186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611079919061317b565b15611083576110f2565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e8906131f4565b60405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112a55761122484600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e390919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112b18686868661243c565b6001915050949350505050565b60006001600a5414611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc9061312f565b60405180910390fd5b6000600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016113689190612ead565b60206040518083038186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b8919061317b565b156113c257611431565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611427906131f4565b60405180910390fd5b5b60008061143c610ab7565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161149e9190612ead565b60206040518083038186803b1580156114b657600080fd5b505afa1580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee9190613408565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161154d9190612ead565b60206040518083038186803b15801561156557600080fd5b505afa158015611579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159d9190613408565b905060006115c4856dffffffffffffffffffffffffffff16846123e390919063ffffffff16565b905060006115eb856dffffffffffffffffffffffffffff16846123e390919063ffffffff16565b905060008054905060008114156116cf57738d5482c83bb5b49e2b4b97bcf264342eac164c0073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116825761167b6103e8846123e390919063ffffffff16565b975061169a565b6116976103e8836123e390919063ffffffff16565b97505b6116ca60006103e8600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126d5565b6117a0565b738d5482c83bb5b49e2b4b97bcf264342eac164c0073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561176e57866dffffffffffffffffffffffffffff1661175d82856128f490919063ffffffff16565b61176791906135e4565b975061179f565b856dffffffffffffffffffffffffffff1661179282846128f490919063ffffffff16565b61179c91906135e4565b97505b5b600088116117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613687565b60405180910390fd5b6118108989600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166126d5565b61181a858561206e565b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f84846040516118629291906130ba565b60405180910390a2505050505050506001600a81905550919050565b60016020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b6000806001600a54146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed9061312f565b60405180910390fd5b6000600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016119599190612ead565b60206040518083038186803b15801561197157600080fd5b505afa158015611985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a9919061317b565b156119b357611a22565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a18906131f4565b60405180910390fd5b5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611aab9190612ead565b60206040518083038186803b158015611ac357600080fd5b505afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190613408565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b389190612ead565b60206040518083038186803b158015611b5057600080fd5b505afa158015611b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b889190613408565b90506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008054905080611be885846128f490919063ffffffff16565b611bf291906135e4565b975080611c0884846128f490919063ffffffff16565b611c1291906135e4565b965060008711611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e90613719565b60405180910390fd5b611c843083600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612961565b611c8f868a8a611ee4565b611c9a858a89611ee4565b8573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611cd39190612ead565b60206040518083038186803b158015611ceb57600080fd5b505afa158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190613408565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611d5e9190612ead565b60206040518083038186803b158015611d7657600080fd5b505afa158015611d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dae9190613408565b9250611dba848461206e565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968a8a604051611e199291906130ba565b60405180910390a35050505050506001600a81905550915091565b6040518060400160405280600781526020017f5548552d4c51540000000000000000000000000000000000000000000000000081525081565b6103e881565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052816000526040600020602052806000526040600020600091509150505481565b6000808473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401611f4e929190613739565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fb891906137a9565b6000604051808303816000865af19150503d8060008114611ff5576040519150601f19603f3d011682016040523d82523d6000602084013e611ffa565b606091505b50915091508180156120285750600081511480612027575080806020019051810190612026919061317b565b5b5b612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e9061380c565b60405180910390fd5b5050505050565b6dffffffffffffffffffffffffffff8016821115801561209e57506dffffffffffffffffffffffffffff80168111155b6120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613878565b60405180910390fd5b6000640100000000426120f09190613898565b905082600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550806008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff166040516121e69291906138c9565b60405180910390a1505050565b808073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b815260040161222d9190612ead565b60206040518083038186803b15801561224557600080fd5b505afa158015612259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227d919061317b565b15612287576122f6565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec906131f4565b60405180910390fd5b5b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516123d49190612f60565b60405180910390a35050505050565b60008282846123f29190613464565b9150811115612436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242d9061393e565b60405180910390fd5b92915050565b808073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b81526004016124769190612ead565b60206040518083038186803b15801561248e57600080fd5b505afa1580156124a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c6919061317b565b156124d05761253f565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461253e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612535906131f4565b60405180910390fd5b5b61259183600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e390919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262683600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126c69190612f60565b60405180910390a35050505050565b808073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b815260040161270f9190612ead565b60206040518083038186803b15801561272757600080fd5b505afa15801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f919061317b565b15612769576127d8565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce906131f4565b60405180910390fd5b5b6127ed83600054612b8090919063ffffffff16565b60008190555061284583600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128e69190612f60565b60405180910390a350505050565b60008082148061291c57508282838561290d919061395e565b92508261291a91906135e4565b145b61295b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295290613a04565b60405180910390fd5b92915050565b808073ffffffffffffffffffffffffffffffffffffffff16635df672e9336040518263ffffffff1660e01b815260040161299b9190612ead565b60206040518083038186803b1580156129b357600080fd5b505afa1580156129c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129eb919061317b565b156129f557612a64565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614612a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5a906131f4565b60405180910390fd5b5b612ab683600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b0e836000546123e390919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b729190612f60565b60405180910390a350505050565b6000828284612b8f9190613a24565b9150811015612bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bca90613ac6565b60405180910390fd5b92915050565b600080fd5b600080fd5b6000819050919050565b612bf681612be3565b8114612c0157600080fd5b50565b600081359050612c1381612bed565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c4482612c19565b9050919050565b612c5481612c39565b8114612c5f57600080fd5b50565b600081359050612c7181612c4b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c9c57612c9b612c77565b5b8235905067ffffffffffffffff811115612cb957612cb8612c7c565b5b602083019150836001820283011115612cd557612cd4612c81565b5b9250929050565b600080600080600060808688031215612cf857612cf7612bd9565b5b6000612d0688828901612c04565b9550506020612d1788828901612c04565b9450506040612d2888828901612c62565b935050606086013567ffffffffffffffff811115612d4957612d48612bde565b5b612d5588828901612c86565b92509250509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d9e578082015181840152602081019050612d83565b83811115612dad576000848401525b50505050565b6000601f19601f8301169050919050565b6000612dcf82612d64565b612dd98185612d6f565b9350612de9818560208601612d80565b612df281612db3565b840191505092915050565b60006020820190508181036000830152612e178184612dc4565b905092915050565b60006dffffffffffffffffffffffffffff82169050919050565b612e4281612e1f565b82525050565b600063ffffffff82169050919050565b612e6181612e48565b82525050565b6000606082019050612e7c6000830186612e39565b612e896020830185612e39565b612e966040830184612e58565b949350505050565b612ea781612c39565b82525050565b6000602082019050612ec26000830184612e9e565b92915050565b600080600060608486031215612ee157612ee0612bd9565b5b6000612eef86828701612c62565b9350506020612f0086828701612c04565b9250506040612f1186828701612c62565b9150509250925092565b60008115159050919050565b612f3081612f1b565b82525050565b6000602082019050612f4b6000830184612f27565b92915050565b612f5a81612be3565b82525050565b6000602082019050612f756000830184612f51565b92915050565b6000819050919050565b612f8e81612f7b565b82525050565b6000602082019050612fa96000830184612f85565b92915050565b600060ff82169050919050565b612fc581612faf565b82525050565b6000602082019050612fe06000830184612fbc565b92915050565b60008060408385031215612ffd57612ffc612bd9565b5b600061300b85828601612c62565b925050602061301c85828601612c62565b9150509250929050565b600080600080608085870312156130405761303f612bd9565b5b600061304e87828801612c62565b945050602061305f87828801612c62565b935050604061307087828801612c04565b925050606061308187828801612c62565b91505092959194509250565b6000602082840312156130a3576130a2612bd9565b5b60006130b184828501612c62565b91505092915050565b60006040820190506130cf6000830185612f51565b6130dc6020830184612f51565b9392505050565b7f537761703a204c4f434b45440000000000000000000000000000000000000000600082015250565b6000613119600c83612d6f565b9150613124826130e3565b602082019050919050565b600060208201905081810360008301526131488161310c565b9050919050565b61315881612f1b565b811461316357600080fd5b50565b6000815190506131758161314f565b92915050565b60006020828403121561319157613190612bd9565b5b600061319f84828501613166565b91505092915050565b7f4164647265737320666f7262696464656e000000000000000000000000000000600082015250565b60006131de601183612d6f565b91506131e9826131a8565b602082019050919050565b6000602082019050818103600083015261320d816131d1565b9050919050565b7f537761703a20494e53554646494349454e545f4f55545055545f414d4f554e54600082015250565b600061324a602083612d6f565b915061325582613214565b602082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f537761703a20494e53554646494349454e545f4c495155494449545900000000600082015250565b60006132b6601c83612d6f565b91506132c182613280565b602082019050919050565b600060208201905081810360008301526132e5816132a9565b9050919050565b7f537761703a20494e56414c49445f544f00000000000000000000000000000000600082015250565b6000613322601083612d6f565b915061332d826132ec565b602082019050919050565b6000602082019050818103600083015261335181613315565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b60006133848385613358565b9350613391838584613369565b61339a83612db3565b840190509392505050565b60006080820190506133ba6000830188612e9e565b6133c76020830187612f51565b6133d46040830186612f51565b81810360608301526133e7818486613378565b90509695505050505050565b60008151905061340281612bed565b92915050565b60006020828403121561341e5761341d612bd9565b5b600061342c848285016133f3565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061346f82612be3565b915061347a83612be3565b92508282101561348d5761348c613435565b5b828203905092915050565b7f537761703a20494e53554646494349454e545f494e5055545f414d4f554e5400600082015250565b60006134ce601f83612d6f565b91506134d982613498565b602082019050919050565b600060208201905081810360008301526134fd816134c1565b9050919050565b60006080820190506135196000830187612f51565b6135266020830186612f51565b6135336040830185612f51565b6135406060830184612f51565b95945050505050565b7f537761703a20464f5242494444454e0000000000000000000000000000000000600082015250565b600061357f600f83612d6f565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135ef82612be3565b91506135fa83612be3565b92508261360a576136096135b5565b5b828204905092915050565b7f537761703a20494e53554646494349454e545f4c49515549444954595f4d494e60008201527f5445440000000000000000000000000000000000000000000000000000000000602082015250565b6000613671602383612d6f565b915061367c82613615565b604082019050919050565b600060208201905081810360008301526136a081613664565b9050919050565b7f537761703a20494e53554646494349454e545f4c49515549444954595f42555260008201527f4e45440000000000000000000000000000000000000000000000000000000000602082015250565b6000613703602383612d6f565b915061370e826136a7565b604082019050919050565b60006020820190508181036000830152613732816136f6565b9050919050565b600060408201905061374e6000830185612e9e565b61375b6020830184612f51565b9392505050565b600081519050919050565b600081905092915050565b600061378382613762565b61378d818561376d565b935061379d818560208601612d80565b80840191505092915050565b60006137b58284613778565b915081905092915050565b7f537761703a205452414e534645525f4641494c45440000000000000000000000600082015250565b60006137f6601583612d6f565b9150613801826137c0565b602082019050919050565b60006020820190508181036000830152613825816137e9565b9050919050565b7f537761703a204f564552464c4f57000000000000000000000000000000000000600082015250565b6000613862600e83612d6f565b915061386d8261382c565b602082019050919050565b6000602082019050818103600083015261389181613855565b9050919050565b60006138a382612be3565b91506138ae83612be3565b9250826138be576138bd6135b5565b5b828206905092915050565b60006040820190506138de6000830185612e39565b6138eb6020830184612e39565b9392505050565b7f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000600082015250565b6000613928601583612d6f565b9150613933826138f2565b602082019050919050565b600060208201905081810360008301526139578161391b565b9050919050565b600061396982612be3565b915061397483612be3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139ad576139ac613435565b5b828202905092915050565b7f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000600082015250565b60006139ee601483612d6f565b91506139f9826139b8565b602082019050919050565b60006020820190508181036000830152613a1d816139e1565b9050919050565b6000613a2f82612be3565b9150613a3a83612be3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6f57613a6e613435565b5b828201905092915050565b7f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000600082015250565b6000613ab0601483612d6f565b9150613abb82613a7a565b602082019050919050565b60006020820190508181036000830152613adf81613aa3565b905091905056fea2646970667358221220588292676b8d3a9daf9e44d0586b7565138ea15089127cbdf7064298b83ee84a64736f6c63430008090033a2646970667358221220091e0f6b84da94685d3d1122e56765aba12f87d57b4e14cdb7cba4a974c2fae064736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008d5482c83bb5b49e2b4b97bcf264342eac164c000000000000000000000000006fd7c66784508cde319f80c54fc760c42ec400b7
-----Decoded View---------------
Arg [0] : _uhuAddress (address): 0x8D5482C83Bb5B49E2B4B97BcF264342eaC164c00
Arg [1] : _alphaAddress (address): 0x6Fd7c66784508cdE319F80c54fC760C42eC400b7
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008d5482c83bb5b49e2b4b97bcf264342eac164c00
Arg [1] : 0000000000000000000000006fd7c66784508cde319f80c54fc760c42ec400b7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.