Latest 25 from a total of 4,263 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21469101 | 3 hrs ago | IN | 0 ETH | 0.00038492 | ||||
Approve | 21464764 | 17 hrs ago | IN | 0 ETH | 0.00042718 | ||||
Transfer | 21463244 | 22 hrs ago | IN | 0 ETH | 0.00053259 | ||||
Approve | 21459023 | 37 hrs ago | IN | 0 ETH | 0.00041277 | ||||
Approve | 21456800 | 44 hrs ago | IN | 0 ETH | 0.00025876 | ||||
Transfer | 21456792 | 44 hrs ago | IN | 0 ETH | 0.0005618 | ||||
Transfer | 21441855 | 3 days ago | IN | 0 ETH | 0.00080084 | ||||
Approve | 21429417 | 5 days ago | IN | 0 ETH | 0.00092721 | ||||
Transfer | 21425013 | 6 days ago | IN | 0 ETH | 0.00121674 | ||||
Transfer | 21405857 | 8 days ago | IN | 0 ETH | 0.00090702 | ||||
Approve | 21404835 | 9 days ago | IN | 0 ETH | 0.00045056 | ||||
Transfer | 21401917 | 9 days ago | IN | 0 ETH | 0.0004265 | ||||
Rescue ERC20 | 21401910 | 9 days ago | IN | 0 ETH | 0.00049921 | ||||
Transfer | 21392233 | 10 days ago | IN | 0 ETH | 0.00087614 | ||||
Approve | 21389267 | 11 days ago | IN | 0 ETH | 0.00080847 | ||||
Transfer | 21388933 | 11 days ago | IN | 0 ETH | 0.00223404 | ||||
Transfer | 21385170 | 11 days ago | IN | 0 ETH | 0.00103055 | ||||
Approve | 21371201 | 13 days ago | IN | 0 ETH | 0.00065286 | ||||
Transfer | 21337692 | 18 days ago | IN | 0 ETH | 0.00112024 | ||||
Transfer | 21335619 | 18 days ago | IN | 0 ETH | 0.00236304 | ||||
Transfer | 21332548 | 19 days ago | IN | 0 ETH | 0.00083201 | ||||
Transfer | 21332508 | 19 days ago | IN | 0 ETH | 0.00198869 | ||||
Transfer | 21332502 | 19 days ago | IN | 0 ETH | 0.00282815 | ||||
Rescue ERC20 | 21332490 | 19 days ago | IN | 0 ETH | 0.00096187 | ||||
Approve | 21312333 | 22 days ago | IN | 0 ETH | 0.00044228 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20465124 | 140 days ago | 0.92795476 ETH | ||||
20465124 | 140 days ago | 0.92795476 ETH | ||||
20366233 | 154 days ago | 0.36380972 ETH | ||||
20366233 | 154 days ago | 0.36380972 ETH | ||||
20272961 | 167 days ago | 0.42335321 ETH | ||||
20272961 | 167 days ago | 0.42335321 ETH | ||||
19853820 | 225 days ago | 0.00588499 ETH | ||||
19695125 | 247 days ago | 0.56851348 ETH | ||||
19695125 | 247 days ago | 0.56851348 ETH | ||||
19612675 | 259 days ago | 0.74904275 ETH | ||||
19612675 | 259 days ago | 0.74904275 ETH | ||||
19549109 | 268 days ago | 0.65059898 ETH | ||||
19549109 | 268 days ago | 0.65059898 ETH | ||||
19544827 | 268 days ago | 0.64824053 ETH | ||||
19544827 | 268 days ago | 0.64824053 ETH | ||||
19535345 | 270 days ago | 0.64935619 ETH | ||||
19535345 | 270 days ago | 0.64935619 ETH | ||||
19419759 | 286 days ago | 0.88646644 ETH | ||||
19419759 | 286 days ago | 0.88646644 ETH | ||||
19404108 | 288 days ago | 0.57979666 ETH | ||||
19404108 | 288 days ago | 0.57979666 ETH | ||||
19398879 | 289 days ago | 0.70474721 ETH | ||||
19398879 | 289 days ago | 0.70474721 ETH | ||||
19376013 | 292 days ago | 0.23100641 ETH | ||||
19376013 | 292 days ago | 0.23100641 ETH |
Loading...
Loading
Contract Name:
Ethane
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-26 */ /** ______ _______ _ _ _ _ ______ | ____|__ __| | | | /\ | \ | | ____| | |__ | | | |__| | / \ | \| | |__ | __| | | | __ | / /\ \ | . ` | __| | |____ | | | | | |/ ____ \| |\ | |____ |______| |_| |_| |_/_/ \_\_| \_|______| > https://ethane.app/ > https://t.me/EthaneErc > https://twitter.com/EthaneErc */ // SPDX-License-Identifier: MIT pragma solidity 0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint256 internal immutable INITIAL_CHAIN_ID; bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR; mapping(address => uint256) public nonces; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; INITIAL_CHAIN_ID = block.chainid; INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator(); } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) public virtual { require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED"); // Unchecked because the only math done is incrementing // the owner's nonce which cannot realistically overflow. unchecked { address recoveredAddress = ecrecover( keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR(), keccak256( abi.encode( keccak256( "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)" ), owner, spender, value, nonces[owner]++, deadline ) ) ) ), v, r, s ); require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER"); _allowances[recoveredAddress][spender] = value; } emit Approval(owner, spender, value); } function DOMAIN_SEPARATOR() public view virtual returns (bytes32) { return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator(); } function computeDomainSeparator() internal view virtual returns (bytes32) { return keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(_name)), keccak256("1"), block.chainid, address(this) ) ); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract Ethane is ERC20, Ownable{ using Address for address payable; mapping (address user => bool status) public isExcludedFromFees; mapping (address buyer => bool status) public whitelistedBuyer; mapping (address buyer => bool status) public earlyBuyer; mapping (address buyer => uint256 amount) public earlyBuyerDailySell; mapping (address user => bool status) public isBlacklisted; mapping (address user => uint256 timestamp) public lastTrade; IRouter public router; address public pair; address public marketingWallet = 0x97C3cFa5B0f6A33D6a22fa29c728882Dd6aA8237; bool private swapping; bool public swapEnabled; bool public tradingEnabled; bool public finalTaxSet; uint256 public swapThreshold; uint256 public maxWallet = 10000 * 10**9; uint256 public maxTx = 10000 * 10**9; uint256 public earlyBuyerDailyMaxSell; uint256 public delay; uint256 public deadBlocks = 1; uint256 public whitelistPeriod = 0 minutes; uint256 public launchBlock; uint256 public launchTimestamp; uint256 public finalTaxTimestamp = 1 hours; struct Taxes { uint256 buy; uint256 sell; uint256 transfer; } Taxes public taxes = Taxes(20,20,0); modifier mutexLock() { if (!swapping) { swapping = true; _; swapping = false; } } constructor(address _router) ERC20("Ethane", "C2H6") { _mint(msg.sender, 1000000 * 10 ** 9); router = IRouter(_router); pair = IFactory(router.factory()).createPair(address(this), router.WETH()); isExcludedFromFees[address(this)] = true; isExcludedFromFees[msg.sender] = true; isExcludedFromFees[marketingWallet] = true; swapThreshold = maxWallet; earlyBuyerDailyMaxSell = totalSupply() * 5 / 1000; _approve(address(this), address(router), type(uint256).max); } function decimals() public view virtual override returns (uint8) { return 9; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if (swapping || isExcludedFromFees[sender] || isExcludedFromFees[recipient]) { super._transfer(sender, recipient, amount); return; } else{ require(tradingEnabled, "Trading not enabled"); require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted address"); if(!finalTaxSet && finalTaxTimestamp + launchTimestamp < block.timestamp){ finalTaxSet = true; taxes = Taxes(3, 3, 0); // set final tax after 1 hour } if(launchTimestamp + whitelistPeriod > block.timestamp){ if(!whitelistedBuyer[sender] && !whitelistedBuyer[recipient]) require(amount <= maxTx, "MaxTx limit exceeded"); } else require(amount <= maxTx, "MaxTx limit exceeded"); if(sender != pair) { if(earlyBuyer[sender]){ if(block.timestamp - lastTrade[sender] >= 1 days){ earlyBuyerDailyMaxSell = 0; } require(earlyBuyerDailySell[sender] + amount <= earlyBuyerDailyMaxSell, "Early buyer sell limit exceeded"); earlyBuyerDailySell[sender] += amount; } require(lastTrade[sender] + delay <= block.timestamp, "WAIT PLEASE"); lastTrade[sender] = block.timestamp; } if(recipient != pair){ if(launchTimestamp + whitelistPeriod > block.timestamp && !whitelistedBuyer[recipient]){ isBlacklisted[recipient] == true; } require(balanceOf(recipient) + amount <= maxWallet, "Wallet limit exceeded"); require(lastTrade[recipient] + delay <= block.timestamp, "WAIT PLEASE"); lastTrade[recipient] = block.timestamp; } } if(whitelistedBuyer[recipient] && sender == pair && launchTimestamp + whitelistPeriod > block.timestamp){ earlyBuyer[recipient] = true; } uint256 fees; if(recipient == pair) fees = amount * taxes.sell / 100; else if(sender == pair && !whitelistedBuyer[recipient]) fees = amount * taxes.buy / 100; else fees = amount * taxes.transfer / 100; if (swapEnabled && recipient == pair && !swapping) swapFees(); super._transfer(sender, recipient, amount - fees); if(fees > 0){ super._transfer(sender, address(this), fees); } } function swapFees() private mutexLock { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { uint256 amountToSwap = swapThreshold; if(contractBalance >= maxTx && swapThreshold != maxWallet) amountToSwap = maxTx; if(swapThreshold == maxWallet) swapThreshold = totalSupply() * 25 / 10000; // 0.25% uint256 initialBalance = address(this).balance; swapTokensForEth(amountToSwap); uint256 deltaBalance = address(this).balance - initialBalance; payable(marketingWallet).sendValue(deltaBalance); } } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function setSwapEnabled(bool status) external onlyOwner { swapEnabled = status; } function setSwapTreshhold(uint256 amount) external onlyOwner { swapThreshold = amount * 10**9; } function setTaxes(uint256 _buyTax, uint256 _sellTax, uint256 _transferTax) external onlyOwner { taxes = Taxes(_buyTax, _sellTax, _transferTax); } function setRouterAndPair(address newRouter, address newPair) external onlyOwner{ router = IRouter(newRouter); pair = newPair; _approve(address(this), address(newRouter), type(uint256).max); } function enableTrading() external onlyOwner{ require(!tradingEnabled, "Already enabled"); tradingEnabled = true; swapEnabled = true; taxes.transfer = 50; launchBlock = block.number; launchTimestamp = block.timestamp; } function removeLimits() external onlyOwner{ maxTx = totalSupply(); maxWallet = totalSupply(); taxes.transfer = 0; } function setDelay(uint256 time) external onlyOwner{ delay = time; } function setLimits(uint256 _maxTx, uint256 _maxWallet) external onlyOwner{ maxTx = _maxTx * 10**9; maxWallet = _maxWallet * 10**9; } function setMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function setIsExcludedFromFees(address _address, bool state) external onlyOwner { isExcludedFromFees[_address] = state; } function bulkIsExcludedFromFees(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ isExcludedFromFees[accounts[i]] = state; } } function setBlacklist(address[] memory accounts, bool status) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ isBlacklisted[accounts[i]] = status; } } function rescueETH(uint256 weiAmount) external{ payable(marketingWallet).sendValue(weiAmount); } function rescueERC20(address tokenAdd, uint256 amount) external{ IERC20(tokenAdd).transfer(marketingWallet, amount); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlyBuyerDailyMaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyerDailySell","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalTaxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lastTrade","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"setRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"whitelistedBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040527397c3cfa5b0f6a33d6a22fa29c728882dd6aa8237600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506509184e72a0006011556509184e72a00060125560016015556000601655610e10601955604051806060016040528060148152602001601481526020016000815250601a6000820151816000015560208201518160010155604082015181600201555050348015620000ca57600080fd5b5060405162005eba38038062005eba8339818101604052810190620000f0919062000ae0565b6040518060400160405280600681526020017f457468616e6500000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f433248360000000000000000000000000000000000000000000000000000000081525081600390816200016d919062000d8c565b5080600490816200017f919062000d8c565b50466080818152505062000198620005c660201b60201c565b60a081815250505050620001c1620001b56200065660201b60201c565b6200065e60201b60201c565b620001da3366038d7ea4c680006200072460201b60201c565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af919062000ae0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000339573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035f919062000ae0565b6040518363ffffffff1660e01b81526004016200037e92919062000e84565b6020604051808303816000875af11580156200039e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c4919062000ae0565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506011546010819055506103e860056200054c6200089160201b60201c565b62000558919062000ee0565b62000564919062000f5a565b601381905550620005bf30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200089b60201b60201c565b50620012ee565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6003604051620005fa919062001041565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200063b95949392919062001086565b60405160208183030381529060405280519060200120905090565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000796576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078d9062001144565b60405180910390fd5b620007aa6000838362000a6c60201b60201c565b8060026000828254620007be919062001166565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008719190620011a1565b60405180910390a36200088d6000838362000a7160201b60201c565b5050565b6000600254905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200090d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009049062001234565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200097f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200097690620012cc565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000a5f9190620011a1565b60405180910390a3505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000aa88262000a7b565b9050919050565b62000aba8162000a9b565b811462000ac657600080fd5b50565b60008151905062000ada8162000aaf565b92915050565b60006020828403121562000af95762000af862000a76565b5b600062000b098482850162000ac9565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b9457607f821691505b60208210810362000baa5762000ba962000b4c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bd5565b62000c20868362000bd5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c6d62000c6762000c618462000c38565b62000c42565b62000c38565b9050919050565b6000819050919050565b62000c898362000c4c565b62000ca162000c988262000c74565b84845462000be2565b825550505050565b600090565b62000cb862000ca9565b62000cc581848462000c7e565b505050565b5b8181101562000ced5762000ce160008262000cae565b60018101905062000ccb565b5050565b601f82111562000d3c5762000d068162000bb0565b62000d118462000bc5565b8101602085101562000d21578190505b62000d3962000d308562000bc5565b83018262000cca565b50505b505050565b600082821c905092915050565b600062000d616000198460080262000d41565b1980831691505092915050565b600062000d7c838362000d4e565b9150826002028217905092915050565b62000d978262000b12565b67ffffffffffffffff81111562000db35762000db262000b1d565b5b62000dbf825462000b7b565b62000dcc82828562000cf1565b600060209050601f83116001811462000e04576000841562000def578287015190505b62000dfb858262000d6e565b86555062000e6b565b601f19841662000e148662000bb0565b60005b8281101562000e3e5784890151825560018201915060208501945060208101905062000e17565b8683101562000e5e578489015162000e5a601f89168262000d4e565b8355505b6001600288020188555050505b505050505050565b62000e7e8162000a9b565b82525050565b600060408201905062000e9b600083018562000e73565b62000eaa602083018462000e73565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000eed8262000c38565b915062000efa8362000c38565b925082820262000f0a8162000c38565b9150828204841483151762000f245762000f2362000eb1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f678262000c38565b915062000f748362000c38565b92508262000f875762000f8662000f2b565b5b828204905092915050565b600081905092915050565b60008190508160005260206000209050919050565b6000815462000fc18162000b7b565b62000fcd818662000f92565b9450600182166000811462000feb5760018114620010015762001038565b60ff198316865281151582028601935062001038565b6200100c8562000f9d565b60005b8381101562001030578154818901526001820191506020810190506200100f565b838801955050505b50505092915050565b60006200104f828462000fb2565b915081905092915050565b6000819050919050565b6200106f816200105a565b82525050565b620010808162000c38565b82525050565b600060a0820190506200109d600083018862001064565b620010ac602083018762001064565b620010bb604083018662001064565b620010ca606083018562001075565b620010d9608083018462000e73565b9695505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200112c601f83620010e3565b91506200113982620010f4565b602082019050919050565b600060208201905081810360008301526200115f816200111d565b9050919050565b6000620011738262000c38565b9150620011808362000c38565b92508282019050808211156200119b576200119a62000eb1565b5b92915050565b6000602082019050620011b8600083018462001075565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200121c602483620010e3565b91506200122982620011be565b604082019050919050565b600060208201905081810360008301526200124f816200120d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620012b4602283620010e3565b9150620012c18262001256565b604082019050919050565b60006020820190508181036000830152620012e781620012a5565b9050919050565b60805160a051614ba6620013146000396000610f8801526000610f540152614ba66000f3fe6080604052600436106103395760003560e01c80638cd4426d116101ab578063c26d7be0116100f7578063e25c392311610095578063f887ea401161006f578063f887ea4014610c3f578063f8b45b0514610c6a578063fabb0b4f14610c95578063fe575a8714610cc057610340565b8063e25c392314610bc2578063e9dae5ed14610bed578063f2fde38b14610c1657610340565b8063d505accf116100d1578063d505accf14610b0a578063dd62ed3e14610b33578063e01af92c14610b70578063e177246e14610b9957610340565b8063c26d7be014610a79578063c4590d3f14610ab6578063d00efb2f14610adf57610340565b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb146109bf578063adf18693146109fc578063b48e665e14610a25578063b5d7ab9a14610a5057610340565b8063a457c2d71461092e578063a8aa1b311461096b578063a8f43a601461099657610340565b80638cd4426d146108305780638da5cb5b14610859578063950e40501461088457806395d89b41146108af5780639ccde992146108da5780639e252f001461090557610340565b80634d2ff7c111610285578063715018a611610223578063751039fc116101fd578063751039fc1461079a57806375f0a874146107b15780637ecebe00146107dc5780638a8c523c1461081957610340565b8063715018a61461072b578063728f8eea146107425780637437681e1461076f57610340565b806365cf7c9b1161025f57806365cf7c9b1461066d5780636a42b8f8146106985780636ddd1713146106c357806370a08231146106ee57610340565b80634d2ff7c1146105ca5780634fbee193146106075780635d098b381461064457610340565b8063255f40b6116102f257806339509351116102cc57806339509351146104e857806339937cde14610525578063445418ce146105625780634ada218b1461059f57610340565b8063255f40b614610469578063313ce567146104925780633644e515146104bd57610340565b80630445b6671461034557806306fdde0314610370578063095ea7b31461039b5780630e85d1e3146103d857806318160ddd1461040157806323b872dd1461042c57610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a610cfd565b60405161036791906132b3565b60405180910390f35b34801561037c57600080fd5b50610385610d03565b604051610392919061335e565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd919061341e565b610d95565b6040516103cf9190613479565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190613608565b610db8565b005b34801561040d57600080fd5b50610416610e55565b60405161042391906132b3565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e9190613664565b610e5f565b6040516104609190613479565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b91906136b7565b610e8e565b005b34801561049e57600080fd5b506104a7610f47565b6040516104b49190613713565b60405180910390f35b3480156104c957600080fd5b506104d2610f50565b6040516104df9190613747565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a919061341e565b610fad565b60405161051c9190613479565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190613762565b610fe4565b6040516105599190613479565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190613762565b611004565b60405161059691906132b3565b60405180910390f35b3480156105ab57600080fd5b506105b461101c565b6040516105c19190613479565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190613762565b61102f565b6040516105fe9190613479565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190613762565b61104f565b60405161063b9190613479565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190613762565b61106f565b005b34801561067957600080fd5b506106826110bb565b60405161068f91906132b3565b60405180910390f35b3480156106a457600080fd5b506106ad6110c1565b6040516106ba91906132b3565b60405180910390f35b3480156106cf57600080fd5b506106d86110c7565b6040516106e59190613479565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190613762565b6110da565b60405161072291906132b3565b60405180910390f35b34801561073757600080fd5b50610740611122565b005b34801561074e57600080fd5b50610757611136565b6040516107669392919061378f565b60405180910390f35b34801561077b57600080fd5b5061078461114e565b60405161079191906132b3565b60405180910390f35b3480156107a657600080fd5b506107af611154565b005b3480156107bd57600080fd5b506107c6611185565b6040516107d391906137d5565b60405180910390f35b3480156107e857600080fd5b5061080360048036038101906107fe9190613762565b6111ab565b60405161081091906132b3565b60405180910390f35b34801561082557600080fd5b5061082e6111c3565b005b34801561083c57600080fd5b506108576004803603810190610852919061341e565b61126c565b005b34801561086557600080fd5b5061086e611311565b60405161087b91906137d5565b60405180910390f35b34801561089057600080fd5b5061089961133b565b6040516108a691906132b3565b60405180910390f35b3480156108bb57600080fd5b506108c4611341565b6040516108d1919061335e565b60405180910390f35b3480156108e657600080fd5b506108ef6113d3565b6040516108fc9190613479565b60405180910390f35b34801561091157600080fd5b5061092c600480360381019061092791906137f0565b6113e6565b005b34801561093a57600080fd5b506109556004803603810190610950919061341e565b611434565b6040516109629190613479565b60405180910390f35b34801561097757600080fd5b506109806114ab565b60405161098d91906137d5565b60405180910390f35b3480156109a257600080fd5b506109bd60048036038101906109b89190613608565b6114d1565b005b3480156109cb57600080fd5b506109e660048036038101906109e1919061341e565b61156e565b6040516109f39190613479565b60405180910390f35b348015610a0857600080fd5b50610a236004803603810190610a1e919061381d565b611591565b005b348015610a3157600080fd5b50610a3a6115f4565b604051610a4791906132b3565b60405180910390f35b348015610a5c57600080fd5b50610a776004803603810190610a7291906137f0565b6115fa565b005b348015610a8557600080fd5b50610aa06004803603810190610a9b9190613762565b61161b565b604051610aad91906132b3565b60405180910390f35b348015610ac257600080fd5b50610add6004803603810190610ad8919061385d565b611633565b005b348015610aeb57600080fd5b50610af461166b565b604051610b0191906132b3565b60405180910390f35b348015610b1657600080fd5b50610b316004803603810190610b2c91906138f5565b611671565b005b348015610b3f57600080fd5b50610b5a6004803603810190610b5591906136b7565b61196a565b604051610b6791906132b3565b60405180910390f35b348015610b7c57600080fd5b50610b976004803603810190610b929190613997565b6119f1565b005b348015610ba557600080fd5b50610bc06004803603810190610bbb91906137f0565b611a16565b005b348015610bce57600080fd5b50610bd7611a28565b604051610be491906132b3565b60405180910390f35b348015610bf957600080fd5b50610c146004803603810190610c0f91906139c4565b611a2e565b005b348015610c2257600080fd5b50610c3d6004803603810190610c389190613762565b611a79565b005b348015610c4b57600080fd5b50610c54611afc565b604051610c619190613a76565b60405180910390f35b348015610c7657600080fd5b50610c7f611b22565b604051610c8c91906132b3565b60405180910390f35b348015610ca157600080fd5b50610caa611b28565b604051610cb791906132b3565b60405180910390f35b348015610ccc57600080fd5b50610ce76004803603810190610ce29190613762565b611b2e565b604051610cf49190613479565b60405180910390f35b60105481565b606060038054610d1290613ac0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e90613ac0565b8015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050905090565b600080610da0611b4e565b9050610dad818585611b56565b600191505092915050565b610dc0611d1f565b60005b8251811015610e505781600b6000858481518110610de457610de3613af1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e4890613b4f565b915050610dc3565b505050565b6000600254905090565b600080610e6a611b4e565b9050610e77858285611d9d565b610e82858585611e29565b60019150509392505050565b610e96611d1f565b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4330837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611b56565b5050565b60006009905090565b60007f00000000000000000000000000000000000000000000000000000000000000004614610f8657610f81612a92565b610fa8565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b600080610fb8611b4e565b9050610fd9818585610fca858961196a565b610fd49190613b97565b611b56565b600191505092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915090505481565b600f60169054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b611077611d1f565b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b60145481565b600f60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61112a611d1f565b6111346000612b1e565b565b601a8060000154908060010154908060020154905083565b60125481565b61115c611d1f565b611164610e55565b601281905550611172610e55565b6011819055506000601a60020181905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b6111cb611d1f565b600f60169054906101000a900460ff161561121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290613c17565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60156101000a81548160ff0219169083151502179055506032601a600201819055504360178190555042601881905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016112c9929190613c37565b6020604051808303816000875af11580156112e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130c9190613c75565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606004805461135090613ac0565b80601f016020809104026020016040519081016040528092919081815260200182805461137c90613ac0565b80156113c95780601f1061139e576101008083540402835291602001916113c9565b820191906000526020600020905b8154815290600101906020018083116113ac57829003601f168201915b5050505050905090565b600f60179054906101000a900460ff1681565b61143181600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612be490919063ffffffff16565b50565b60008061143f611b4e565b9050600061144d828661196a565b905083811015611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990613d14565b60405180910390fd5b61149f8286868403611b56565b60019250505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114d9611d1f565b60005b82518110156115695781600760008584815181106114fd576114fc613af1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061156190613b4f565b9150506114dc565b505050565b600080611579611b4e565b9050611586818585611e29565b600191505092915050565b611599611d1f565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60165481565b611602611d1f565b633b9aca00816116129190613d34565b60108190555050565b600c6020528060005260406000206000915090505481565b61163b611d1f565b633b9aca008261164b9190613d34565b601281905550633b9aca00816116619190613d34565b6011819055505050565b60175481565b428410156116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90613dc2565b60405180910390fd5b600060016116c0610f50565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161174896959493929190613de2565b6040516020818303038152906040528051906020012060405160200161176f929190613ebb565b60405160208183030381529060405280519060200120858585604051600081526020016040526040516117a59493929190613ef2565b6020604051602081039080840390855afa1580156117c7573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561183b57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61187a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187190613f83565b60405180910390fd5b85600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161195991906132b3565b60405180910390a350505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119f9611d1f565b80600f60156101000a81548160ff02191690831515021790555050565b611a1e611d1f565b8060148190555050565b60135481565b611a36611d1f565b604051806060016040528084815260200183815260200182815250601a600082015181600001556020820151816001015560408201518160020155905050505050565b611a81611d1f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae790614015565b60405180910390fd5b611af981612b1e565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b60155481565b600b6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc906140a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b90614139565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d1291906132b3565b60405180910390a3505050565b611d27611b4e565b73ffffffffffffffffffffffffffffffffffffffff16611d45611311565b73ffffffffffffffffffffffffffffffffffffffff1614611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d92906141a5565b60405180910390fd5b565b6000611da9848461196a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611e235781811015611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c90614211565b60405180910390fd5b611e228484848403611b56565b5b50505050565b60008111611e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e63906142a3565b60405180910390fd5b600f60149054906101000a900460ff1680611ed05750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f245750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f3957611f34838383612cd8565b612a8d565b600f60169054906101000a900460ff16611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f9061430f565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561202c5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61206b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120629061437b565b60405180910390fd5b600f60179054906101000a900460ff161580156120965750426018546019546120949190613b97565b105b156120f8576001600f60176101000a81548160ff021916908315150217905550604051806060016040528060038152602001600381526020016000815250601a6000820151816000015560208201518160010155604082015181600201559050505b426016546018546121099190613b97565b111561220357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121b35750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121fe576012548111156121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f4906143e7565b60405180910390fd5b5b612249565b601254811115612248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223f906143e7565b60405180910390fd5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461250757600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124335762015180600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261233f9190614407565b1061234d5760006013819055505b60135481600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239b9190613b97565b11156123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d390614487565b60405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461242b9190613b97565b925050819055505b42601454600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124819190613b97565b11156124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b9906144f3565b60405180910390fd5b42600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612746574260165460185461256d9190613b97565b1180156125c45750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561261a5760011515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050505b60115481612627846110da565b6126319190613b97565b1115612672576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126699061455f565b60405180910390fd5b42601454600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c09190613b97565b1115612701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f8906144f3565b60405180910390fd5b42600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127ec5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156128065750426016546018546128049190613b97565b115b15612864576001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128df576064601a60010154836128ce9190613d34565b6128d891906145ae565b90506129d0565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156129865750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129af576064601a600001548361299e9190613d34565b6129a891906145ae565b90506129cf565b6064601a60020154836129c29190613d34565b6129cc91906145ae565b90505b5b600f60159054906101000a900460ff168015612a395750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612a525750600f60149054906101000a900460ff16155b15612a6057612a5f612f4e565b5b612a7684848385612a719190614407565b612cd8565b6000811115612a8b57612a8a843083612cd8565b5b505b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6003604051612ac49190614682565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001612b03959493929190614699565b60405160208183030381529060405280519060200120905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1e90614738565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612c4d9061477e565b60006040518083038185875af1925050503d8060008114612c8a576040519150601f19603f3d011682016040523d82523d6000602084013e612c8f565b606091505b5050905080612cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cca90614805565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3e90614897565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dad90614929565b60405180910390fd5b612dc183838361307a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3e906149bb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f3591906132b3565b60405180910390a3612f4884848461307f565b50505050565b600f60149054906101000a900460ff16613078576001600f60146101000a81548160ff0219169083151502179055506000612f88306110da565b9050601054811061305b57600060105490506012548210158015612fb0575060115460105414155b15612fbb5760125490505b60115460105403612fee576127106019612fd3610e55565b612fdd9190613d34565b612fe791906145ae565b6010819055505b6000479050612ffc82613084565b6000814761300a9190614407565b905061305781600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612be490919063ffffffff16565b5050505b506000600f60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff8111156130a1576130a0613499565b5b6040519080825280602002602001820160405280156130cf5781602001602082028036833780820191505090505b50905030816000815181106130e7576130e6613af1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b291906149f0565b816001815181106131c6576131c5613af1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613264959493929190614b16565b600060405180830381600087803b15801561327e57600080fd5b505af1158015613292573d6000803e3d6000fd5b505050505050565b6000819050919050565b6132ad8161329a565b82525050565b60006020820190506132c860008301846132a4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133085780820151818401526020810190506132ed565b60008484015250505050565b6000601f19601f8301169050919050565b6000613330826132ce565b61333a81856132d9565b935061334a8185602086016132ea565b61335381613314565b840191505092915050565b600060208201905081810360008301526133788184613325565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133bf82613394565b9050919050565b6133cf816133b4565b81146133da57600080fd5b50565b6000813590506133ec816133c6565b92915050565b6133fb8161329a565b811461340657600080fd5b50565b600081359050613418816133f2565b92915050565b600080604083850312156134355761343461338a565b5b6000613443858286016133dd565b925050602061345485828601613409565b9150509250929050565b60008115159050919050565b6134738161345e565b82525050565b600060208201905061348e600083018461346a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134d182613314565b810181811067ffffffffffffffff821117156134f0576134ef613499565b5b80604052505050565b6000613503613380565b905061350f82826134c8565b919050565b600067ffffffffffffffff82111561352f5761352e613499565b5b602082029050602081019050919050565b600080fd5b600061355861355384613514565b6134f9565b9050808382526020820190506020840283018581111561357b5761357a613540565b5b835b818110156135a4578061359088826133dd565b84526020840193505060208101905061357d565b5050509392505050565b600082601f8301126135c3576135c2613494565b5b81356135d3848260208601613545565b91505092915050565b6135e58161345e565b81146135f057600080fd5b50565b600081359050613602816135dc565b92915050565b6000806040838503121561361f5761361e61338a565b5b600083013567ffffffffffffffff81111561363d5761363c61338f565b5b613649858286016135ae565b925050602061365a858286016135f3565b9150509250929050565b60008060006060848603121561367d5761367c61338a565b5b600061368b868287016133dd565b935050602061369c868287016133dd565b92505060406136ad86828701613409565b9150509250925092565b600080604083850312156136ce576136cd61338a565b5b60006136dc858286016133dd565b92505060206136ed858286016133dd565b9150509250929050565b600060ff82169050919050565b61370d816136f7565b82525050565b60006020820190506137286000830184613704565b92915050565b6000819050919050565b6137418161372e565b82525050565b600060208201905061375c6000830184613738565b92915050565b6000602082840312156137785761377761338a565b5b6000613786848285016133dd565b91505092915050565b60006060820190506137a460008301866132a4565b6137b160208301856132a4565b6137be60408301846132a4565b949350505050565b6137cf816133b4565b82525050565b60006020820190506137ea60008301846137c6565b92915050565b6000602082840312156138065761380561338a565b5b600061381484828501613409565b91505092915050565b600080604083850312156138345761383361338a565b5b6000613842858286016133dd565b9250506020613853858286016135f3565b9150509250929050565b600080604083850312156138745761387361338a565b5b600061388285828601613409565b925050602061389385828601613409565b9150509250929050565b6138a6816136f7565b81146138b157600080fd5b50565b6000813590506138c38161389d565b92915050565b6138d28161372e565b81146138dd57600080fd5b50565b6000813590506138ef816138c9565b92915050565b600080600080600080600060e0888a0312156139145761391361338a565b5b60006139228a828b016133dd565b97505060206139338a828b016133dd565b96505060406139448a828b01613409565b95505060606139558a828b01613409565b94505060806139668a828b016138b4565b93505060a06139778a828b016138e0565b92505060c06139888a828b016138e0565b91505092959891949750929550565b6000602082840312156139ad576139ac61338a565b5b60006139bb848285016135f3565b91505092915050565b6000806000606084860312156139dd576139dc61338a565b5b60006139eb86828701613409565b93505060206139fc86828701613409565b9250506040613a0d86828701613409565b9150509250925092565b6000819050919050565b6000613a3c613a37613a3284613394565b613a17565b613394565b9050919050565b6000613a4e82613a21565b9050919050565b6000613a6082613a43565b9050919050565b613a7081613a55565b82525050565b6000602082019050613a8b6000830184613a67565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613ad857607f821691505b602082108103613aeb57613aea613a91565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b5a8261329a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b8c57613b8b613b20565b5b600182019050919050565b6000613ba28261329a565b9150613bad8361329a565b9250828201905080821115613bc557613bc4613b20565b5b92915050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000613c01600f836132d9565b9150613c0c82613bcb565b602082019050919050565b60006020820190508181036000830152613c3081613bf4565b9050919050565b6000604082019050613c4c60008301856137c6565b613c5960208301846132a4565b9392505050565b600081519050613c6f816135dc565b92915050565b600060208284031215613c8b57613c8a61338a565b5b6000613c9984828501613c60565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613cfe6025836132d9565b9150613d0982613ca2565b604082019050919050565b60006020820190508181036000830152613d2d81613cf1565b9050919050565b6000613d3f8261329a565b9150613d4a8361329a565b9250828202613d588161329a565b91508282048414831517613d6f57613d6e613b20565b5b5092915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b6000613dac6017836132d9565b9150613db782613d76565b602082019050919050565b60006020820190508181036000830152613ddb81613d9f565b9050919050565b600060c082019050613df76000830189613738565b613e0460208301886137c6565b613e1160408301876137c6565b613e1e60608301866132a4565b613e2b60808301856132a4565b613e3860a08301846132a4565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613e84600283613e43565b9150613e8f82613e4e565b600282019050919050565b6000819050919050565b613eb5613eb08261372e565b613e9a565b82525050565b6000613ec682613e77565b9150613ed28285613ea4565b602082019150613ee28284613ea4565b6020820191508190509392505050565b6000608082019050613f076000830187613738565b613f146020830186613704565b613f216040830185613738565b613f2e6060830184613738565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000613f6d600e836132d9565b9150613f7882613f37565b602082019050919050565b60006020820190508181036000830152613f9c81613f60565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613fff6026836132d9565b915061400a82613fa3565b604082019050919050565b6000602082019050818103600083015261402e81613ff2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140916024836132d9565b915061409c82614035565b604082019050919050565b600060208201905081810360008301526140c081614084565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141236022836132d9565b915061412e826140c7565b604082019050919050565b6000602082019050818103600083015261415281614116565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061418f6020836132d9565b915061419a82614159565b602082019050919050565b600060208201905081810360008301526141be81614182565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006141fb601d836132d9565b9150614206826141c5565b602082019050919050565b6000602082019050818103600083015261422a816141ee565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061428d6029836132d9565b915061429882614231565b604082019050919050565b600060208201905081810360008301526142bc81614280565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006142f96013836132d9565b9150614304826142c3565b602082019050919050565b60006020820190508181036000830152614328816142ec565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b60006143656013836132d9565b91506143708261432f565b602082019050919050565b6000602082019050818103600083015261439481614358565b9050919050565b7f4d61785478206c696d6974206578636565646564000000000000000000000000600082015250565b60006143d16014836132d9565b91506143dc8261439b565b602082019050919050565b60006020820190508181036000830152614400816143c4565b9050919050565b60006144128261329a565b915061441d8361329a565b925082820390508181111561443557614434613b20565b5b92915050565b7f4561726c792062757965722073656c6c206c696d697420657863656564656400600082015250565b6000614471601f836132d9565b915061447c8261443b565b602082019050919050565b600060208201905081810360008301526144a081614464565b9050919050565b7f5741495420504c45415345000000000000000000000000000000000000000000600082015250565b60006144dd600b836132d9565b91506144e8826144a7565b602082019050919050565b6000602082019050818103600083015261450c816144d0565b9050919050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b60006145496015836132d9565b915061455482614513565b602082019050919050565b600060208201905081810360008301526145788161453c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145b98261329a565b91506145c48361329a565b9250826145d4576145d361457f565b5b828204905092915050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461460c81613ac0565b61461681866145df565b94506001821660008114614631576001811461464657614679565b60ff1983168652811515820286019350614679565b61464f856145ea565b60005b8381101561467157815481890152600182019150602081019050614652565b838801955050505b50505092915050565b600061468e82846145ff565b915081905092915050565b600060a0820190506146ae6000830188613738565b6146bb6020830187613738565b6146c86040830186613738565b6146d560608301856132a4565b6146e260808301846137c6565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614722601d836132d9565b915061472d826146ec565b602082019050919050565b6000602082019050818103600083015261475181614715565b9050919050565b50565b60006147686000836145df565b915061477382614758565b600082019050919050565b60006147898261475b565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006147ef603a836132d9565b91506147fa82614793565b604082019050919050565b6000602082019050818103600083015261481e816147e2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006148816025836132d9565b915061488c82614825565b604082019050919050565b600060208201905081810360008301526148b081614874565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006149136023836132d9565b915061491e826148b7565b604082019050919050565b6000602082019050818103600083015261494281614906565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149a56026836132d9565b91506149b082614949565b604082019050919050565b600060208201905081810360008301526149d481614998565b9050919050565b6000815190506149ea816133c6565b92915050565b600060208284031215614a0657614a0561338a565b5b6000614a14848285016149db565b91505092915050565b6000819050919050565b6000614a42614a3d614a3884614a1d565b613a17565b61329a565b9050919050565b614a5281614a27565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a8d816133b4565b82525050565b6000614a9f8383614a84565b60208301905092915050565b6000602082019050919050565b6000614ac382614a58565b614acd8185614a63565b9350614ad883614a74565b8060005b83811015614b09578151614af08882614a93565b9750614afb83614aab565b925050600181019050614adc565b5085935050505092915050565b600060a082019050614b2b60008301886132a4565b614b386020830187614a49565b8181036040830152614b4a8186614ab8565b9050614b5960608301856137c6565b614b6660808301846132a4565b969550505050505056fea2646970667358221220b98c33c7e4b999998a63915a65f4d04223f358f025374386b81d4246b2110d5b64736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106103395760003560e01c80638cd4426d116101ab578063c26d7be0116100f7578063e25c392311610095578063f887ea401161006f578063f887ea4014610c3f578063f8b45b0514610c6a578063fabb0b4f14610c95578063fe575a8714610cc057610340565b8063e25c392314610bc2578063e9dae5ed14610bed578063f2fde38b14610c1657610340565b8063d505accf116100d1578063d505accf14610b0a578063dd62ed3e14610b33578063e01af92c14610b70578063e177246e14610b9957610340565b8063c26d7be014610a79578063c4590d3f14610ab6578063d00efb2f14610adf57610340565b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb146109bf578063adf18693146109fc578063b48e665e14610a25578063b5d7ab9a14610a5057610340565b8063a457c2d71461092e578063a8aa1b311461096b578063a8f43a601461099657610340565b80638cd4426d146108305780638da5cb5b14610859578063950e40501461088457806395d89b41146108af5780639ccde992146108da5780639e252f001461090557610340565b80634d2ff7c111610285578063715018a611610223578063751039fc116101fd578063751039fc1461079a57806375f0a874146107b15780637ecebe00146107dc5780638a8c523c1461081957610340565b8063715018a61461072b578063728f8eea146107425780637437681e1461076f57610340565b806365cf7c9b1161025f57806365cf7c9b1461066d5780636a42b8f8146106985780636ddd1713146106c357806370a08231146106ee57610340565b80634d2ff7c1146105ca5780634fbee193146106075780635d098b381461064457610340565b8063255f40b6116102f257806339509351116102cc57806339509351146104e857806339937cde14610525578063445418ce146105625780634ada218b1461059f57610340565b8063255f40b614610469578063313ce567146104925780633644e515146104bd57610340565b80630445b6671461034557806306fdde0314610370578063095ea7b31461039b5780630e85d1e3146103d857806318160ddd1461040157806323b872dd1461042c57610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a610cfd565b60405161036791906132b3565b60405180910390f35b34801561037c57600080fd5b50610385610d03565b604051610392919061335e565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd919061341e565b610d95565b6040516103cf9190613479565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190613608565b610db8565b005b34801561040d57600080fd5b50610416610e55565b60405161042391906132b3565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e9190613664565b610e5f565b6040516104609190613479565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b91906136b7565b610e8e565b005b34801561049e57600080fd5b506104a7610f47565b6040516104b49190613713565b60405180910390f35b3480156104c957600080fd5b506104d2610f50565b6040516104df9190613747565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a919061341e565b610fad565b60405161051c9190613479565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190613762565b610fe4565b6040516105599190613479565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190613762565b611004565b60405161059691906132b3565b60405180910390f35b3480156105ab57600080fd5b506105b461101c565b6040516105c19190613479565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190613762565b61102f565b6040516105fe9190613479565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190613762565b61104f565b60405161063b9190613479565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190613762565b61106f565b005b34801561067957600080fd5b506106826110bb565b60405161068f91906132b3565b60405180910390f35b3480156106a457600080fd5b506106ad6110c1565b6040516106ba91906132b3565b60405180910390f35b3480156106cf57600080fd5b506106d86110c7565b6040516106e59190613479565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190613762565b6110da565b60405161072291906132b3565b60405180910390f35b34801561073757600080fd5b50610740611122565b005b34801561074e57600080fd5b50610757611136565b6040516107669392919061378f565b60405180910390f35b34801561077b57600080fd5b5061078461114e565b60405161079191906132b3565b60405180910390f35b3480156107a657600080fd5b506107af611154565b005b3480156107bd57600080fd5b506107c6611185565b6040516107d391906137d5565b60405180910390f35b3480156107e857600080fd5b5061080360048036038101906107fe9190613762565b6111ab565b60405161081091906132b3565b60405180910390f35b34801561082557600080fd5b5061082e6111c3565b005b34801561083c57600080fd5b506108576004803603810190610852919061341e565b61126c565b005b34801561086557600080fd5b5061086e611311565b60405161087b91906137d5565b60405180910390f35b34801561089057600080fd5b5061089961133b565b6040516108a691906132b3565b60405180910390f35b3480156108bb57600080fd5b506108c4611341565b6040516108d1919061335e565b60405180910390f35b3480156108e657600080fd5b506108ef6113d3565b6040516108fc9190613479565b60405180910390f35b34801561091157600080fd5b5061092c600480360381019061092791906137f0565b6113e6565b005b34801561093a57600080fd5b506109556004803603810190610950919061341e565b611434565b6040516109629190613479565b60405180910390f35b34801561097757600080fd5b506109806114ab565b60405161098d91906137d5565b60405180910390f35b3480156109a257600080fd5b506109bd60048036038101906109b89190613608565b6114d1565b005b3480156109cb57600080fd5b506109e660048036038101906109e1919061341e565b61156e565b6040516109f39190613479565b60405180910390f35b348015610a0857600080fd5b50610a236004803603810190610a1e919061381d565b611591565b005b348015610a3157600080fd5b50610a3a6115f4565b604051610a4791906132b3565b60405180910390f35b348015610a5c57600080fd5b50610a776004803603810190610a7291906137f0565b6115fa565b005b348015610a8557600080fd5b50610aa06004803603810190610a9b9190613762565b61161b565b604051610aad91906132b3565b60405180910390f35b348015610ac257600080fd5b50610add6004803603810190610ad8919061385d565b611633565b005b348015610aeb57600080fd5b50610af461166b565b604051610b0191906132b3565b60405180910390f35b348015610b1657600080fd5b50610b316004803603810190610b2c91906138f5565b611671565b005b348015610b3f57600080fd5b50610b5a6004803603810190610b5591906136b7565b61196a565b604051610b6791906132b3565b60405180910390f35b348015610b7c57600080fd5b50610b976004803603810190610b929190613997565b6119f1565b005b348015610ba557600080fd5b50610bc06004803603810190610bbb91906137f0565b611a16565b005b348015610bce57600080fd5b50610bd7611a28565b604051610be491906132b3565b60405180910390f35b348015610bf957600080fd5b50610c146004803603810190610c0f91906139c4565b611a2e565b005b348015610c2257600080fd5b50610c3d6004803603810190610c389190613762565b611a79565b005b348015610c4b57600080fd5b50610c54611afc565b604051610c619190613a76565b60405180910390f35b348015610c7657600080fd5b50610c7f611b22565b604051610c8c91906132b3565b60405180910390f35b348015610ca157600080fd5b50610caa611b28565b604051610cb791906132b3565b60405180910390f35b348015610ccc57600080fd5b50610ce76004803603810190610ce29190613762565b611b2e565b604051610cf49190613479565b60405180910390f35b60105481565b606060038054610d1290613ac0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e90613ac0565b8015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050905090565b600080610da0611b4e565b9050610dad818585611b56565b600191505092915050565b610dc0611d1f565b60005b8251811015610e505781600b6000858481518110610de457610de3613af1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e4890613b4f565b915050610dc3565b505050565b6000600254905090565b600080610e6a611b4e565b9050610e77858285611d9d565b610e82858585611e29565b60019150509392505050565b610e96611d1f565b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4330837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611b56565b5050565b60006009905090565b60007f00000000000000000000000000000000000000000000000000000000000000014614610f8657610f81612a92565b610fa8565b7f067311854600fd3f2fbd77385a3922be070b2e2b4dbdde34d27f05fb3f3633f45b905090565b600080610fb8611b4e565b9050610fd9818585610fca858961196a565b610fd49190613b97565b611b56565b600191505092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915090505481565b600f60169054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b611077611d1f565b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b60145481565b600f60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61112a611d1f565b6111346000612b1e565b565b601a8060000154908060010154908060020154905083565b60125481565b61115c611d1f565b611164610e55565b601281905550611172610e55565b6011819055506000601a60020181905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b6111cb611d1f565b600f60169054906101000a900460ff161561121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290613c17565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60156101000a81548160ff0219169083151502179055506032601a600201819055504360178190555042601881905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016112c9929190613c37565b6020604051808303816000875af11580156112e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130c9190613c75565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b60606004805461135090613ac0565b80601f016020809104026020016040519081016040528092919081815260200182805461137c90613ac0565b80156113c95780601f1061139e576101008083540402835291602001916113c9565b820191906000526020600020905b8154815290600101906020018083116113ac57829003601f168201915b5050505050905090565b600f60179054906101000a900460ff1681565b61143181600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612be490919063ffffffff16565b50565b60008061143f611b4e565b9050600061144d828661196a565b905083811015611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990613d14565b60405180910390fd5b61149f8286868403611b56565b60019250505092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114d9611d1f565b60005b82518110156115695781600760008584815181106114fd576114fc613af1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061156190613b4f565b9150506114dc565b505050565b600080611579611b4e565b9050611586818585611e29565b600191505092915050565b611599611d1f565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60165481565b611602611d1f565b633b9aca00816116129190613d34565b60108190555050565b600c6020528060005260406000206000915090505481565b61163b611d1f565b633b9aca008261164b9190613d34565b601281905550633b9aca00816116619190613d34565b6011819055505050565b60175481565b428410156116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90613dc2565b60405180910390fd5b600060016116c0610f50565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161174896959493929190613de2565b6040516020818303038152906040528051906020012060405160200161176f929190613ebb565b60405160208183030381529060405280519060200120858585604051600081526020016040526040516117a59493929190613ef2565b6020604051602081039080840390855afa1580156117c7573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561183b57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61187a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187190613f83565b60405180910390fd5b85600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161195991906132b3565b60405180910390a350505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119f9611d1f565b80600f60156101000a81548160ff02191690831515021790555050565b611a1e611d1f565b8060148190555050565b60135481565b611a36611d1f565b604051806060016040528084815260200183815260200182815250601a600082015181600001556020820151816001015560408201518160020155905050505050565b611a81611d1f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae790614015565b60405180910390fd5b611af981612b1e565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b60155481565b600b6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc906140a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b90614139565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d1291906132b3565b60405180910390a3505050565b611d27611b4e565b73ffffffffffffffffffffffffffffffffffffffff16611d45611311565b73ffffffffffffffffffffffffffffffffffffffff1614611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d92906141a5565b60405180910390fd5b565b6000611da9848461196a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611e235781811015611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c90614211565b60405180910390fd5b611e228484848403611b56565b5b50505050565b60008111611e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e63906142a3565b60405180910390fd5b600f60149054906101000a900460ff1680611ed05750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f245750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f3957611f34838383612cd8565b612a8d565b600f60169054906101000a900460ff16611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f9061430f565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561202c5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61206b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120629061437b565b60405180910390fd5b600f60179054906101000a900460ff161580156120965750426018546019546120949190613b97565b105b156120f8576001600f60176101000a81548160ff021916908315150217905550604051806060016040528060038152602001600381526020016000815250601a6000820151816000015560208201518160010155604082015181600201559050505b426016546018546121099190613b97565b111561220357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121b35750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121fe576012548111156121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f4906143e7565b60405180910390fd5b5b612249565b601254811115612248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223f906143e7565b60405180910390fd5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461250757600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124335762015180600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261233f9190614407565b1061234d5760006013819055505b60135481600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239b9190613b97565b11156123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d390614487565b60405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461242b9190613b97565b925050819055505b42601454600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124819190613b97565b11156124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b9906144f3565b60405180910390fd5b42600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612746574260165460185461256d9190613b97565b1180156125c45750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561261a5760011515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050505b60115481612627846110da565b6126319190613b97565b1115612672576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126699061455f565b60405180910390fd5b42601454600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c09190613b97565b1115612701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f8906144f3565b60405180910390fd5b42600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127ec5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156128065750426016546018546128049190613b97565b115b15612864576001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128df576064601a60010154836128ce9190613d34565b6128d891906145ae565b90506129d0565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156129865750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129af576064601a600001548361299e9190613d34565b6129a891906145ae565b90506129cf565b6064601a60020154836129c29190613d34565b6129cc91906145ae565b90505b5b600f60159054906101000a900460ff168015612a395750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612a525750600f60149054906101000a900460ff16155b15612a6057612a5f612f4e565b5b612a7684848385612a719190614407565b612cd8565b6000811115612a8b57612a8a843083612cd8565b5b505b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6003604051612ac49190614682565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001612b03959493929190614699565b60405160208183030381529060405280519060200120905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1e90614738565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612c4d9061477e565b60006040518083038185875af1925050503d8060008114612c8a576040519150601f19603f3d011682016040523d82523d6000602084013e612c8f565b606091505b5050905080612cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cca90614805565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3e90614897565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dad90614929565b60405180910390fd5b612dc183838361307a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3e906149bb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f3591906132b3565b60405180910390a3612f4884848461307f565b50505050565b600f60149054906101000a900460ff16613078576001600f60146101000a81548160ff0219169083151502179055506000612f88306110da565b9050601054811061305b57600060105490506012548210158015612fb0575060115460105414155b15612fbb5760125490505b60115460105403612fee576127106019612fd3610e55565b612fdd9190613d34565b612fe791906145ae565b6010819055505b6000479050612ffc82613084565b6000814761300a9190614407565b905061305781600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612be490919063ffffffff16565b5050505b506000600f60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff8111156130a1576130a0613499565b5b6040519080825280602002602001820160405280156130cf5781602001602082028036833780820191505090505b50905030816000815181106130e7576130e6613af1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b291906149f0565b816001815181106131c6576131c5613af1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613264959493929190614b16565b600060405180830381600087803b15801561327e57600080fd5b505af1158015613292573d6000803e3d6000fd5b505050505050565b6000819050919050565b6132ad8161329a565b82525050565b60006020820190506132c860008301846132a4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133085780820151818401526020810190506132ed565b60008484015250505050565b6000601f19601f8301169050919050565b6000613330826132ce565b61333a81856132d9565b935061334a8185602086016132ea565b61335381613314565b840191505092915050565b600060208201905081810360008301526133788184613325565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133bf82613394565b9050919050565b6133cf816133b4565b81146133da57600080fd5b50565b6000813590506133ec816133c6565b92915050565b6133fb8161329a565b811461340657600080fd5b50565b600081359050613418816133f2565b92915050565b600080604083850312156134355761343461338a565b5b6000613443858286016133dd565b925050602061345485828601613409565b9150509250929050565b60008115159050919050565b6134738161345e565b82525050565b600060208201905061348e600083018461346a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134d182613314565b810181811067ffffffffffffffff821117156134f0576134ef613499565b5b80604052505050565b6000613503613380565b905061350f82826134c8565b919050565b600067ffffffffffffffff82111561352f5761352e613499565b5b602082029050602081019050919050565b600080fd5b600061355861355384613514565b6134f9565b9050808382526020820190506020840283018581111561357b5761357a613540565b5b835b818110156135a4578061359088826133dd565b84526020840193505060208101905061357d565b5050509392505050565b600082601f8301126135c3576135c2613494565b5b81356135d3848260208601613545565b91505092915050565b6135e58161345e565b81146135f057600080fd5b50565b600081359050613602816135dc565b92915050565b6000806040838503121561361f5761361e61338a565b5b600083013567ffffffffffffffff81111561363d5761363c61338f565b5b613649858286016135ae565b925050602061365a858286016135f3565b9150509250929050565b60008060006060848603121561367d5761367c61338a565b5b600061368b868287016133dd565b935050602061369c868287016133dd565b92505060406136ad86828701613409565b9150509250925092565b600080604083850312156136ce576136cd61338a565b5b60006136dc858286016133dd565b92505060206136ed858286016133dd565b9150509250929050565b600060ff82169050919050565b61370d816136f7565b82525050565b60006020820190506137286000830184613704565b92915050565b6000819050919050565b6137418161372e565b82525050565b600060208201905061375c6000830184613738565b92915050565b6000602082840312156137785761377761338a565b5b6000613786848285016133dd565b91505092915050565b60006060820190506137a460008301866132a4565b6137b160208301856132a4565b6137be60408301846132a4565b949350505050565b6137cf816133b4565b82525050565b60006020820190506137ea60008301846137c6565b92915050565b6000602082840312156138065761380561338a565b5b600061381484828501613409565b91505092915050565b600080604083850312156138345761383361338a565b5b6000613842858286016133dd565b9250506020613853858286016135f3565b9150509250929050565b600080604083850312156138745761387361338a565b5b600061388285828601613409565b925050602061389385828601613409565b9150509250929050565b6138a6816136f7565b81146138b157600080fd5b50565b6000813590506138c38161389d565b92915050565b6138d28161372e565b81146138dd57600080fd5b50565b6000813590506138ef816138c9565b92915050565b600080600080600080600060e0888a0312156139145761391361338a565b5b60006139228a828b016133dd565b97505060206139338a828b016133dd565b96505060406139448a828b01613409565b95505060606139558a828b01613409565b94505060806139668a828b016138b4565b93505060a06139778a828b016138e0565b92505060c06139888a828b016138e0565b91505092959891949750929550565b6000602082840312156139ad576139ac61338a565b5b60006139bb848285016135f3565b91505092915050565b6000806000606084860312156139dd576139dc61338a565b5b60006139eb86828701613409565b93505060206139fc86828701613409565b9250506040613a0d86828701613409565b9150509250925092565b6000819050919050565b6000613a3c613a37613a3284613394565b613a17565b613394565b9050919050565b6000613a4e82613a21565b9050919050565b6000613a6082613a43565b9050919050565b613a7081613a55565b82525050565b6000602082019050613a8b6000830184613a67565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613ad857607f821691505b602082108103613aeb57613aea613a91565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b5a8261329a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b8c57613b8b613b20565b5b600182019050919050565b6000613ba28261329a565b9150613bad8361329a565b9250828201905080821115613bc557613bc4613b20565b5b92915050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000613c01600f836132d9565b9150613c0c82613bcb565b602082019050919050565b60006020820190508181036000830152613c3081613bf4565b9050919050565b6000604082019050613c4c60008301856137c6565b613c5960208301846132a4565b9392505050565b600081519050613c6f816135dc565b92915050565b600060208284031215613c8b57613c8a61338a565b5b6000613c9984828501613c60565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613cfe6025836132d9565b9150613d0982613ca2565b604082019050919050565b60006020820190508181036000830152613d2d81613cf1565b9050919050565b6000613d3f8261329a565b9150613d4a8361329a565b9250828202613d588161329a565b91508282048414831517613d6f57613d6e613b20565b5b5092915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b6000613dac6017836132d9565b9150613db782613d76565b602082019050919050565b60006020820190508181036000830152613ddb81613d9f565b9050919050565b600060c082019050613df76000830189613738565b613e0460208301886137c6565b613e1160408301876137c6565b613e1e60608301866132a4565b613e2b60808301856132a4565b613e3860a08301846132a4565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613e84600283613e43565b9150613e8f82613e4e565b600282019050919050565b6000819050919050565b613eb5613eb08261372e565b613e9a565b82525050565b6000613ec682613e77565b9150613ed28285613ea4565b602082019150613ee28284613ea4565b6020820191508190509392505050565b6000608082019050613f076000830187613738565b613f146020830186613704565b613f216040830185613738565b613f2e6060830184613738565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000613f6d600e836132d9565b9150613f7882613f37565b602082019050919050565b60006020820190508181036000830152613f9c81613f60565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613fff6026836132d9565b915061400a82613fa3565b604082019050919050565b6000602082019050818103600083015261402e81613ff2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140916024836132d9565b915061409c82614035565b604082019050919050565b600060208201905081810360008301526140c081614084565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141236022836132d9565b915061412e826140c7565b604082019050919050565b6000602082019050818103600083015261415281614116565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061418f6020836132d9565b915061419a82614159565b602082019050919050565b600060208201905081810360008301526141be81614182565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006141fb601d836132d9565b9150614206826141c5565b602082019050919050565b6000602082019050818103600083015261422a816141ee565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061428d6029836132d9565b915061429882614231565b604082019050919050565b600060208201905081810360008301526142bc81614280565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006142f96013836132d9565b9150614304826142c3565b602082019050919050565b60006020820190508181036000830152614328816142ec565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b60006143656013836132d9565b91506143708261432f565b602082019050919050565b6000602082019050818103600083015261439481614358565b9050919050565b7f4d61785478206c696d6974206578636565646564000000000000000000000000600082015250565b60006143d16014836132d9565b91506143dc8261439b565b602082019050919050565b60006020820190508181036000830152614400816143c4565b9050919050565b60006144128261329a565b915061441d8361329a565b925082820390508181111561443557614434613b20565b5b92915050565b7f4561726c792062757965722073656c6c206c696d697420657863656564656400600082015250565b6000614471601f836132d9565b915061447c8261443b565b602082019050919050565b600060208201905081810360008301526144a081614464565b9050919050565b7f5741495420504c45415345000000000000000000000000000000000000000000600082015250565b60006144dd600b836132d9565b91506144e8826144a7565b602082019050919050565b6000602082019050818103600083015261450c816144d0565b9050919050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b60006145496015836132d9565b915061455482614513565b602082019050919050565b600060208201905081810360008301526145788161453c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145b98261329a565b91506145c48361329a565b9250826145d4576145d361457f565b5b828204905092915050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461460c81613ac0565b61461681866145df565b94506001821660008114614631576001811461464657614679565b60ff1983168652811515820286019350614679565b61464f856145ea565b60005b8381101561467157815481890152600182019150602081019050614652565b838801955050505b50505092915050565b600061468e82846145ff565b915081905092915050565b600060a0820190506146ae6000830188613738565b6146bb6020830187613738565b6146c86040830186613738565b6146d560608301856132a4565b6146e260808301846137c6565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614722601d836132d9565b915061472d826146ec565b602082019050919050565b6000602082019050818103600083015261475181614715565b9050919050565b50565b60006147686000836145df565b915061477382614758565b600082019050919050565b60006147898261475b565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006147ef603a836132d9565b91506147fa82614793565b604082019050919050565b6000602082019050818103600083015261481e816147e2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006148816025836132d9565b915061488c82614825565b604082019050919050565b600060208201905081810360008301526148b081614874565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006149136023836132d9565b915061491e826148b7565b604082019050919050565b6000602082019050818103600083015261494281614906565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149a56026836132d9565b91506149b082614949565b604082019050919050565b600060208201905081810360008301526149d481614998565b9050919050565b6000815190506149ea816133c6565b92915050565b600060208284031215614a0657614a0561338a565b5b6000614a14848285016149db565b91505092915050565b6000819050919050565b6000614a42614a3d614a3884614a1d565b613a17565b61329a565b9050919050565b614a5281614a27565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a8d816133b4565b82525050565b6000614a9f8383614a84565b60208301905092915050565b6000602082019050919050565b6000614ac382614a58565b614acd8185614a63565b9350614ad883614a74565b8060005b83811015614b09578151614af08882614a93565b9750614afb83614aab565b925050600181019050614adc565b5085935050505092915050565b600060a082019050614b2b60008301886132a4565b614b386020830187614a49565b8181036040830152614b4a8186614ab8565b9050614b5960608301856137c6565b614b6660808301846132a4565b969550505050505056fea2646970667358221220b98c33c7e4b999998a63915a65f4d04223f358f025374386b81d4246b2110d5b64736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
11486:8216:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12244:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3475:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4414:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19176:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3799:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4624:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17757:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13525:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7845:179;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4928:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11708:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11771:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12178:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11639:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11569:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18686:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12558:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12413:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12148:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3916:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1354:103;;;;;;;;;;;;;:::i;:::-;;12752:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12326:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18276:147;;;;;;;;;;;;;:::i;:::-;;12035:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3192:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17990:277;;;;;;;;;;;;;:::i;:::-;;19508:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1117:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12595:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3584:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12211:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19389:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5175:437;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12009:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18950:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4052:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18806:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12476:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17470:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11911:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18522:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12525:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6308:1529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4254:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17366:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18432:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12369:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17589:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1466:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11981:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12279:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12440:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11846:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12244:28;;;;:::o;3475:100::-;3529:13;3562:5;3555:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3475:100;:::o;4414:201::-;4497:4;4514:13;4530:12;:10;:12::i;:::-;4514:28;;4553:32;4562:5;4569:7;4578:6;4553:8;:32::i;:::-;4603:4;4596:11;;;4414:201;;;;:::o;19176:204::-;1075:13;:11;:13::i;:::-;19271:9:::1;19267:106;19290:8;:15;19286:1;:19;19267:106;;;19355:6;19326:13;:26;19340:8;19349:1;19340:11;;;;;;;;:::i;:::-;;;;;;;;19326:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19307:3;;;;;:::i;:::-;;;;19267:106;;;;19176:204:::0;;:::o;3799:108::-;3860:7;3887:12;;3880:19;;3799:108;:::o;4624:295::-;4755:4;4772:15;4790:12;:10;:12::i;:::-;4772:30;;4813:38;4829:4;4835:7;4844:6;4813:15;:38::i;:::-;4862:27;4872:4;4878:2;4882:6;4862:9;:27::i;:::-;4907:4;4900:11;;;4624:295;;;;;:::o;17757:224::-;1075:13;:11;:13::i;:::-;17865:9:::1;17848:6;;:27;;;;;;;;;;;;;;;;;;17893:7;17886:4;;:14;;;;;;;;;;;;;;;;;;17911:62;17928:4;17943:9;17955:17;17911:8;:62::i;:::-;17757:224:::0;;:::o;13525:92::-;13583:5;13608:1;13601:8;;13525:92;:::o;7845:179::-;7902:7;7946:16;7929:13;:33;:87;;7992:24;:22;:24::i;:::-;7929:87;;;7965:24;7929:87;7922:94;;7845:179;:::o;4928:238::-;5016:4;5033:13;5049:12;:10;:12::i;:::-;5033:28;;5072:64;5081:5;5088:7;5125:10;5097:25;5107:5;5114:7;5097:9;:25::i;:::-;:38;;;;:::i;:::-;5072:8;:64::i;:::-;5154:4;5147:11;;;4928:238;;;;:::o;11708:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;11771:68::-;;;;;;;;;;;;;;;;;:::o;12178:26::-;;;;;;;;;;;;;:::o;11639:62::-;;;;;;;;;;;;;;;;;;;;;;:::o;11569:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;18686:111::-;1075:13;:11;:13::i;:::-;18780:9:::1;18762:15;;:27;;;;;;;;;;;;;;;;;;18686:111:::0;:::o;12558:30::-;;;;:::o;12413:20::-;;;;:::o;12148:23::-;;;;;;;;;;;;;:::o;3916:127::-;3990:7;4017:9;:18;4027:7;4017:18;;;;;;;;;;;;;;;;4010:25;;3916:127;;;:::o;1354:103::-;1075:13;:11;:13::i;:::-;1419:30:::1;1446:1;1419:18;:30::i;:::-;1354:103::o:0;12752:35::-;;;;;;;;;;;;;;;;;;;:::o;12326:36::-;;;;:::o;18276:147::-;1075:13;:11;:13::i;:::-;18337::::1;:11;:13::i;:::-;18329:5;:21;;;;18373:13;:11;:13::i;:::-;18361:9;:25;;;;18414:1;18397:5;:14;;:18;;;;18276:147::o:0;12035:75::-;;;;;;;;;;;;;:::o;3192:41::-;;;;;;;;;;;;;;;;;:::o;17990:277::-;1075:13;:11;:13::i;:::-;18053:14:::1;;;;;;;;;;;18052:15;18044:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18115:4;18098:14;;:21;;;;;;;;;;;;;;;;;;18144:4;18130:11;;:18;;;;;;;;;;;;;;;;;;18176:2;18159:5;:14;;:19;;;;18203:12;18189:11;:26;;;;18244:15;18226;:33;;;;17990:277::o:0;19508:132::-;19589:8;19582:25;;;19608:15;;;;;;;;;;;19625:6;19582:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19508:132;;:::o;1117:87::-;1163:7;1190:6;;;;;;;;;;;1183:13;;1117:87;:::o;12595:42::-;;;;:::o;3584:104::-;3640:13;3673:7;3666:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3584:104;:::o;12211:23::-;;;;;;;;;;;;;:::o;19389:110::-;19446:45;19481:9;19454:15;;;;;;;;;;;19446:34;;;;:45;;;;:::i;:::-;19389:110;:::o;5175:437::-;5268:4;5285:13;5301:12;:10;:12::i;:::-;5285:28;;5324:24;5351:25;5361:5;5368:7;5351:9;:25::i;:::-;5324:52;;5415:15;5395:16;:35;;5387:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5508:60;5517:5;5524:7;5552:15;5533:16;:34;5508:8;:60::i;:::-;5600:4;5593:11;;;;5175:437;;;;:::o;12009:19::-;;;;;;;;;;;;;:::o;18950:217::-;1075:13;:11;:13::i;:::-;19054:9:::1;19050:110;19073:8;:15;19069:1;:19;19050:110;;;19143:5;19109:18;:31;19128:8;19137:1;19128:11;;;;;;;;:::i;:::-;;;;;;;;19109:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19090:3;;;;;:::i;:::-;;;;19050:110;;;;18950:217:::0;;:::o;4052:193::-;4131:4;4148:13;4164:12;:10;:12::i;:::-;4148:28;;4187;4197:5;4204:2;4208:6;4187:9;:28::i;:::-;4233:4;4226:11;;;4052:193;;;;:::o;18806:135::-;1075:13;:11;:13::i;:::-;18928:5:::1;18897:18;:28;18916:8;18897:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18806:135:::0;;:::o;12476:42::-;;;;:::o;17470:110::-;1075:13;:11;:13::i;:::-;17567:5:::1;17558:6;:14;;;;:::i;:::-;17542:13;:30;;;;17470:110:::0;:::o;11911:60::-;;;;;;;;;;;;;;;;;:::o;18522:155::-;1075:13;:11;:13::i;:::-;18623:5:::1;18614:6;:14;;;;:::i;:::-;18606:5;:22;;;;18664:5;18651:10;:18;;;;:::i;:::-;18639:9;:30;;;;18522:155:::0;;:::o;12525:26::-;;;;:::o;6308:1529::-;6536:15;6524:8;:27;;6516:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6749:24;6776:827;6916:18;:16;:18::i;:::-;7046:167;7248:5;7288:7;7330:5;7370:6;:13;7377:5;7370:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;7420:8;7001:458;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6961:525;;;;;;6836:673;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6804:724;;;;;;7547:1;7567;7587;6776:827;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6749:854;;7656:1;7628:30;;:16;:30;;;;:59;;;;;7682:5;7662:25;;:16;:25;;;7628:59;7620:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;7764:5;7723:11;:29;7735:16;7723:29;;;;;;;;;;;;;;;:38;7753:7;7723:38;;;;;;;;;;;;;;;:46;;;;6724:1057;7814:7;7798:31;;7807:5;7798:31;;;7823:5;7798:31;;;;;;:::i;:::-;;;;;;;;6308:1529;;;;;;;:::o;4254:151::-;4343:7;4370:11;:18;4382:5;4370:18;;;;;;;;;;;;;;;:27;4389:7;4370:27;;;;;;;;;;;;;;;;4363:34;;4254:151;;;;:::o;17366:95::-;1075:13;:11;:13::i;:::-;17447:6:::1;17433:11;;:20;;;;;;;;;;;;;;;;;;17366:95:::0;:::o;18432:81::-;1075:13;:11;:13::i;:::-;18501:4:::1;18493:5;:12;;;;18432:81:::0;:::o;12369:37::-;;;;:::o;17589:159::-;1075:13;:11;:13::i;:::-;17702:38:::1;;;;;;;;17708:7;17702:38;;;;17717:8;17702:38;;;;17727:12;17702:38;;::::0;17694:5:::1;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;17589:159:::0;;;:::o;1466:201::-;1075:13;:11;:13::i;:::-;1575:1:::1;1555:22;;:8;:22;;::::0;1547:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1631:28;1650:8;1631:18;:28::i;:::-;1466:201:::0;:::o;11981:21::-;;;;;;;;;;;;;:::o;12279:40::-;;;;:::o;12440:29::-;;;;:::o;11846:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;584:98::-;637:7;664:10;657:17;;584:98;:::o;9554:381::-;9707:1;9690:19;;:5;:19;;;9682:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9788:1;9769:21;;:7;:21;;;9761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9873:6;9843:11;:18;9855:5;9843:18;;;;;;;;;;;;;;;:27;9862:7;9843:27;;;;;;;;;;;;;;;:36;;;;9911:7;9895:32;;9904:5;9895:32;;;9920:6;9895:32;;;;;;:::i;:::-;;;;;;;;9554:381;;;:::o;1213:132::-;1288:12;:10;:12::i;:::-;1277:23;;:7;:5;:7::i;:::-;:23;;;1269:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1213:132::o;9944:453::-;10079:24;10106:25;10116:5;10123:7;10106:9;:25::i;:::-;10079:52;;10166:17;10146:16;:37;10142:248;;10228:6;10208:16;:26;;10200:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10312:51;10321:5;10328:7;10356:6;10337:16;:25;10312:8;:51::i;:::-;10142:248;10068:329;9944:453;;;:::o;13626:2746::-;13742:1;13733:6;:10;13725:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13807:8;;;;;;;;;;;:38;;;;13819:18;:26;13838:6;13819:26;;;;;;;;;;;;;;;;;;;;;;;;;13807:38;:71;;;;13849:18;:29;13868:9;13849:29;;;;;;;;;;;;;;;;;;;;;;;;;13807:71;13803:1914;;;13895:42;13911:6;13919:9;13930:6;13895:15;:42::i;:::-;13952:7;;13803:1914;14010:14;;;;;;;;;;;14002:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;14072:13;:21;14086:6;14072:21;;;;;;;;;;;;;;;;;;;;;;;;;14071:22;:51;;;;;14098:13;:24;14112:9;14098:24;;;;;;;;;;;;;;;;;;;;;;;;;14097:25;14071:51;14063:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;14165:11;;;;;;;;;;;14164:12;:69;;;;;14218:15;14200;;14180:17;;:35;;;;:::i;:::-;:53;14164:69;14161:197;;;14267:4;14253:11;;:18;;;;;;;;;;;;;;;;;;14298:14;;;;;;;;14304:1;14298:14;;;;14307:1;14298:14;;;;14310:1;14298:14;;;14290:5;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;14161:197;14414:15;14396;;14378;;:33;;;;:::i;:::-;:51;14375:267;;;14453:16;:24;14470:6;14453:24;;;;;;;;;;;;;;;;;;;;;;;;;14452:25;:57;;;;;14482:16;:27;14499:9;14482:27;;;;;;;;;;;;;;;;;;;;;;;;;14481:28;14452:57;14449:110;;;14529:5;;14519:6;:15;;14511:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14449:110;14375:267;;;14612:5;;14602:6;:15;;14594:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14375:267;14673:4;;;;;;;;;;;14663:14;;:6;:14;;;14660:573;;14701:10;:18;14712:6;14701:18;;;;;;;;;;;;;;;;;;;;;;;;;14698:379;;;14785:6;14764:9;:17;14774:6;14764:17;;;;;;;;;;;;;;;;14746:15;:35;;;;:::i;:::-;:45;14743:126;;14844:1;14819:22;:26;;;;14743:126;14939:22;;14929:6;14899:19;:27;14919:6;14899:27;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;:62;;14891:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;15051:6;15020:19;:27;15040:6;15020:27;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;14698:379;15132:15;15123:5;;15103:9;:17;15113:6;15103:17;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;15095:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15202:15;15182:9;:17;15192:6;15182:17;;;;;;;;;;;;;;;:35;;;;14660:573;15263:4;;;;;;;;;;;15250:17;;:9;:17;;;15247:459;;15326:15;15308;;15290;;:33;;;;:::i;:::-;:51;:83;;;;;15346:16;:27;15363:9;15346:27;;;;;;;;;;;;;;;;;;;;;;;;;15345:28;15290:83;15287:162;;;15425:4;15397:32;;:13;:24;15411:9;15397:24;;;;;;;;;;;;;;;;;;;;;;;;:32;15287:162;15508:9;;15498:6;15475:20;15485:9;15475;:20::i;:::-;:29;;;;:::i;:::-;:42;;15467:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;15602:15;15593:5;;15570:9;:20;15580:9;15570:20;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;:47;;15562:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15675:15;15652:9;:20;15662:9;15652:20;;;;;;;;;;;;;;;:38;;;;15247:459;15733:16;:27;15750:9;15733:27;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;15774:4;;;;;;;;;;;15764:14;;:6;:14;;;15733:45;:100;;;;;15818:15;15800;;15782;;:33;;;;:::i;:::-;:51;15733:100;15730:159;;;15873:4;15849:10;:21;15860:9;15849:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15730:159;15902:12;15944:4;;;;;;;;;;;15931:17;;:9;:17;;;15928:204;;15979:3;15966:5;:10;;;15957:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;15950:32;;15928:204;;;16011:4;;;;;;;;;;;16001:14;;:6;:14;;;:46;;;;;16020:16;:27;16037:9;16020:27;;;;;;;;;;;;;;;;;;;;;;;;;16019:28;16001:46;15998:134;;;16077:3;16065:5;:9;;;16056:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;16049:31;;15998:134;;;16129:3;16112:5;:14;;;16103:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;16096:36;;15998:134;15928:204;16151:11;;;;;;;;;;;:32;;;;;16179:4;;;;;;;;;;;16166:17;;:9;:17;;;16151:32;:45;;;;;16188:8;;;;;;;;;;;16187:9;16151:45;16147:61;;;16198:10;:8;:10::i;:::-;16147:61;16222:49;16238:6;16246:9;16266:4;16257:6;:13;;;;:::i;:::-;16222:15;:49::i;:::-;16292:1;16285:4;:8;16282:83;;;16309:44;16325:6;16341:4;16348;16309:15;:44::i;:::-;16282:83;13714:2658;13626:2746;;;;:::o;8032:458::-;8097:7;8198:95;8332:5;8316:23;;;;;;:::i;:::-;;;;;;;;8362:14;8399:13;8443:4;8165:302;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8137:345;;;;;;8117:365;;8032:458;:::o;1676:191::-;1750:16;1769:6;;;;;;;;;;;1750:25;;1795:8;1786:6;;:17;;;;;;;;;;;;;;;;;;1850:8;1819:40;;1840:8;1819:40;;;;;;;;;;;;1739:128;1676:191;:::o;11160:318::-;11275:6;11250:21;:31;;11242:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11330:12;11348:9;:14;;11370:6;11348:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11329:52;;;11400:7;11392:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11231:247;11160:318;;:::o;5621:679::-;5768:1;5752:18;;:4;:18;;;5744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5845:1;5831:16;;:2;:16;;;5823:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5901:38;5922:4;5928:2;5932:6;5901:20;:38::i;:::-;5953:19;5975:9;:15;5985:4;5975:15;;;;;;;;;;;;;;;;5953:37;;6024:6;6009:11;:21;;6001:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6141:6;6127:11;:20;6109:9;:15;6119:4;6109:15;;;;;;;;;;;;;;;:38;;;;6179:6;6162:9;:13;6172:2;6162:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;6230:2;6215:26;;6224:4;6215:26;;;6234:6;6215:26;;;;;;:::i;:::-;;;;;;;;6255:37;6275:4;6281:2;6285:6;6255:19;:37::i;:::-;5733:567;5621:679;;;:::o;16381:660::-;12834:8;;;;;;;;;;;12829:104;;12870:4;12859:8;;:15;;;;;;;;;;;;;;;;;;16430:23:::1;16456:24;16474:4;16456:9;:24::i;:::-;16430:50;;16514:13;;16495:15;:32;16491:543;;16544:20;16567:13;;16544:36;;16617:5;;16598:15;:24;;:54;;;;;16643:9;;16626:13;;:26;;16598:54;16595:79;;;16669:5;;16654:20;;16595:79;16712:9;;16695:13;;:26:::0;16692:73:::1;;16760:5;16755:2;16739:13;:11;:13::i;:::-;:18;;;;:::i;:::-;:26;;;;:::i;:::-;16723:13;:42;;;;16692:73;16792:22;16817:21;16792:46;;16853:30;16870:12;16853:16;:30::i;:::-;16898:20;16945:14;16921:21;:38;;;;:::i;:::-;16898:61;;16974:48;17009:12;16982:15;;;;;;;;;;;16974:34;;;;:48;;;;:::i;:::-;16529:505;;;16491:543;16419:622;12916:5:::0;12905:8;;:16;;;;;;;;;;;;;;;;;;12829:104;16381:660::o;10406:125::-;;;;:::o;10537:124::-;;;;:::o;17050:307::-;17116:21;17154:1;17140:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17116:40;;17185:4;17167;17172:1;17167:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17211:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17201:4;17206:1;17201:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17238:6;;;;;;;;;;;:57;;;17296:11;17309:1;17312:4;17326;17333:15;17238:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17105:252;17050:307;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:678::-;6446:6;6454;6503:2;6491:9;6482:7;6478:23;6474:32;6471:119;;;6509:79;;:::i;:::-;6471:119;6657:1;6646:9;6642:17;6629:31;6687:18;6679:6;6676:30;6673:117;;;6709:79;;:::i;:::-;6673:117;6814:78;6884:7;6875:6;6864:9;6860:22;6814:78;:::i;:::-;6804:88;;6600:302;6941:2;6967:50;7009:7;7000:6;6989:9;6985:22;6967:50;:::i;:::-;6957:60;;6912:115;6356:678;;;;;:::o;7040:619::-;7117:6;7125;7133;7182:2;7170:9;7161:7;7157:23;7153:32;7150:119;;;7188:79;;:::i;:::-;7150:119;7308:1;7333:53;7378:7;7369:6;7358:9;7354:22;7333:53;:::i;:::-;7323:63;;7279:117;7435:2;7461:53;7506:7;7497:6;7486:9;7482:22;7461:53;:::i;:::-;7451:63;;7406:118;7563:2;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7534:118;7040:619;;;;;:::o;7665:474::-;7733:6;7741;7790:2;7778:9;7769:7;7765:23;7761:32;7758:119;;;7796:79;;:::i;:::-;7758:119;7916:1;7941:53;7986:7;7977:6;7966:9;7962:22;7941:53;:::i;:::-;7931:63;;7887:117;8043:2;8069:53;8114:7;8105:6;8094:9;8090:22;8069:53;:::i;:::-;8059:63;;8014:118;7665:474;;;;;:::o;8145:86::-;8180:7;8220:4;8213:5;8209:16;8198:27;;8145:86;;;:::o;8237:112::-;8320:22;8336:5;8320:22;:::i;:::-;8315:3;8308:35;8237:112;;:::o;8355:214::-;8444:4;8482:2;8471:9;8467:18;8459:26;;8495:67;8559:1;8548:9;8544:17;8535:6;8495:67;:::i;:::-;8355:214;;;;:::o;8575:77::-;8612:7;8641:5;8630:16;;8575:77;;;:::o;8658:118::-;8745:24;8763:5;8745:24;:::i;:::-;8740:3;8733:37;8658:118;;:::o;8782:222::-;8875:4;8913:2;8902:9;8898:18;8890:26;;8926:71;8994:1;8983:9;8979:17;8970:6;8926:71;:::i;:::-;8782:222;;;;:::o;9010:329::-;9069:6;9118:2;9106:9;9097:7;9093:23;9089:32;9086:119;;;9124:79;;:::i;:::-;9086:119;9244:1;9269:53;9314:7;9305:6;9294:9;9290:22;9269:53;:::i;:::-;9259:63;;9215:117;9010:329;;;;:::o;9345:442::-;9494:4;9532:2;9521:9;9517:18;9509:26;;9545:71;9613:1;9602:9;9598:17;9589:6;9545:71;:::i;:::-;9626:72;9694:2;9683:9;9679:18;9670:6;9626:72;:::i;:::-;9708;9776:2;9765:9;9761:18;9752:6;9708:72;:::i;:::-;9345:442;;;;;;:::o;9793:118::-;9880:24;9898:5;9880:24;:::i;:::-;9875:3;9868:37;9793:118;;:::o;9917:222::-;10010:4;10048:2;10037:9;10033:18;10025:26;;10061:71;10129:1;10118:9;10114:17;10105:6;10061:71;:::i;:::-;9917:222;;;;:::o;10145:329::-;10204:6;10253:2;10241:9;10232:7;10228:23;10224:32;10221:119;;;10259:79;;:::i;:::-;10221:119;10379:1;10404:53;10449:7;10440:6;10429:9;10425:22;10404:53;:::i;:::-;10394:63;;10350:117;10145:329;;;;:::o;10480:468::-;10545:6;10553;10602:2;10590:9;10581:7;10577:23;10573:32;10570:119;;;10608:79;;:::i;:::-;10570:119;10728:1;10753:53;10798:7;10789:6;10778:9;10774:22;10753:53;:::i;:::-;10743:63;;10699:117;10855:2;10881:50;10923:7;10914:6;10903:9;10899:22;10881:50;:::i;:::-;10871:60;;10826:115;10480:468;;;;;:::o;10954:474::-;11022:6;11030;11079:2;11067:9;11058:7;11054:23;11050:32;11047:119;;;11085:79;;:::i;:::-;11047:119;11205:1;11230:53;11275:7;11266:6;11255:9;11251:22;11230:53;:::i;:::-;11220:63;;11176:117;11332:2;11358:53;11403:7;11394:6;11383:9;11379:22;11358:53;:::i;:::-;11348:63;;11303:118;10954:474;;;;;:::o;11434:118::-;11505:22;11521:5;11505:22;:::i;:::-;11498:5;11495:33;11485:61;;11542:1;11539;11532:12;11485:61;11434:118;:::o;11558:135::-;11602:5;11640:6;11627:20;11618:29;;11656:31;11681:5;11656:31;:::i;:::-;11558:135;;;;:::o;11699:122::-;11772:24;11790:5;11772:24;:::i;:::-;11765:5;11762:35;11752:63;;11811:1;11808;11801:12;11752:63;11699:122;:::o;11827:139::-;11873:5;11911:6;11898:20;11889:29;;11927:33;11954:5;11927:33;:::i;:::-;11827:139;;;;:::o;11972:1199::-;12083:6;12091;12099;12107;12115;12123;12131;12180:3;12168:9;12159:7;12155:23;12151:33;12148:120;;;12187:79;;:::i;:::-;12148:120;12307:1;12332:53;12377:7;12368:6;12357:9;12353:22;12332:53;:::i;:::-;12322:63;;12278:117;12434:2;12460:53;12505:7;12496:6;12485:9;12481:22;12460:53;:::i;:::-;12450:63;;12405:118;12562:2;12588:53;12633:7;12624:6;12613:9;12609:22;12588:53;:::i;:::-;12578:63;;12533:118;12690:2;12716:53;12761:7;12752:6;12741:9;12737:22;12716:53;:::i;:::-;12706:63;;12661:118;12818:3;12845:51;12888:7;12879:6;12868:9;12864:22;12845:51;:::i;:::-;12835:61;;12789:117;12945:3;12972:53;13017:7;13008:6;12997:9;12993:22;12972:53;:::i;:::-;12962:63;;12916:119;13074:3;13101:53;13146:7;13137:6;13126:9;13122:22;13101:53;:::i;:::-;13091:63;;13045:119;11972:1199;;;;;;;;;;:::o;13177:323::-;13233:6;13282:2;13270:9;13261:7;13257:23;13253:32;13250:119;;;13288:79;;:::i;:::-;13250:119;13408:1;13433:50;13475:7;13466:6;13455:9;13451:22;13433:50;:::i;:::-;13423:60;;13379:114;13177:323;;;;:::o;13506:619::-;13583:6;13591;13599;13648:2;13636:9;13627:7;13623:23;13619:32;13616:119;;;13654:79;;:::i;:::-;13616:119;13774:1;13799:53;13844:7;13835:6;13824:9;13820:22;13799:53;:::i;:::-;13789:63;;13745:117;13901:2;13927:53;13972:7;13963:6;13952:9;13948:22;13927:53;:::i;:::-;13917:63;;13872:118;14029:2;14055:53;14100:7;14091:6;14080:9;14076:22;14055:53;:::i;:::-;14045:63;;14000:118;13506:619;;;;;:::o;14131:60::-;14159:3;14180:5;14173:12;;14131:60;;;:::o;14197:142::-;14247:9;14280:53;14298:34;14307:24;14325:5;14307:24;:::i;:::-;14298:34;:::i;:::-;14280:53;:::i;:::-;14267:66;;14197:142;;;:::o;14345:126::-;14395:9;14428:37;14459:5;14428:37;:::i;:::-;14415:50;;14345:126;;;:::o;14477:141::-;14542:9;14575:37;14606:5;14575:37;:::i;:::-;14562:50;;14477:141;;;:::o;14624:161::-;14726:52;14772:5;14726:52;:::i;:::-;14721:3;14714:65;14624:161;;:::o;14791:252::-;14899:4;14937:2;14926:9;14922:18;14914:26;;14950:86;15033:1;15022:9;15018:17;15009:6;14950:86;:::i;:::-;14791:252;;;;:::o;15049:180::-;15097:77;15094:1;15087:88;15194:4;15191:1;15184:15;15218:4;15215:1;15208:15;15235:320;15279:6;15316:1;15310:4;15306:12;15296:22;;15363:1;15357:4;15353:12;15384:18;15374:81;;15440:4;15432:6;15428:17;15418:27;;15374:81;15502:2;15494:6;15491:14;15471:18;15468:38;15465:84;;15521:18;;:::i;:::-;15465:84;15286:269;15235:320;;;:::o;15561:180::-;15609:77;15606:1;15599:88;15706:4;15703:1;15696:15;15730:4;15727:1;15720:15;15747:180;15795:77;15792:1;15785:88;15892:4;15889:1;15882:15;15916:4;15913:1;15906:15;15933:233;15972:3;15995:24;16013:5;15995:24;:::i;:::-;15986:33;;16041:66;16034:5;16031:77;16028:103;;16111:18;;:::i;:::-;16028:103;16158:1;16151:5;16147:13;16140:20;;15933:233;;;:::o;16172:191::-;16212:3;16231:20;16249:1;16231:20;:::i;:::-;16226:25;;16265:20;16283:1;16265:20;:::i;:::-;16260:25;;16308:1;16305;16301:9;16294:16;;16329:3;16326:1;16323:10;16320:36;;;16336:18;;:::i;:::-;16320:36;16172:191;;;;:::o;16369:165::-;16509:17;16505:1;16497:6;16493:14;16486:41;16369:165;:::o;16540:366::-;16682:3;16703:67;16767:2;16762:3;16703:67;:::i;:::-;16696:74;;16779:93;16868:3;16779:93;:::i;:::-;16897:2;16892:3;16888:12;16881:19;;16540:366;;;:::o;16912:419::-;17078:4;17116:2;17105:9;17101:18;17093:26;;17165:9;17159:4;17155:20;17151:1;17140:9;17136:17;17129:47;17193:131;17319:4;17193:131;:::i;:::-;17185:139;;16912:419;;;:::o;17337:332::-;17458:4;17496:2;17485:9;17481:18;17473:26;;17509:71;17577:1;17566:9;17562:17;17553:6;17509:71;:::i;:::-;17590:72;17658:2;17647:9;17643:18;17634:6;17590:72;:::i;:::-;17337:332;;;;;:::o;17675:137::-;17729:5;17760:6;17754:13;17745:22;;17776:30;17800:5;17776:30;:::i;:::-;17675:137;;;;:::o;17818:345::-;17885:6;17934:2;17922:9;17913:7;17909:23;17905:32;17902:119;;;17940:79;;:::i;:::-;17902:119;18060:1;18085:61;18138:7;18129:6;18118:9;18114:22;18085:61;:::i;:::-;18075:71;;18031:125;17818:345;;;;:::o;18169:224::-;18309:34;18305:1;18297:6;18293:14;18286:58;18378:7;18373:2;18365:6;18361:15;18354:32;18169:224;:::o;18399:366::-;18541:3;18562:67;18626:2;18621:3;18562:67;:::i;:::-;18555:74;;18638:93;18727:3;18638:93;:::i;:::-;18756:2;18751:3;18747:12;18740:19;;18399:366;;;:::o;18771:419::-;18937:4;18975:2;18964:9;18960:18;18952:26;;19024:9;19018:4;19014:20;19010:1;18999:9;18995:17;18988:47;19052:131;19178:4;19052:131;:::i;:::-;19044:139;;18771:419;;;:::o;19196:410::-;19236:7;19259:20;19277:1;19259:20;:::i;:::-;19254:25;;19293:20;19311:1;19293:20;:::i;:::-;19288:25;;19348:1;19345;19341:9;19370:30;19388:11;19370:30;:::i;:::-;19359:41;;19549:1;19540:7;19536:15;19533:1;19530:22;19510:1;19503:9;19483:83;19460:139;;19579:18;;:::i;:::-;19460:139;19244:362;19196:410;;;;:::o;19612:173::-;19752:25;19748:1;19740:6;19736:14;19729:49;19612:173;:::o;19791:366::-;19933:3;19954:67;20018:2;20013:3;19954:67;:::i;:::-;19947:74;;20030:93;20119:3;20030:93;:::i;:::-;20148:2;20143:3;20139:12;20132:19;;19791:366;;;:::o;20163:419::-;20329:4;20367:2;20356:9;20352:18;20344:26;;20416:9;20410:4;20406:20;20402:1;20391:9;20387:17;20380:47;20444:131;20570:4;20444:131;:::i;:::-;20436:139;;20163:419;;;:::o;20588:775::-;20821:4;20859:3;20848:9;20844:19;20836:27;;20873:71;20941:1;20930:9;20926:17;20917:6;20873:71;:::i;:::-;20954:72;21022:2;21011:9;21007:18;20998:6;20954:72;:::i;:::-;21036;21104:2;21093:9;21089:18;21080:6;21036:72;:::i;:::-;21118;21186:2;21175:9;21171:18;21162:6;21118:72;:::i;:::-;21200:73;21268:3;21257:9;21253:19;21244:6;21200:73;:::i;:::-;21283;21351:3;21340:9;21336:19;21327:6;21283:73;:::i;:::-;20588:775;;;;;;;;;:::o;21369:148::-;21471:11;21508:3;21493:18;;21369:148;;;;:::o;21523:214::-;21663:66;21659:1;21651:6;21647:14;21640:90;21523:214;:::o;21743:400::-;21903:3;21924:84;22006:1;22001:3;21924:84;:::i;:::-;21917:91;;22017:93;22106:3;22017:93;:::i;:::-;22135:1;22130:3;22126:11;22119:18;;21743:400;;;:::o;22149:79::-;22188:7;22217:5;22206:16;;22149:79;;;:::o;22234:157::-;22339:45;22359:24;22377:5;22359:24;:::i;:::-;22339:45;:::i;:::-;22334:3;22327:58;22234:157;;:::o;22397:663::-;22638:3;22660:148;22804:3;22660:148;:::i;:::-;22653:155;;22818:75;22889:3;22880:6;22818:75;:::i;:::-;22918:2;22913:3;22909:12;22902:19;;22931:75;23002:3;22993:6;22931:75;:::i;:::-;23031:2;23026:3;23022:12;23015:19;;23051:3;23044:10;;22397:663;;;;;:::o;23066:545::-;23239:4;23277:3;23266:9;23262:19;23254:27;;23291:71;23359:1;23348:9;23344:17;23335:6;23291:71;:::i;:::-;23372:68;23436:2;23425:9;23421:18;23412:6;23372:68;:::i;:::-;23450:72;23518:2;23507:9;23503:18;23494:6;23450:72;:::i;:::-;23532;23600:2;23589:9;23585:18;23576:6;23532:72;:::i;:::-;23066:545;;;;;;;:::o;23617:164::-;23757:16;23753:1;23745:6;23741:14;23734:40;23617:164;:::o;23787:366::-;23929:3;23950:67;24014:2;24009:3;23950:67;:::i;:::-;23943:74;;24026:93;24115:3;24026:93;:::i;:::-;24144:2;24139:3;24135:12;24128:19;;23787:366;;;:::o;24159:419::-;24325:4;24363:2;24352:9;24348:18;24340:26;;24412:9;24406:4;24402:20;24398:1;24387:9;24383:17;24376:47;24440:131;24566:4;24440:131;:::i;:::-;24432:139;;24159:419;;;:::o;24584:225::-;24724:34;24720:1;24712:6;24708:14;24701:58;24793:8;24788:2;24780:6;24776:15;24769:33;24584:225;:::o;24815:366::-;24957:3;24978:67;25042:2;25037:3;24978:67;:::i;:::-;24971:74;;25054:93;25143:3;25054:93;:::i;:::-;25172:2;25167:3;25163:12;25156:19;;24815:366;;;:::o;25187:419::-;25353:4;25391:2;25380:9;25376:18;25368:26;;25440:9;25434:4;25430:20;25426:1;25415:9;25411:17;25404:47;25468:131;25594:4;25468:131;:::i;:::-;25460:139;;25187:419;;;:::o;25612:223::-;25752:34;25748:1;25740:6;25736:14;25729:58;25821:6;25816:2;25808:6;25804:15;25797:31;25612:223;:::o;25841:366::-;25983:3;26004:67;26068:2;26063:3;26004:67;:::i;:::-;25997:74;;26080:93;26169:3;26080:93;:::i;:::-;26198:2;26193:3;26189:12;26182:19;;25841:366;;;:::o;26213:419::-;26379:4;26417:2;26406:9;26402:18;26394:26;;26466:9;26460:4;26456:20;26452:1;26441:9;26437:17;26430:47;26494:131;26620:4;26494:131;:::i;:::-;26486:139;;26213:419;;;:::o;26638:221::-;26778:34;26774:1;26766:6;26762:14;26755:58;26847:4;26842:2;26834:6;26830:15;26823:29;26638:221;:::o;26865:366::-;27007:3;27028:67;27092:2;27087:3;27028:67;:::i;:::-;27021:74;;27104:93;27193:3;27104:93;:::i;:::-;27222:2;27217:3;27213:12;27206:19;;26865:366;;;:::o;27237:419::-;27403:4;27441:2;27430:9;27426:18;27418:26;;27490:9;27484:4;27480:20;27476:1;27465:9;27461:17;27454:47;27518:131;27644:4;27518:131;:::i;:::-;27510:139;;27237:419;;;:::o;27662:182::-;27802:34;27798:1;27790:6;27786:14;27779:58;27662:182;:::o;27850:366::-;27992:3;28013:67;28077:2;28072:3;28013:67;:::i;:::-;28006:74;;28089:93;28178:3;28089:93;:::i;:::-;28207:2;28202:3;28198:12;28191:19;;27850:366;;;:::o;28222:419::-;28388:4;28426:2;28415:9;28411:18;28403:26;;28475:9;28469:4;28465:20;28461:1;28450:9;28446:17;28439:47;28503:131;28629:4;28503:131;:::i;:::-;28495:139;;28222:419;;;:::o;28647:179::-;28787:31;28783:1;28775:6;28771:14;28764:55;28647:179;:::o;28832:366::-;28974:3;28995:67;29059:2;29054:3;28995:67;:::i;:::-;28988:74;;29071:93;29160:3;29071:93;:::i;:::-;29189:2;29184:3;29180:12;29173:19;;28832:366;;;:::o;29204:419::-;29370:4;29408:2;29397:9;29393:18;29385:26;;29457:9;29451:4;29447:20;29443:1;29432:9;29428:17;29421:47;29485:131;29611:4;29485:131;:::i;:::-;29477:139;;29204:419;;;:::o;29629:228::-;29769:34;29765:1;29757:6;29753:14;29746:58;29838:11;29833:2;29825:6;29821:15;29814:36;29629:228;:::o;29863:366::-;30005:3;30026:67;30090:2;30085:3;30026:67;:::i;:::-;30019:74;;30102:93;30191:3;30102:93;:::i;:::-;30220:2;30215:3;30211:12;30204:19;;29863:366;;;:::o;30235:419::-;30401:4;30439:2;30428:9;30424:18;30416:26;;30488:9;30482:4;30478:20;30474:1;30463:9;30459:17;30452:47;30516:131;30642:4;30516:131;:::i;:::-;30508:139;;30235:419;;;:::o;30660:169::-;30800:21;30796:1;30788:6;30784:14;30777:45;30660:169;:::o;30835:366::-;30977:3;30998:67;31062:2;31057:3;30998:67;:::i;:::-;30991:74;;31074:93;31163:3;31074:93;:::i;:::-;31192:2;31187:3;31183:12;31176:19;;30835:366;;;:::o;31207:419::-;31373:4;31411:2;31400:9;31396:18;31388:26;;31460:9;31454:4;31450:20;31446:1;31435:9;31431:17;31424:47;31488:131;31614:4;31488:131;:::i;:::-;31480:139;;31207:419;;;:::o;31632:169::-;31772:21;31768:1;31760:6;31756:14;31749:45;31632:169;:::o;31807:366::-;31949:3;31970:67;32034:2;32029:3;31970:67;:::i;:::-;31963:74;;32046:93;32135:3;32046:93;:::i;:::-;32164:2;32159:3;32155:12;32148:19;;31807:366;;;:::o;32179:419::-;32345:4;32383:2;32372:9;32368:18;32360:26;;32432:9;32426:4;32422:20;32418:1;32407:9;32403:17;32396:47;32460:131;32586:4;32460:131;:::i;:::-;32452:139;;32179:419;;;:::o;32604:170::-;32744:22;32740:1;32732:6;32728:14;32721:46;32604:170;:::o;32780:366::-;32922:3;32943:67;33007:2;33002:3;32943:67;:::i;:::-;32936:74;;33019:93;33108:3;33019:93;:::i;:::-;33137:2;33132:3;33128:12;33121:19;;32780:366;;;:::o;33152:419::-;33318:4;33356:2;33345:9;33341:18;33333:26;;33405:9;33399:4;33395:20;33391:1;33380:9;33376:17;33369:47;33433:131;33559:4;33433:131;:::i;:::-;33425:139;;33152:419;;;:::o;33577:194::-;33617:4;33637:20;33655:1;33637:20;:::i;:::-;33632:25;;33671:20;33689:1;33671:20;:::i;:::-;33666:25;;33715:1;33712;33708:9;33700:17;;33739:1;33733:4;33730:11;33727:37;;;33744:18;;:::i;:::-;33727:37;33577:194;;;;:::o;33777:181::-;33917:33;33913:1;33905:6;33901:14;33894:57;33777:181;:::o;33964:366::-;34106:3;34127:67;34191:2;34186:3;34127:67;:::i;:::-;34120:74;;34203:93;34292:3;34203:93;:::i;:::-;34321:2;34316:3;34312:12;34305:19;;33964:366;;;:::o;34336:419::-;34502:4;34540:2;34529:9;34525:18;34517:26;;34589:9;34583:4;34579:20;34575:1;34564:9;34560:17;34553:47;34617:131;34743:4;34617:131;:::i;:::-;34609:139;;34336:419;;;:::o;34761:161::-;34901:13;34897:1;34889:6;34885:14;34878:37;34761:161;:::o;34928:366::-;35070:3;35091:67;35155:2;35150:3;35091:67;:::i;:::-;35084:74;;35167:93;35256:3;35167:93;:::i;:::-;35285:2;35280:3;35276:12;35269:19;;34928:366;;;:::o;35300:419::-;35466:4;35504:2;35493:9;35489:18;35481:26;;35553:9;35547:4;35543:20;35539:1;35528:9;35524:17;35517:47;35581:131;35707:4;35581:131;:::i;:::-;35573:139;;35300:419;;;:::o;35725:171::-;35865:23;35861:1;35853:6;35849:14;35842:47;35725:171;:::o;35902:366::-;36044:3;36065:67;36129:2;36124:3;36065:67;:::i;:::-;36058:74;;36141:93;36230:3;36141:93;:::i;:::-;36259:2;36254:3;36250:12;36243:19;;35902:366;;;:::o;36274:419::-;36440:4;36478:2;36467:9;36463:18;36455:26;;36527:9;36521:4;36517:20;36513:1;36502:9;36498:17;36491:47;36555:131;36681:4;36555:131;:::i;:::-;36547:139;;36274:419;;;:::o;36699:180::-;36747:77;36744:1;36737:88;36844:4;36841:1;36834:15;36868:4;36865:1;36858:15;36885:185;36925:1;36942:20;36960:1;36942:20;:::i;:::-;36937:25;;36976:20;36994:1;36976:20;:::i;:::-;36971:25;;37015:1;37005:35;;37020:18;;:::i;:::-;37005:35;37062:1;37059;37055:9;37050:14;;36885:185;;;;:::o;37076:147::-;37177:11;37214:3;37199:18;;37076:147;;;;:::o;37229:144::-;37281:4;37304:3;37296:11;;37327:3;37324:1;37317:14;37361:4;37358:1;37348:18;37340:26;;37229:144;;;:::o;37401:878::-;37506:3;37543:5;37537:12;37572:36;37598:9;37572:36;:::i;:::-;37624:88;37705:6;37700:3;37624:88;:::i;:::-;37617:95;;37743:1;37732:9;37728:17;37759:1;37754:166;;;;37934:1;37929:344;;;;37721:552;;37754:166;37838:4;37834:9;37823;37819:25;37814:3;37807:38;37900:6;37893:14;37886:22;37878:6;37874:35;37869:3;37865:45;37858:52;;37754:166;;37929:344;37996:41;38031:5;37996:41;:::i;:::-;38059:1;38073:154;38087:6;38084:1;38081:13;38073:154;;;38161:7;38155:14;38151:1;38146:3;38142:11;38135:35;38211:1;38202:7;38198:15;38187:26;;38109:4;38106:1;38102:12;38097:17;;38073:154;;;38256:6;38251:3;38247:16;38240:23;;37936:337;;37721:552;;37510:769;;37401:878;;;;:::o;38285:273::-;38416:3;38438:94;38528:3;38519:6;38438:94;:::i;:::-;38431:101;;38549:3;38542:10;;38285:273;;;;:::o;38564:664::-;38769:4;38807:3;38796:9;38792:19;38784:27;;38821:71;38889:1;38878:9;38874:17;38865:6;38821:71;:::i;:::-;38902:72;38970:2;38959:9;38955:18;38946:6;38902:72;:::i;:::-;38984;39052:2;39041:9;39037:18;39028:6;38984:72;:::i;:::-;39066;39134:2;39123:9;39119:18;39110:6;39066:72;:::i;:::-;39148:73;39216:3;39205:9;39201:19;39192:6;39148:73;:::i;:::-;38564:664;;;;;;;;:::o;39234:179::-;39374:31;39370:1;39362:6;39358:14;39351:55;39234:179;:::o;39419:366::-;39561:3;39582:67;39646:2;39641:3;39582:67;:::i;:::-;39575:74;;39658:93;39747:3;39658:93;:::i;:::-;39776:2;39771:3;39767:12;39760:19;;39419:366;;;:::o;39791:419::-;39957:4;39995:2;39984:9;39980:18;39972:26;;40044:9;40038:4;40034:20;40030:1;40019:9;40015:17;40008:47;40072:131;40198:4;40072:131;:::i;:::-;40064:139;;39791:419;;;:::o;40216:114::-;;:::o;40336:398::-;40495:3;40516:83;40597:1;40592:3;40516:83;:::i;:::-;40509:90;;40608:93;40697:3;40608:93;:::i;:::-;40726:1;40721:3;40717:11;40710:18;;40336:398;;;:::o;40740:379::-;40924:3;40946:147;41089:3;40946:147;:::i;:::-;40939:154;;41110:3;41103:10;;40740:379;;;:::o;41125:245::-;41265:34;41261:1;41253:6;41249:14;41242:58;41334:28;41329:2;41321:6;41317:15;41310:53;41125:245;:::o;41376:366::-;41518:3;41539:67;41603:2;41598:3;41539:67;:::i;:::-;41532:74;;41615:93;41704:3;41615:93;:::i;:::-;41733:2;41728:3;41724:12;41717:19;;41376:366;;;:::o;41748:419::-;41914:4;41952:2;41941:9;41937:18;41929:26;;42001:9;41995:4;41991:20;41987:1;41976:9;41972:17;41965:47;42029:131;42155:4;42029:131;:::i;:::-;42021:139;;41748:419;;;:::o;42173:224::-;42313:34;42309:1;42301:6;42297:14;42290:58;42382:7;42377:2;42369:6;42365:15;42358:32;42173:224;:::o;42403:366::-;42545:3;42566:67;42630:2;42625:3;42566:67;:::i;:::-;42559:74;;42642:93;42731:3;42642:93;:::i;:::-;42760:2;42755:3;42751:12;42744:19;;42403:366;;;:::o;42775:419::-;42941:4;42979:2;42968:9;42964:18;42956:26;;43028:9;43022:4;43018:20;43014:1;43003:9;42999:17;42992:47;43056:131;43182:4;43056:131;:::i;:::-;43048:139;;42775:419;;;:::o;43200:222::-;43340:34;43336:1;43328:6;43324:14;43317:58;43409:5;43404:2;43396:6;43392:15;43385:30;43200:222;:::o;43428:366::-;43570:3;43591:67;43655:2;43650:3;43591:67;:::i;:::-;43584:74;;43667:93;43756:3;43667:93;:::i;:::-;43785:2;43780:3;43776:12;43769:19;;43428:366;;;:::o;43800:419::-;43966:4;44004:2;43993:9;43989:18;43981:26;;44053:9;44047:4;44043:20;44039:1;44028:9;44024:17;44017:47;44081:131;44207:4;44081:131;:::i;:::-;44073:139;;43800:419;;;:::o;44225:225::-;44365:34;44361:1;44353:6;44349:14;44342:58;44434:8;44429:2;44421:6;44417:15;44410:33;44225:225;:::o;44456:366::-;44598:3;44619:67;44683:2;44678:3;44619:67;:::i;:::-;44612:74;;44695:93;44784:3;44695:93;:::i;:::-;44813:2;44808:3;44804:12;44797:19;;44456:366;;;:::o;44828:419::-;44994:4;45032:2;45021:9;45017:18;45009:26;;45081:9;45075:4;45071:20;45067:1;45056:9;45052:17;45045:47;45109:131;45235:4;45109:131;:::i;:::-;45101:139;;44828:419;;;:::o;45253:143::-;45310:5;45341:6;45335:13;45326:22;;45357:33;45384:5;45357:33;:::i;:::-;45253:143;;;;:::o;45402:351::-;45472:6;45521:2;45509:9;45500:7;45496:23;45492:32;45489:119;;;45527:79;;:::i;:::-;45489:119;45647:1;45672:64;45728:7;45719:6;45708:9;45704:22;45672:64;:::i;:::-;45662:74;;45618:128;45402:351;;;;:::o;45759:85::-;45804:7;45833:5;45822:16;;45759:85;;;:::o;45850:158::-;45908:9;45941:61;45959:42;45968:32;45994:5;45968:32;:::i;:::-;45959:42;:::i;:::-;45941:61;:::i;:::-;45928:74;;45850:158;;;:::o;46014:147::-;46109:45;46148:5;46109:45;:::i;:::-;46104:3;46097:58;46014:147;;:::o;46167:114::-;46234:6;46268:5;46262:12;46252:22;;46167:114;;;:::o;46287:184::-;46386:11;46420:6;46415:3;46408:19;46460:4;46455:3;46451:14;46436:29;;46287:184;;;;:::o;46477:132::-;46544:4;46567:3;46559:11;;46597:4;46592:3;46588:14;46580:22;;46477:132;;;:::o;46615:108::-;46692:24;46710:5;46692:24;:::i;:::-;46687:3;46680:37;46615:108;;:::o;46729:179::-;46798:10;46819:46;46861:3;46853:6;46819:46;:::i;:::-;46897:4;46892:3;46888:14;46874:28;;46729:179;;;;:::o;46914:113::-;46984:4;47016;47011:3;47007:14;46999:22;;46914:113;;;:::o;47063:732::-;47182:3;47211:54;47259:5;47211:54;:::i;:::-;47281:86;47360:6;47355:3;47281:86;:::i;:::-;47274:93;;47391:56;47441:5;47391:56;:::i;:::-;47470:7;47501:1;47486:284;47511:6;47508:1;47505:13;47486:284;;;47587:6;47581:13;47614:63;47673:3;47658:13;47614:63;:::i;:::-;47607:70;;47700:60;47753:6;47700:60;:::i;:::-;47690:70;;47546:224;47533:1;47530;47526:9;47521:14;;47486:284;;;47490:14;47786:3;47779:10;;47187:608;;;47063:732;;;;:::o;47801:831::-;48064:4;48102:3;48091:9;48087:19;48079:27;;48116:71;48184:1;48173:9;48169:17;48160:6;48116:71;:::i;:::-;48197:80;48273:2;48262:9;48258:18;48249:6;48197:80;:::i;:::-;48324:9;48318:4;48314:20;48309:2;48298:9;48294:18;48287:48;48352:108;48455:4;48446:6;48352:108;:::i;:::-;48344:116;;48470:72;48538:2;48527:9;48523:18;48514:6;48470:72;:::i;:::-;48552:73;48620:3;48609:9;48605:19;48596:6;48552:73;:::i;:::-;47801:831;;;;;;;;:::o
Swarm Source
ipfs://b98c33c7e4b999998a63915a65f4d04223f358f025374386b81d4246b2110d5b
Loading...
Loading
Loading...
Loading
OVERVIEW
We utilize the EIP-712 standard which allows for Gasless transactions,Signatures,Users sign a message instead of approving their tokens.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.