Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 HAYLEY
Holders
95
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 HAYLEYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TOKEN
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-21 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function 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); } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract TOKEN is Context, IERC20, Ownable { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isExcludedFromFee; address private constant deadWallet = 0x000000000000000000000000000000000000dEaD; address payable private FeeWallet; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals; string private constant _name = "Hayley"; string private constant _symbol = "HAYLEY"; uint256 private SwapTokens = 1_000_000 * 10**_decimals; uint256 private maxSwapTokens = 10_000_000 * 10**_decimals; uint256 private maxTxAmount = 10_000_000 * 10**_decimals; uint256 private buyTaxes = 30; uint256 private sellTaxes = 50; uint256 public _BuyCount=0; uint256 public _SellCount=0; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; bool public tradeEnable = false; bool private _SwapBackEnable = false; bool private inSwap = false; event ERC20TokensRecovered(uint256 indexed _amount); event TradingOpenUpdated(); event ETHBalanceRecovered(); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { if (block.chainid == 56){ uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router } else if(block.chainid == 1 || block.chainid == 5){ uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router } else if(block.chainid == 42161){ uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router } else if(block.chainid == 11155111){ uniswapV2Router = IUniswapV2Router02(0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008); // sepolia uniswap } else if(block.chainid == 8453){ uniswapV2Router = IUniswapV2Router02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24); // baseChain uniswap router } else if (block.chainid == 97){ uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router } else { revert("Wrong Chain Id"); } _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); FeeWallet = payable(_msgSender()); isExcludedFromFee[_msgSender()] = true; isExcludedFromFee[address(this)] = true; isExcludedFromFee[FeeWallet] = true; isExcludedFromFee[deadWallet] = true; _balances[_msgSender()] = _tTotal; emit Transfer(address(0), _msgSender() , _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 feeSwap=0; if (from != owner() && to != owner()) { require(tradeEnable, "Trading not enabled"); feeSwap = amount * (buyTaxes) / (100); } if (isExcludedFromFee[from] || isExcludedFromFee[to]) { feeSwap = 0; } if (from == uniswapV2Pair && to != address(uniswapV2Router) && !isExcludedFromFee[to]) { require(amount <= maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= maxTxAmount, "Exceeds the maxWalletSize."); _BuyCount++; } if (from != uniswapV2Pair && !isExcludedFromFee[from] && !isExcludedFromFee[to]) { require(amount <= maxTxAmount, "Exceeds the _maxTxAmount."); _SellCount++; } if (to == uniswapV2Pair && from != address(this) && !isExcludedFromFee[from] && !isExcludedFromFee[to]) { feeSwap = amount * (sellTaxes) / (100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > SwapTokens && _BuyCount > 1) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 4, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, maxSwapTokens))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } else if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > SwapTokens && _BuyCount > 1) { swapTokensForEth(min(amount, min(contractTokenBalance, maxSwapTokens))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } _balances[from] = _balances[from] - amount; _balances[to] = _balances[to] + (amount - (feeSwap)); emit Transfer(from, to, amount - (feeSwap)); if(feeSwap > 0){ _balances[address(this)] = _balances[address(this)] + (feeSwap); emit Transfer(from, address(this),feeSwap); } } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { require(tokenAmount > 0, "amount must be greeter than 0"); address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { require(amount > 0, "amount must be greeter than 0"); FeeWallet.transfer(amount); } function removeTxLimit() external onlyOwner { maxTxAmount = _tTotal; } function setFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { require(newBuyFee <= 99 && newSellFee <= 99, "ERC20: wrong tax value!"); buyTaxes = newBuyFee; sellTaxes = newSellFee; } function openTrading() external onlyOwner() { require(!tradeEnable,"trading is already open"); _SwapBackEnable = true; tradeEnable = true; emit TradingOpenUpdated(); } function manualSwap() external { require(_msgSender()== FeeWallet); uint256 tokenBalance = balanceOf(address(this)); if(tokenBalance > 0) { swapTokensForEth(tokenBalance); } uint256 ethBalance = address(this).balance; if(ethBalance > 0) { sendETHToFee(ethBalance); } } receive() external payable {} function recoverERC20FromContract(address _tokenAddy, uint256 _amount) external onlyOwner { require(_amount > 0, "Amount should be greater than zero"); require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount"); IERC20(_tokenAddy).transfer(FeeWallet, _amount); emit ERC20TokensRecovered(_amount); } function recoverETHfromContract() external { uint256 contractETHBalance = address(this).balance; require(contractETHBalance > 0, "Amount should be greater than zero"); require(contractETHBalance <= address(this).balance, "Insufficient Amount"); payable(address(FeeWallet)).transfer(contractETHBalance); emit ETHBalanceRecovered(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","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":[],"name":"TradingOpenUpdated","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":"_BuyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20FromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETHfromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526009600a62000014919062000cac565b620f424062000024919062000cfc565b6005556009600a62000037919062000cac565b6298968062000047919062000cfc565b6006556009600a6200005a919062000cac565b629896806200006a919062000cfc565b600755601e60085560326009555f600a555f600b555f600e555f600f555f60105f6101000a81548160ff0219169083151502179055505f601060016101000a81548160ff0219169083151502179055505f601060026101000a81548160ff021916908315150217905550348015620000e0575f80fd5b505f620000f26200094860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060384603620001f1577310ed43c718714eb63d5aa57b78b54704e256024e600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000433565b6001461480620002015750600546145b156200026157737a250d5630b4cf539739df2c5dacb4c659f2488d600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000432565b61a4b14603620002c557731b02da8cb0d097eb8d57a175b88c7d8b47997506600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000431565b62aa36a746036200032a5773c532a74256d3db42d0bf7a0400fefdbad7694008600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000430565b61210546036200038e57734752ba5dbc23f44d87826276bf6fd6b1c372ad24600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042f565b60614603620003f15773d99d1c33f9fc3444f8101754abc46c52416550d1600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004259062000da4565b60405180910390fd5b5b5b5b5b5b6200048730600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6200046a919062000cac565b633b9aca006200047b919062000cfc565b6200094f60201b60201c565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000518919062000e29565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200059f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005c5919062000e29565b6040518363ffffffff1660e01b8152600401620005e492919062000e6a565b6020604051808303815f875af115801562000601573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000627919062000e29565b600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620006766200094860201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f620006ca6200094860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506009600a6200084b919062000cac565b633b9aca006200085c919062000cfc565b60015f6200086f6200094860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620008bc6200094860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200091a919062000cac565b633b9aca006200092b919062000cfc565b6040516200093a919062000ea6565b60405180910390a362000fe9565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009c0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b79062000f35565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a289062000fc9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000b0d919062000ea6565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000ba45780860481111562000b7c5762000b7b62000b1a565b5b600185161562000b8c5780820291505b808102905062000b9c8562000b47565b945062000b5c565b94509492505050565b5f8262000bbe576001905062000c90565b8162000bcd575f905062000c90565b816001811462000be6576002811462000bf15762000c27565b600191505062000c90565b60ff84111562000c065762000c0562000b1a565b5b8360020a91508482111562000c205762000c1f62000b1a565b5b5062000c90565b5060208310610133831016604e8410600b841016171562000c615782820a90508381111562000c5b5762000c5a62000b1a565b5b62000c90565b62000c70848484600162000b53565b9250905081840481111562000c8a5762000c8962000b1a565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000cb88262000c97565b915062000cc58362000ca0565b925062000cf47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bad565b905092915050565b5f62000d088262000c97565b915062000d158362000c97565b925082820262000d258162000c97565b9150828204841483151762000d3f5762000d3e62000b1a565b5b5092915050565b5f82825260208201905092915050565b7f57726f6e6720436861696e2049640000000000000000000000000000000000005f82015250565b5f62000d8c600e8362000d46565b915062000d998262000d56565b602082019050919050565b5f6020820190508181035f83015262000dbd8162000d7e565b9050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000df38262000dc8565b9050919050565b62000e058162000de7565b811462000e10575f80fd5b50565b5f8151905062000e238162000dfa565b92915050565b5f6020828403121562000e415762000e4062000dc4565b5b5f62000e508482850162000e13565b91505092915050565b62000e648162000de7565b82525050565b5f60408201905062000e7f5f83018562000e59565b62000e8e602083018462000e59565b9392505050565b62000ea08162000c97565b82525050565b5f60208201905062000ebb5f83018462000e95565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000f1d60248362000d46565b915062000f2a8262000ec1565b604082019050919050565b5f6020820190508181035f83015262000f4e8162000f0f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000fb160228362000d46565b915062000fbe8262000f55565b604082019050919050565b5f6020820190508181035f83015262000fe28162000fa3565b9050919050565b6134068062000ff75f395ff3fe60806040526004361061012d575f3560e01c8063715018a6116100aa578063c9567bf91161006e578063c9567bf9146103b6578063ce831ed5146103cc578063dd62ed3e146103e2578063f2fde38b1461041e578063f87dc2c614610446578063ff99db051461047057610134565b8063715018a6146102e65780638da5cb5b146102fc57806395d89b4114610326578063a9059cbb14610350578063b73d90811461038c57610134565b8063313ce567116100f1578063313ce5671461022c5780634619d69f1461025657806351bc3c851461026c5780636dff2eeb1461028257806370a08231146102aa57610134565b806306fdde0314610138578063095ea7b3146101625780630b78f9c01461019e57806318160ddd146101c657806323b872dd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049a565b6040516101599190612333565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123e4565b6104d7565b604051610195919061243c565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612455565b6104f4565b005b3480156101d1575f80fd5b506101da6105eb565b6040516101e791906124a2565b60405180910390f35b3480156101fb575f80fd5b50610216600480360381019061021191906124bb565b61060e565b604051610223919061243c565b60405180910390f35b348015610237575f80fd5b50610240610709565b60405161024d9190612526565b60405180910390f35b348015610261575f80fd5b5061026a610711565b005b348015610277575f80fd5b506102806107ca565b005b34801561028d575f80fd5b506102a860048036038101906102a391906123e4565b610861565b005b3480156102b5575f80fd5b506102d060048036038101906102cb919061253f565b610abf565b6040516102dd91906124a2565b60405180910390f35b3480156102f1575f80fd5b506102fa610b05565b005b348015610307575f80fd5b50610310610c53565b60405161031d9190612579565b60405180910390f35b348015610331575f80fd5b5061033a610c7a565b6040516103479190612333565b60405180910390f35b34801561035b575f80fd5b50610376600480360381019061037191906123e4565b610cb7565b604051610383919061243c565b60405180910390f35b348015610397575f80fd5b506103a0610cd4565b6040516103ad91906124a2565b60405180910390f35b3480156103c1575f80fd5b506103ca610cda565b005b3480156103d7575f80fd5b506103e0610e20565b005b3480156103ed575f80fd5b5061040860048036038101906104039190612592565b610f3d565b60405161041591906124a2565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f919061253f565b610fbf565b005b348015610451575f80fd5b5061045a6110cd565b604051610467919061243c565b60405180910390f35b34801561047b575f80fd5b506104846110df565b60405161049191906124a2565b60405180910390f35b60606040518060400160405280600681526020017f4861796c65790000000000000000000000000000000000000000000000000000815250905090565b5f6104ea6104e36110e5565b84846110ec565b6001905092915050565b6104fc6110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057f9061261a565b60405180910390fd5b6063821115801561059a575060638111155b6105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d090612682565b60405180910390fd5b81600881905550806009819055505050565b5f6009600a6105fa91906127fc565b633b9aca006106099190612846565b905090565b5f8060025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106566110e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc906128f7565b60405180910390fd5b6106e08585856112af565b6106fd856106ec6110e5565b85846106f89190612915565b6110ec565b60019150509392505050565b5f6009905090565b6107196110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079c9061261a565b60405180910390fd5b6009600a6107b391906127fc565b633b9aca006107c29190612846565b600781905550565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080a6110e5565b73ffffffffffffffffffffffffffffffffffffffff1614610829575f80fd5b5f61083330610abf565b90505f8111156108475761084681611e79565b5b5f4790505f81111561085d5761085c81612126565b5b5050565b6108696110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec9061261a565b60405180910390fd5b5f8111610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e906129b8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109709190612579565b602060405180830381865afa15801561098b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109af91906129ea565b8111156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890612a5f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a4d929190612ad8565b6020604051808303815f875af1158015610a69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8d9190612b29565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b0d6110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909061261a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4841594c45590000000000000000000000000000000000000000000000000000815250905090565b5f610cca610cc36110e5565b84846112af565b6001905092915050565b600a5481565b610ce26110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061261a565b60405180910390fd5b60105f9054906101000a900460ff1615610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612b9e565b60405180910390fd5b6001601060016101000a81548160ff021916908315150217905550600160105f6101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b5f4790505f8111610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d906129b8565b60405180910390fd5b47811115610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612a5f565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610f0d573d5f803e3d5ffd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610fc76110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a9061261a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890612c2c565b60405180910390fd5b6110ca816121d0565b50565b60105f9054906101000a900460ff1681565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612cba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf90612d48565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112a291906124a2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612dd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612e64565b60405180910390fd5b5f81116113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612ef2565b60405180910390fd5b5f6113d6610c53565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114445750611414610c53565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114b45760105f9054906101000a900460ff16611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90612f5a565b60405180910390fd5b6064600854836114a79190612846565b6114b19190612fa5565b90505b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061154f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611558575f90505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116015750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611654575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170e5760075482111561169e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116959061301f565b60405180910390fd5b600754826116ab85610abf565b6116b5919061303d565b11156116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906130ba565b60405180910390fd5b600a5f815480929190611708906130d8565b91905055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b2575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611805575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118675760075482111561184f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118469061301f565b60405180910390fd5b600b5f815480929190611861906130d8565b91905055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ef57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611942575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611995575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119b7576064600954836119aa9190612846565b6119b49190612fa5565b90505b5f6119c130610abf565b9050601060029054906101000a900460ff16158015611a2d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a455750601060019054906101000a900460ff165b8015611a52575060055481115b8015611a6057506001600a54115b15611b1357600f54431115611a77575f600e819055505b6004600e5410611abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab390613169565b60405180910390fd5b611ad9611ad484611acf84600654612291565b612291565b611e79565b5f4790505f811115611aef57611aee47612126565b5b600e5f815480929190611b01906130d8565b919050555043600f8190555050611beb565b601060029054906101000a900460ff16158015611b7d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b955750601060019054906101000a900460ff165b8015611ba2575060055481115b8015611bb057506001600a54115b15611bea57611bd2611bcd84611bc884600654612291565b612291565b611e79565b5f4790505f811115611be857611be747612126565b5b505b5b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c349190612915565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508183611c819190612915565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc9919061303d565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8486611d659190612915565b604051611d7291906124a2565b60405180910390a35f821115611e72578160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcb919061303d565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e6991906124a2565b60405180910390a35b5050505050565b6001601060026101000a81548160ff0219169083151502179055505f8111611ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecd906131d1565b60405180910390fd5b5f600267ffffffffffffffff811115611ef257611ef16131ef565b5b604051908082528060200260200182016040528015611f205781602001602082028036833780820191505090505b50905030815f81518110611f3757611f3661321c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fdb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fff919061325d565b816001815181106120135761201261321c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207930600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ec565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120db959493929190613378565b5f604051808303815f87803b1580156120f2575f80fd5b505af1158015612104573d5f803e3d5ffd5b50505050505f601060026101000a81548160ff02191690831515021790555050565b5f8111612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906131d1565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121cc573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81831161229f57826122a1565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122e05780820151818401526020810190506122c5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612305826122a9565b61230f81856122b3565b935061231f8185602086016122c3565b612328816122eb565b840191505092915050565b5f6020820190508181035f83015261234b81846122fb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61238082612357565b9050919050565b61239081612376565b811461239a575f80fd5b50565b5f813590506123ab81612387565b92915050565b5f819050919050565b6123c3816123b1565b81146123cd575f80fd5b50565b5f813590506123de816123ba565b92915050565b5f80604083850312156123fa576123f9612353565b5b5f6124078582860161239d565b9250506020612418858286016123d0565b9150509250929050565b5f8115159050919050565b61243681612422565b82525050565b5f60208201905061244f5f83018461242d565b92915050565b5f806040838503121561246b5761246a612353565b5b5f612478858286016123d0565b9250506020612489858286016123d0565b9150509250929050565b61249c816123b1565b82525050565b5f6020820190506124b55f830184612493565b92915050565b5f805f606084860312156124d2576124d1612353565b5b5f6124df8682870161239d565b93505060206124f08682870161239d565b9250506040612501868287016123d0565b9150509250925092565b5f60ff82169050919050565b6125208161250b565b82525050565b5f6020820190506125395f830184612517565b92915050565b5f6020828403121561255457612553612353565b5b5f6125618482850161239d565b91505092915050565b61257381612376565b82525050565b5f60208201905061258c5f83018461256a565b92915050565b5f80604083850312156125a8576125a7612353565b5b5f6125b58582860161239d565b92505060206125c68582860161239d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126046020836122b3565b915061260f826125d0565b602082019050919050565b5f6020820190508181035f830152612631816125f8565b9050919050565b7f45524332303a2077726f6e67207461782076616c7565210000000000000000005f82015250565b5f61266c6017836122b3565b915061267782612638565b602082019050919050565b5f6020820190508181035f83015261269981612660565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612722578086048111156126fe576126fd6126a0565b5b600185161561270d5780820291505b808102905061271b856126cd565b94506126e2565b94509492505050565b5f8261273a57600190506127f5565b81612747575f90506127f5565b816001811461275d576002811461276757612796565b60019150506127f5565b60ff841115612779576127786126a0565b5b8360020a9150848211156127905761278f6126a0565b5b506127f5565b5060208310610133831016604e8410600b84101617156127cb5782820a9050838111156127c6576127c56126a0565b5b6127f5565b6127d884848460016126d9565b925090508184048111156127ef576127ee6126a0565b5b81810290505b9392505050565b5f612806826123b1565b91506128118361250b565b925061283e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461272b565b905092915050565b5f612850826123b1565b915061285b836123b1565b9250828202612869816123b1565b915082820484148315176128805761287f6126a0565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6128e16028836122b3565b91506128ec82612887565b604082019050919050565b5f6020820190508181035f83015261290e816128d5565b9050919050565b5f61291f826123b1565b915061292a836123b1565b9250828203905081811115612942576129416126a0565b5b92915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a26022836122b3565b91506129ad82612948565b604082019050919050565b5f6020820190508181035f8301526129cf81612996565b9050919050565b5f815190506129e4816123ba565b92915050565b5f602082840312156129ff576129fe612353565b5b5f612a0c848285016129d6565b91505092915050565b7f496e73756666696369656e7420416d6f756e74000000000000000000000000005f82015250565b5f612a496013836122b3565b9150612a5482612a15565b602082019050919050565b5f6020820190508181035f830152612a7681612a3d565b9050919050565b5f819050919050565b5f612aa0612a9b612a9684612357565b612a7d565b612357565b9050919050565b5f612ab182612a86565b9050919050565b5f612ac282612aa7565b9050919050565b612ad281612ab8565b82525050565b5f604082019050612aeb5f830185612ac9565b612af86020830184612493565b9392505050565b612b0881612422565b8114612b12575f80fd5b50565b5f81519050612b2381612aff565b92915050565b5f60208284031215612b3e57612b3d612353565b5b5f612b4b84828501612b15565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b886017836122b3565b9150612b9382612b54565b602082019050919050565b5f6020820190508181035f830152612bb581612b7c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612c166026836122b3565b9150612c2182612bbc565b604082019050919050565b5f6020820190508181035f830152612c4381612c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ca46024836122b3565b9150612caf82612c4a565b604082019050919050565b5f6020820190508181035f830152612cd181612c98565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d326022836122b3565b9150612d3d82612cd8565b604082019050919050565b5f6020820190508181035f830152612d5f81612d26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dc06025836122b3565b9150612dcb82612d66565b604082019050919050565b5f6020820190508181035f830152612ded81612db4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e4e6023836122b3565b9150612e5982612df4565b604082019050919050565b5f6020820190508181035f830152612e7b81612e42565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612edc6029836122b3565b9150612ee782612e82565b604082019050919050565b5f6020820190508181035f830152612f0981612ed0565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612f446013836122b3565b9150612f4f82612f10565b602082019050919050565b5f6020820190508181035f830152612f7181612f38565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612faf826123b1565b9150612fba836123b1565b925082612fca57612fc9612f78565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130096019836122b3565b915061301482612fd5565b602082019050919050565b5f6020820190508181035f83015261303681612ffd565b9050919050565b5f613047826123b1565b9150613052836123b1565b925082820190508082111561306a576130696126a0565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130a4601a836122b3565b91506130af82613070565b602082019050919050565b5f6020820190508181035f8301526130d181613098565b9050919050565b5f6130e2826123b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613114576131136126a0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6131536017836122b3565b915061315e8261311f565b602082019050919050565b5f6020820190508181035f83015261318081613147565b9050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e20300000005f82015250565b5f6131bb601d836122b3565b91506131c682613187565b602082019050919050565b5f6020820190508181035f8301526131e8816131af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061325781612387565b92915050565b5f6020828403121561327257613271612353565b5b5f61327f84828501613249565b91505092915050565b5f819050919050565b5f6132ab6132a66132a184613288565b612a7d565b6123b1565b9050919050565b6132bb81613291565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132f381612376565b82525050565b5f61330483836132ea565b60208301905092915050565b5f602082019050919050565b5f613326826132c1565b61333081856132cb565b935061333b836132db565b805f5b8381101561336b57815161335288826132f9565b975061335d83613310565b92505060018101905061333e565b5085935050505092915050565b5f60a08201905061338b5f830188612493565b61339860208301876132b2565b81810360408301526133aa818661331c565b90506133b9606083018561256a565b6133c66080830184612493565b969550505050505056fea264697066735822122053e4a73f5464aed405781c4a8b059d7a877b3619048880454bb69307823e2b5a64736f6c63430008180033
Deployed Bytecode
0x60806040526004361061012d575f3560e01c8063715018a6116100aa578063c9567bf91161006e578063c9567bf9146103b6578063ce831ed5146103cc578063dd62ed3e146103e2578063f2fde38b1461041e578063f87dc2c614610446578063ff99db051461047057610134565b8063715018a6146102e65780638da5cb5b146102fc57806395d89b4114610326578063a9059cbb14610350578063b73d90811461038c57610134565b8063313ce567116100f1578063313ce5671461022c5780634619d69f1461025657806351bc3c851461026c5780636dff2eeb1461028257806370a08231146102aa57610134565b806306fdde0314610138578063095ea7b3146101625780630b78f9c01461019e57806318160ddd146101c657806323b872dd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049a565b6040516101599190612333565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123e4565b6104d7565b604051610195919061243c565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612455565b6104f4565b005b3480156101d1575f80fd5b506101da6105eb565b6040516101e791906124a2565b60405180910390f35b3480156101fb575f80fd5b50610216600480360381019061021191906124bb565b61060e565b604051610223919061243c565b60405180910390f35b348015610237575f80fd5b50610240610709565b60405161024d9190612526565b60405180910390f35b348015610261575f80fd5b5061026a610711565b005b348015610277575f80fd5b506102806107ca565b005b34801561028d575f80fd5b506102a860048036038101906102a391906123e4565b610861565b005b3480156102b5575f80fd5b506102d060048036038101906102cb919061253f565b610abf565b6040516102dd91906124a2565b60405180910390f35b3480156102f1575f80fd5b506102fa610b05565b005b348015610307575f80fd5b50610310610c53565b60405161031d9190612579565b60405180910390f35b348015610331575f80fd5b5061033a610c7a565b6040516103479190612333565b60405180910390f35b34801561035b575f80fd5b50610376600480360381019061037191906123e4565b610cb7565b604051610383919061243c565b60405180910390f35b348015610397575f80fd5b506103a0610cd4565b6040516103ad91906124a2565b60405180910390f35b3480156103c1575f80fd5b506103ca610cda565b005b3480156103d7575f80fd5b506103e0610e20565b005b3480156103ed575f80fd5b5061040860048036038101906104039190612592565b610f3d565b60405161041591906124a2565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f919061253f565b610fbf565b005b348015610451575f80fd5b5061045a6110cd565b604051610467919061243c565b60405180910390f35b34801561047b575f80fd5b506104846110df565b60405161049191906124a2565b60405180910390f35b60606040518060400160405280600681526020017f4861796c65790000000000000000000000000000000000000000000000000000815250905090565b5f6104ea6104e36110e5565b84846110ec565b6001905092915050565b6104fc6110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057f9061261a565b60405180910390fd5b6063821115801561059a575060638111155b6105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d090612682565b60405180910390fd5b81600881905550806009819055505050565b5f6009600a6105fa91906127fc565b633b9aca006106099190612846565b905090565b5f8060025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106566110e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc906128f7565b60405180910390fd5b6106e08585856112af565b6106fd856106ec6110e5565b85846106f89190612915565b6110ec565b60019150509392505050565b5f6009905090565b6107196110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079c9061261a565b60405180910390fd5b6009600a6107b391906127fc565b633b9aca006107c29190612846565b600781905550565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080a6110e5565b73ffffffffffffffffffffffffffffffffffffffff1614610829575f80fd5b5f61083330610abf565b90505f8111156108475761084681611e79565b5b5f4790505f81111561085d5761085c81612126565b5b5050565b6108696110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec9061261a565b60405180910390fd5b5f8111610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e906129b8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109709190612579565b602060405180830381865afa15801561098b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109af91906129ea565b8111156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890612a5f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a4d929190612ad8565b6020604051808303815f875af1158015610a69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8d9190612b29565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b0d6110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909061261a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4841594c45590000000000000000000000000000000000000000000000000000815250905090565b5f610cca610cc36110e5565b84846112af565b6001905092915050565b600a5481565b610ce26110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061261a565b60405180910390fd5b60105f9054906101000a900460ff1615610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612b9e565b60405180910390fd5b6001601060016101000a81548160ff021916908315150217905550600160105f6101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b5f4790505f8111610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d906129b8565b60405180910390fd5b47811115610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612a5f565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610f0d573d5f803e3d5ffd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610fc76110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a9061261a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890612c2c565b60405180910390fd5b6110ca816121d0565b50565b60105f9054906101000a900460ff1681565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612cba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf90612d48565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112a291906124a2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612dd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612e64565b60405180910390fd5b5f81116113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612ef2565b60405180910390fd5b5f6113d6610c53565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114445750611414610c53565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114b45760105f9054906101000a900460ff16611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90612f5a565b60405180910390fd5b6064600854836114a79190612846565b6114b19190612fa5565b90505b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061154f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611558575f90505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116015750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611654575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170e5760075482111561169e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116959061301f565b60405180910390fd5b600754826116ab85610abf565b6116b5919061303d565b11156116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906130ba565b60405180910390fd5b600a5f815480929190611708906130d8565b91905055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b2575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611805575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118675760075482111561184f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118469061301f565b60405180910390fd5b600b5f815480929190611861906130d8565b91905055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ef57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611942575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611995575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119b7576064600954836119aa9190612846565b6119b49190612fa5565b90505b5f6119c130610abf565b9050601060029054906101000a900460ff16158015611a2d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a455750601060019054906101000a900460ff165b8015611a52575060055481115b8015611a6057506001600a54115b15611b1357600f54431115611a77575f600e819055505b6004600e5410611abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab390613169565b60405180910390fd5b611ad9611ad484611acf84600654612291565b612291565b611e79565b5f4790505f811115611aef57611aee47612126565b5b600e5f815480929190611b01906130d8565b919050555043600f8190555050611beb565b601060029054906101000a900460ff16158015611b7d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b955750601060019054906101000a900460ff165b8015611ba2575060055481115b8015611bb057506001600a54115b15611bea57611bd2611bcd84611bc884600654612291565b612291565b611e79565b5f4790505f811115611be857611be747612126565b5b505b5b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c349190612915565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508183611c819190612915565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc9919061303d565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8486611d659190612915565b604051611d7291906124a2565b60405180910390a35f821115611e72578160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcb919061303d565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e6991906124a2565b60405180910390a35b5050505050565b6001601060026101000a81548160ff0219169083151502179055505f8111611ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecd906131d1565b60405180910390fd5b5f600267ffffffffffffffff811115611ef257611ef16131ef565b5b604051908082528060200260200182016040528015611f205781602001602082028036833780820191505090505b50905030815f81518110611f3757611f3661321c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fdb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fff919061325d565b816001815181106120135761201261321c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207930600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ec565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120db959493929190613378565b5f604051808303815f87803b1580156120f2575f80fd5b505af1158015612104573d5f803e3d5ffd5b50505050505f601060026101000a81548160ff02191690831515021790555050565b5f8111612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906131d1565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121cc573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81831161229f57826122a1565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122e05780820151818401526020810190506122c5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612305826122a9565b61230f81856122b3565b935061231f8185602086016122c3565b612328816122eb565b840191505092915050565b5f6020820190508181035f83015261234b81846122fb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61238082612357565b9050919050565b61239081612376565b811461239a575f80fd5b50565b5f813590506123ab81612387565b92915050565b5f819050919050565b6123c3816123b1565b81146123cd575f80fd5b50565b5f813590506123de816123ba565b92915050565b5f80604083850312156123fa576123f9612353565b5b5f6124078582860161239d565b9250506020612418858286016123d0565b9150509250929050565b5f8115159050919050565b61243681612422565b82525050565b5f60208201905061244f5f83018461242d565b92915050565b5f806040838503121561246b5761246a612353565b5b5f612478858286016123d0565b9250506020612489858286016123d0565b9150509250929050565b61249c816123b1565b82525050565b5f6020820190506124b55f830184612493565b92915050565b5f805f606084860312156124d2576124d1612353565b5b5f6124df8682870161239d565b93505060206124f08682870161239d565b9250506040612501868287016123d0565b9150509250925092565b5f60ff82169050919050565b6125208161250b565b82525050565b5f6020820190506125395f830184612517565b92915050565b5f6020828403121561255457612553612353565b5b5f6125618482850161239d565b91505092915050565b61257381612376565b82525050565b5f60208201905061258c5f83018461256a565b92915050565b5f80604083850312156125a8576125a7612353565b5b5f6125b58582860161239d565b92505060206125c68582860161239d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126046020836122b3565b915061260f826125d0565b602082019050919050565b5f6020820190508181035f830152612631816125f8565b9050919050565b7f45524332303a2077726f6e67207461782076616c7565210000000000000000005f82015250565b5f61266c6017836122b3565b915061267782612638565b602082019050919050565b5f6020820190508181035f83015261269981612660565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612722578086048111156126fe576126fd6126a0565b5b600185161561270d5780820291505b808102905061271b856126cd565b94506126e2565b94509492505050565b5f8261273a57600190506127f5565b81612747575f90506127f5565b816001811461275d576002811461276757612796565b60019150506127f5565b60ff841115612779576127786126a0565b5b8360020a9150848211156127905761278f6126a0565b5b506127f5565b5060208310610133831016604e8410600b84101617156127cb5782820a9050838111156127c6576127c56126a0565b5b6127f5565b6127d884848460016126d9565b925090508184048111156127ef576127ee6126a0565b5b81810290505b9392505050565b5f612806826123b1565b91506128118361250b565b925061283e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461272b565b905092915050565b5f612850826123b1565b915061285b836123b1565b9250828202612869816123b1565b915082820484148315176128805761287f6126a0565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6128e16028836122b3565b91506128ec82612887565b604082019050919050565b5f6020820190508181035f83015261290e816128d5565b9050919050565b5f61291f826123b1565b915061292a836123b1565b9250828203905081811115612942576129416126a0565b5b92915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a26022836122b3565b91506129ad82612948565b604082019050919050565b5f6020820190508181035f8301526129cf81612996565b9050919050565b5f815190506129e4816123ba565b92915050565b5f602082840312156129ff576129fe612353565b5b5f612a0c848285016129d6565b91505092915050565b7f496e73756666696369656e7420416d6f756e74000000000000000000000000005f82015250565b5f612a496013836122b3565b9150612a5482612a15565b602082019050919050565b5f6020820190508181035f830152612a7681612a3d565b9050919050565b5f819050919050565b5f612aa0612a9b612a9684612357565b612a7d565b612357565b9050919050565b5f612ab182612a86565b9050919050565b5f612ac282612aa7565b9050919050565b612ad281612ab8565b82525050565b5f604082019050612aeb5f830185612ac9565b612af86020830184612493565b9392505050565b612b0881612422565b8114612b12575f80fd5b50565b5f81519050612b2381612aff565b92915050565b5f60208284031215612b3e57612b3d612353565b5b5f612b4b84828501612b15565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b886017836122b3565b9150612b9382612b54565b602082019050919050565b5f6020820190508181035f830152612bb581612b7c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612c166026836122b3565b9150612c2182612bbc565b604082019050919050565b5f6020820190508181035f830152612c4381612c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ca46024836122b3565b9150612caf82612c4a565b604082019050919050565b5f6020820190508181035f830152612cd181612c98565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d326022836122b3565b9150612d3d82612cd8565b604082019050919050565b5f6020820190508181035f830152612d5f81612d26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dc06025836122b3565b9150612dcb82612d66565b604082019050919050565b5f6020820190508181035f830152612ded81612db4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e4e6023836122b3565b9150612e5982612df4565b604082019050919050565b5f6020820190508181035f830152612e7b81612e42565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612edc6029836122b3565b9150612ee782612e82565b604082019050919050565b5f6020820190508181035f830152612f0981612ed0565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612f446013836122b3565b9150612f4f82612f10565b602082019050919050565b5f6020820190508181035f830152612f7181612f38565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612faf826123b1565b9150612fba836123b1565b925082612fca57612fc9612f78565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130096019836122b3565b915061301482612fd5565b602082019050919050565b5f6020820190508181035f83015261303681612ffd565b9050919050565b5f613047826123b1565b9150613052836123b1565b925082820190508082111561306a576130696126a0565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130a4601a836122b3565b91506130af82613070565b602082019050919050565b5f6020820190508181035f8301526130d181613098565b9050919050565b5f6130e2826123b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613114576131136126a0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6131536017836122b3565b915061315e8261311f565b602082019050919050565b5f6020820190508181035f83015261318081613147565b9050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e20300000005f82015250565b5f6131bb601d836122b3565b91506131c682613187565b602082019050919050565b5f6020820190508181035f8301526131e8816131af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061325781612387565b92915050565b5f6020828403121561327257613271612353565b5b5f61327f84828501613249565b91505092915050565b5f819050919050565b5f6132ab6132a66132a184613288565b612a7d565b6123b1565b9050919050565b6132bb81613291565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132f381612376565b82525050565b5f61330483836132ea565b60208301905092915050565b5f602082019050919050565b5f613326826132c1565b61333081856132cb565b935061333b836132db565b805f5b8381101561336b57815161335288826132f9565b975061335d83613310565b92505060018101905061333e565b5085935050505092915050565b5f60a08201905061338b5f830188612493565b61339860208301876132b2565b81810360408301526133aa818661331c565b90506133b9606083018561256a565b6133c66080830184612493565b969550505050505056fea264697066735822122053e4a73f5464aed405781c4a8b059d7a877b3619048880454bb69307823e2b5a64736f6c63430008180033
Deployed Bytecode Sourcemap
2727:10295:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5783:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6715:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11385:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6054:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6882:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5965:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11291:86;;;;;;;;;;;;;:::i;:::-;;11850:360;;;;;;;;;;;;;:::i;:::-;;12262:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6155:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1812:148;;;;;;;;;;;;;:::i;:::-;;1196:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5872:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6393:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3574:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11625:214;;;;;;;;;;;;;:::i;:::-;;12639:380;;;;;;;;;;;;;:::i;:::-;;6566:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1406:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3804:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3607:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5783:83;5820:13;5853:5;;;;;;;;;;;;;;;;;5846:12;;5783:83;:::o;6715:161::-;6790:4;6807:39;6816:12;:10;:12::i;:::-;6830:7;6839:6;6807:8;:39::i;:::-;6864:4;6857:11;;6715:161;;;;:::o;11385:229::-;1331:12;:10;:12::i;:::-;1321:22;;:6;;;;;;;;;;:22;;;1313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11492:2:::1;11479:9;:15;;:35;;;;;11512:2;11498:10;:16;;11479:35;11471:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11564:9;11553:8;:20;;;;11596:10;11584:9;:22;;;;11385:229:::0;;:::o;6054:95::-;6107:7;3128:1;3188:2;:13;;;;:::i;:::-;3172;:29;;;;:::i;:::-;6127:14;;6054:95;:::o;6882:410::-;6980:4;6997:24;7024:11;:19;7036:6;7024:19;;;;;;;;;;;;;;;:33;7044:12;:10;:12::i;:::-;7024:33;;;;;;;;;;;;;;;;6997:60;;7096:6;7076:16;:26;;7068:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7158:36;7168:6;7176:9;7187:6;7158:9;:36::i;:::-;7205:57;7214:6;7222:12;:10;:12::i;:::-;7255:6;7236:16;:25;;;;:::i;:::-;7205:8;:57::i;:::-;7280:4;7273:11;;;6882:410;;;;;:::o;5965:83::-;6006:5;3128:1;6024:16;;5965:83;:::o;11291:86::-;1331:12;:10;:12::i;:::-;1321:22;;:6;;;;;;;;;;:22;;;1313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3128:1:::1;3188:2;:13;;;;:::i;:::-;3172;:29;;;;:::i;:::-;11345:11;:21;;;;11291:86::o:0;11850:360::-;11913:9;;;;;;;;;;;11898:24;;:12;:10;:12::i;:::-;:24;;;11890:33;;;;;;11934:20;11957:24;11975:4;11957:9;:24::i;:::-;11934:47;;12010:1;11995:12;:16;11992:78;;;12028:30;12045:12;12028:16;:30::i;:::-;11992:78;12080:18;12101:21;12080:42;;12149:1;12136:10;:14;12133:70;;;12167:24;12180:10;12167:12;:24::i;:::-;12133:70;11881:329;;11850:360::o;12262:366::-;1331:12;:10;:12::i;:::-;1321:22;;:6;;;;;;;;;;:22;;;1313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12381:1:::1;12371:7;:11;12363:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12458:10;12451:28;;;12488:4;12451:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12440:7;:54;;12432:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;12536:10;12529:27;;;12557:9;;;;;;;;;;;12568:7;12529:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12611:7;12590:29;;;;;;;;;;12262:366:::0;;:::o;6155:119::-;6221:7;6248:9;:18;6258:7;6248:18;;;;;;;;;;;;;;;;6241:25;;6155:119;;;:::o;1812:148::-;1331:12;:10;:12::i;:::-;1321:22;;:6;;;;;;;;;;:22;;;1313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1919:1:::1;1882:40;;1903:6;::::0;::::1;;;;;;;;1882:40;;;;;;;;;;;;1950:1;1933:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1812:148::o:0;1196:79::-;1234:7;1261:6;;;;;;;;;;;1254:13;;1196:79;:::o;5872:87::-;5911:13;5944:7;;;;;;;;;;;;;;;;;5937:14;;5872:87;:::o;6393:167::-;6471:4;6488:42;6498:12;:10;:12::i;:::-;6512:9;6523:6;6488:9;:42::i;:::-;6548:4;6541:11;;6393:167;;;;:::o;3574:26::-;;;;:::o;11625:214::-;1331:12;:10;:12::i;:::-;1321:22;;:6;;;;;;;;;;:22;;;1313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11689:11:::1;;;;;;;;;;;11688:12;11680:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11756:4;11738:15;;:22;;;;;;;;;;;;;;;;;;11786:4;11772:11;;:18;;;;;;;;;;;;;;;;;;11805:20;;;;;;;;;;11625:214::o:0;12639:380::-;12693:26;12722:21;12693:50;;12783:1;12762:18;:22;12754:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12864:21;12842:18;:43;;12834:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12936:9;;;;;;;;;;;12920:36;;:56;12957:18;12920:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12990:21;;;;;;;;;;12682:337;12639:380::o;6566:143::-;6647:7;6674:11;:18;6686:5;6674:18;;;;;;;;;;;;;;;:27;6693:7;6674:27;;;;;;;;;;;;;;;;6667:34;;6566:143;;;;:::o;1406:203::-;1331:12;:10;:12::i;:::-;1321:22;;:6;;;;;;;;;;:22;;;1313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1517:1:::1;1497:22;;:8;:22;;::::0;1489:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1573:28;1592:8;1573:18;:28::i;:::-;1406:203:::0;:::o;3804:31::-;;;;;;;;;;;;;:::o;3607:27::-;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;7298:335::-;7408:1;7391:19;;:5;:19;;;7383:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7489:1;7470:21;;:7;:21;;;7462:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7571:6;7541:11;:18;7553:5;7541:18;;;;;;;;;;;;;;;:27;7560:7;7541:27;;;;;;;;;;;;;;;:36;;;;7609:7;7593:32;;7602:5;7593:32;;;7618:6;7593:32;;;;;;:::i;:::-;;;;;;;;7298:335;;;:::o;7639:2917::-;7743:1;7727:18;;:4;:18;;;7719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7820:1;7806:16;;:2;:16;;;7798:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7890:1;7881:6;:10;7873:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7948:15;7992:7;:5;:7::i;:::-;7984:15;;:4;:15;;;;:32;;;;;8009:7;:5;:7::i;:::-;8003:13;;:2;:13;;;;7984:32;7980:169;;;8049:11;;;;;;;;;;;8041:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8133:3;8120:8;;8110:6;:19;;;;:::i;:::-;:27;;;;:::i;:::-;8100:37;;7980:169;8175:17;:23;8193:4;8175:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;8202:17;:21;8220:2;8202:21;;;;;;;;;;;;;;;;;;;;;;;;;8175:48;8171:92;;;8250:1;8240:11;;8171:92;8299:13;;;;;;;;;;;8291:21;;:4;:21;;;:55;;;;;8330:15;;;;;;;;;;;8316:30;;:2;:30;;;;8291:55;:81;;;;;8351:17;:21;8369:2;8351:21;;;;;;;;;;;;;;;;;;;;;;;;;8350:22;8291:81;8287:296;;;8408:11;;8398:6;:21;;8390:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8499:11;;8489:6;8473:13;8483:2;8473:9;:13::i;:::-;:22;;;;:::i;:::-;:37;;8465:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;8558:9;;:11;;;;;;;;;:::i;:::-;;;;;;8287:296;8618:13;;;;;;;;;;;8610:21;;:4;:21;;;;:49;;;;;8636:17;:23;8654:4;8636:23;;;;;;;;;;;;;;;;;;;;;;;;;8635:24;8610:49;:75;;;;;8664:17;:21;8682:2;8664:21;;;;;;;;;;;;;;;;;;;;;;;;;8663:22;8610:75;8606:198;;;8721:11;;8711:6;:21;;8703:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8778:10;;:12;;;;;;;;;:::i;:::-;;;;;;8606:198;8836:13;;;;;;;;;;;8830:19;;:2;:19;;;:44;;;;;8869:4;8853:21;;:4;:21;;;;8830:44;:72;;;;;8879:17;:23;8897:4;8879:23;;;;;;;;;;;;;;;;;;;;;;;;;8878:24;8830:72;:98;;;;;8907:17;:21;8925:2;8907:21;;;;;;;;;;;;;;;;;;;;;;;;;8906:22;8830:98;8826:202;;;8986:3;8972:9;;8962:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;8952:38;;8826:202;9053:28;9084:24;9102:4;9084:9;:24::i;:::-;9053:55;;9128:6;;;;;;;;;;;9127:7;:32;;;;;9146:13;;;;;;;;;;;9138:21;;:4;:21;;;;9127:32;:51;;;;;9163:15;;;;;;;;;;;9127:51;:88;;;;;9205:10;;9182:20;:33;9127:88;:105;;;;;9231:1;9219:9;;:13;9127:105;9123:1086;;;9272:13;;9257:12;:28;9253:90;;;9322:1;9310:9;:13;;;;9253:90;9381:1;9369:9;;:13;9361:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9429:71;9446:53;9450:6;9458:40;9462:20;9484:13;;9458:3;:40::i;:::-;9446:3;:53::i;:::-;9429:16;:71::i;:::-;9518:26;9547:21;9518:50;;9611:1;9590:18;:22;9587:105;;;9637:35;9650:21;9637:12;:35::i;:::-;9587:105;9710:9;;:11;;;;;;;;;:::i;:::-;;;;;;9756:12;9740:13;:28;;;;9234:550;9123:1086;;;9806:6;;;;;;;;;;;9805:7;:32;;;;;9824:13;;;;;;;;;;;9816:21;;:4;:21;;;;9805:32;:51;;;;;9841:15;;;;;;;;;;;9805:51;:88;;;;;9883:10;;9860:20;:33;9805:88;:105;;;;;9909:1;9897:9;;:13;9805:105;9801:408;;;9931:71;9948:53;9952:6;9960:40;9964:20;9986:13;;9960:3;:40::i;:::-;9948:3;:53::i;:::-;9931:16;:71::i;:::-;10021:26;10050:21;10021:50;;10114:1;10093:18;:22;10090:105;;;10140:35;10153:21;10140:12;:35::i;:::-;10090:105;9912:297;9801:408;9123:1086;10255:6;10237:9;:15;10247:4;10237:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;10219:9;:15;10229:4;10219:15;;;;;;;;;;;;;;;:42;;;;10316:7;10306:6;:18;;;;:::i;:::-;10289:9;:13;10299:2;10289:13;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;10273:9;:13;10283:2;10273:13;;;;;;;;;;;;;;;:52;;;;10356:2;10341:38;;10350:4;10341:38;;;10370:7;10360:6;:18;;;;:::i;:::-;10341:38;;;;;;:::i;:::-;;;;;;;;10404:1;10394:7;:11;10391:158;;;10474:7;10446:9;:24;10464:4;10446:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;10419:9;:24;10437:4;10419:24;;;;;;;;;;;;;;;:63;;;;10523:4;10500:37;;10509:4;10500:37;;;10529:7;10500:37;;;;;;:::i;:::-;;;;;;;;10391:158;7708:2848;;7639:2917;;;:::o;10567:551::-;4097:4;4088:6;;:13;;;;;;;;;;;;;;;;;;10667:1:::1;10653:11;:15;10645:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10713:21;10751:1;10737:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10713:40;;10782:4;10764;10769:1;10764:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10808:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10798:4;10803:1;10798:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10841:62;10858:4;10873:15;;;;;;;;;;;10891:11;10841:8;:62::i;:::-;10914:15;;;;;;;;;;;:66;;;10995:11;11021:1;11037:4;11064;11084:15;10914:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10634:484;4133:5:::0;4124:6;;:14;;;;;;;;;;;;;;;;;;10567:551;:::o;11129:153::-;11202:1;11193:6;:10;11185:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11248:9;;;;;;;;;;;:18;;:26;11267:6;11248:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11129:153;:::o;1615:191::-;1689:16;1708:6;;;;;;;;;;;1689:25;;1734:8;1725:6;;:17;;;;;;;;;;;;;;;;;;1789:8;1758:40;;1779:8;1758:40;;;;;;;;;;;;1678:128;1615:191;:::o;6280:107::-;6337:7;6369:1;6365;:5;6364:15;;6378:1;6364:15;;;6374:1;6364:15;6357:22;;6280:107;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:182::-;6640:34;6636:1;6628:6;6624:14;6617:58;6500:182;:::o;6688:366::-;6830:3;6851:67;6915:2;6910:3;6851:67;:::i;:::-;6844:74;;6927:93;7016:3;6927:93;:::i;:::-;7045:2;7040:3;7036:12;7029:19;;6688:366;;;:::o;7060:419::-;7226:4;7264:2;7253:9;7249:18;7241:26;;7313:9;7307:4;7303:20;7299:1;7288:9;7284:17;7277:47;7341:131;7467:4;7341:131;:::i;:::-;7333:139;;7060:419;;;:::o;7485:173::-;7625:25;7621:1;7613:6;7609:14;7602:49;7485:173;:::o;7664:366::-;7806:3;7827:67;7891:2;7886:3;7827:67;:::i;:::-;7820:74;;7903:93;7992:3;7903:93;:::i;:::-;8021:2;8016:3;8012:12;8005:19;;7664:366;;;:::o;8036:419::-;8202:4;8240:2;8229:9;8225:18;8217:26;;8289:9;8283:4;8279:20;8275:1;8264:9;8260:17;8253:47;8317:131;8443:4;8317:131;:::i;:::-;8309:139;;8036:419;;;:::o;8461:180::-;8509:77;8506:1;8499:88;8606:4;8603:1;8596:15;8630:4;8627:1;8620:15;8647:102;8689:8;8736:5;8733:1;8729:13;8708:34;;8647:102;;;:::o;8755:848::-;8816:5;8823:4;8847:6;8838:15;;8871:5;8862:14;;8885:712;8906:1;8896:8;8893:15;8885:712;;;9001:4;8996:3;8992:14;8986:4;8983:24;8980:50;;;9010:18;;:::i;:::-;8980:50;9060:1;9050:8;9046:16;9043:451;;;9475:4;9468:5;9464:16;9455:25;;9043:451;9525:4;9519;9515:15;9507:23;;9555:32;9578:8;9555:32;:::i;:::-;9543:44;;8885:712;;;8755:848;;;;;;;:::o;9609:1073::-;9663:5;9854:8;9844:40;;9875:1;9866:10;;9877:5;;9844:40;9903:4;9893:36;;9920:1;9911:10;;9922:5;;9893:36;9989:4;10037:1;10032:27;;;;10073:1;10068:191;;;;9982:277;;10032:27;10050:1;10041:10;;10052:5;;;10068:191;10113:3;10103:8;10100:17;10097:43;;;10120:18;;:::i;:::-;10097:43;10169:8;10166:1;10162:16;10153:25;;10204:3;10197:5;10194:14;10191:40;;;10211:18;;:::i;:::-;10191:40;10244:5;;;9982:277;;10368:2;10358:8;10355:16;10349:3;10343:4;10340:13;10336:36;10318:2;10308:8;10305:16;10300:2;10294:4;10291:12;10287:35;10271:111;10268:246;;;10424:8;10418:4;10414:19;10405:28;;10459:3;10452:5;10449:14;10446:40;;;10466:18;;:::i;:::-;10446:40;10499:5;;10268:246;10539:42;10577:3;10567:8;10561:4;10558:1;10539:42;:::i;:::-;10524:57;;;;10613:4;10608:3;10604:14;10597:5;10594:25;10591:51;;;10622:18;;:::i;:::-;10591:51;10671:4;10664:5;10660:16;10651:25;;9609:1073;;;;;;:::o;10688:281::-;10746:5;10770:23;10788:4;10770:23;:::i;:::-;10762:31;;10814:25;10830:8;10814:25;:::i;:::-;10802:37;;10858:104;10895:66;10885:8;10879:4;10858:104;:::i;:::-;10849:113;;10688:281;;;;:::o;10975:410::-;11015:7;11038:20;11056:1;11038:20;:::i;:::-;11033:25;;11072:20;11090:1;11072:20;:::i;:::-;11067:25;;11127:1;11124;11120:9;11149:30;11167:11;11149:30;:::i;:::-;11138:41;;11328:1;11319:7;11315:15;11312:1;11309:22;11289:1;11282:9;11262:83;11239:139;;11358:18;;:::i;:::-;11239:139;11023:362;10975:410;;;;:::o;11391:227::-;11531:34;11527:1;11519:6;11515:14;11508:58;11600:10;11595:2;11587:6;11583:15;11576:35;11391:227;:::o;11624:366::-;11766:3;11787:67;11851:2;11846:3;11787:67;:::i;:::-;11780:74;;11863:93;11952:3;11863:93;:::i;:::-;11981:2;11976:3;11972:12;11965:19;;11624:366;;;:::o;11996:419::-;12162:4;12200:2;12189:9;12185:18;12177:26;;12249:9;12243:4;12239:20;12235:1;12224:9;12220:17;12213:47;12277:131;12403:4;12277:131;:::i;:::-;12269:139;;11996:419;;;:::o;12421:194::-;12461:4;12481:20;12499:1;12481:20;:::i;:::-;12476:25;;12515:20;12533:1;12515:20;:::i;:::-;12510:25;;12559:1;12556;12552:9;12544:17;;12583:1;12577:4;12574:11;12571:37;;;12588:18;;:::i;:::-;12571:37;12421:194;;;;:::o;12621:221::-;12761:34;12757:1;12749:6;12745:14;12738:58;12830:4;12825:2;12817:6;12813:15;12806:29;12621:221;:::o;12848:366::-;12990:3;13011:67;13075:2;13070:3;13011:67;:::i;:::-;13004:74;;13087:93;13176:3;13087:93;:::i;:::-;13205:2;13200:3;13196:12;13189:19;;12848:366;;;:::o;13220:419::-;13386:4;13424:2;13413:9;13409:18;13401:26;;13473:9;13467:4;13463:20;13459:1;13448:9;13444:17;13437:47;13501:131;13627:4;13501:131;:::i;:::-;13493:139;;13220:419;;;:::o;13645:143::-;13702:5;13733:6;13727:13;13718:22;;13749:33;13776:5;13749:33;:::i;:::-;13645:143;;;;:::o;13794:351::-;13864:6;13913:2;13901:9;13892:7;13888:23;13884:32;13881:119;;;13919:79;;:::i;:::-;13881:119;14039:1;14064:64;14120:7;14111:6;14100:9;14096:22;14064:64;:::i;:::-;14054:74;;14010:128;13794:351;;;;:::o;14151:169::-;14291:21;14287:1;14279:6;14275:14;14268:45;14151:169;:::o;14326:366::-;14468:3;14489:67;14553:2;14548:3;14489:67;:::i;:::-;14482:74;;14565:93;14654:3;14565:93;:::i;:::-;14683:2;14678:3;14674:12;14667:19;;14326:366;;;:::o;14698:419::-;14864:4;14902:2;14891:9;14887:18;14879:26;;14951:9;14945:4;14941:20;14937:1;14926:9;14922:17;14915:47;14979:131;15105:4;14979:131;:::i;:::-;14971:139;;14698:419;;;:::o;15123:60::-;15151:3;15172:5;15165:12;;15123:60;;;:::o;15189:142::-;15239:9;15272:53;15290:34;15299:24;15317:5;15299:24;:::i;:::-;15290:34;:::i;:::-;15272:53;:::i;:::-;15259:66;;15189:142;;;:::o;15337:126::-;15387:9;15420:37;15451:5;15420:37;:::i;:::-;15407:50;;15337:126;;;:::o;15469:134::-;15527:9;15560:37;15591:5;15560:37;:::i;:::-;15547:50;;15469:134;;;:::o;15609:147::-;15704:45;15743:5;15704:45;:::i;:::-;15699:3;15692:58;15609:147;;:::o;15762:348::-;15891:4;15929:2;15918:9;15914:18;15906:26;;15942:79;16018:1;16007:9;16003:17;15994:6;15942:79;:::i;:::-;16031:72;16099:2;16088:9;16084:18;16075:6;16031:72;:::i;:::-;15762:348;;;;;:::o;16116:116::-;16186:21;16201:5;16186:21;:::i;:::-;16179:5;16176:32;16166:60;;16222:1;16219;16212:12;16166:60;16116:116;:::o;16238:137::-;16292:5;16323:6;16317:13;16308:22;;16339:30;16363:5;16339:30;:::i;:::-;16238:137;;;;:::o;16381:345::-;16448:6;16497:2;16485:9;16476:7;16472:23;16468:32;16465:119;;;16503:79;;:::i;:::-;16465:119;16623:1;16648:61;16701:7;16692:6;16681:9;16677:22;16648:61;:::i;:::-;16638:71;;16594:125;16381:345;;;;:::o;16732:173::-;16872:25;16868:1;16860:6;16856:14;16849:49;16732:173;:::o;16911:366::-;17053:3;17074:67;17138:2;17133:3;17074:67;:::i;:::-;17067:74;;17150:93;17239:3;17150:93;:::i;:::-;17268:2;17263:3;17259:12;17252:19;;16911:366;;;:::o;17283:419::-;17449:4;17487:2;17476:9;17472:18;17464:26;;17536:9;17530:4;17526:20;17522:1;17511:9;17507:17;17500:47;17564:131;17690:4;17564:131;:::i;:::-;17556:139;;17283:419;;;:::o;17708:225::-;17848:34;17844:1;17836:6;17832:14;17825:58;17917:8;17912:2;17904:6;17900:15;17893:33;17708:225;:::o;17939:366::-;18081:3;18102:67;18166:2;18161:3;18102:67;:::i;:::-;18095:74;;18178:93;18267:3;18178:93;:::i;:::-;18296:2;18291:3;18287:12;18280:19;;17939:366;;;:::o;18311:419::-;18477:4;18515:2;18504:9;18500:18;18492:26;;18564:9;18558:4;18554:20;18550:1;18539:9;18535:17;18528:47;18592:131;18718:4;18592:131;:::i;:::-;18584:139;;18311:419;;;:::o;18736:223::-;18876:34;18872:1;18864:6;18860:14;18853:58;18945:6;18940:2;18932:6;18928:15;18921:31;18736:223;:::o;18965:366::-;19107:3;19128:67;19192:2;19187:3;19128:67;:::i;:::-;19121:74;;19204:93;19293:3;19204:93;:::i;:::-;19322:2;19317:3;19313:12;19306:19;;18965:366;;;:::o;19337:419::-;19503:4;19541:2;19530:9;19526:18;19518:26;;19590:9;19584:4;19580:20;19576:1;19565:9;19561:17;19554:47;19618:131;19744:4;19618:131;:::i;:::-;19610:139;;19337:419;;;:::o;19762:221::-;19902:34;19898:1;19890:6;19886:14;19879:58;19971:4;19966:2;19958:6;19954:15;19947:29;19762:221;:::o;19989:366::-;20131:3;20152:67;20216:2;20211:3;20152:67;:::i;:::-;20145:74;;20228:93;20317:3;20228:93;:::i;:::-;20346:2;20341:3;20337:12;20330:19;;19989:366;;;:::o;20361:419::-;20527:4;20565:2;20554:9;20550:18;20542:26;;20614:9;20608:4;20604:20;20600:1;20589:9;20585:17;20578:47;20642:131;20768:4;20642:131;:::i;:::-;20634:139;;20361:419;;;:::o;20786:224::-;20926:34;20922:1;20914:6;20910:14;20903:58;20995:7;20990:2;20982:6;20978:15;20971:32;20786:224;:::o;21016:366::-;21158:3;21179:67;21243:2;21238:3;21179:67;:::i;:::-;21172:74;;21255:93;21344:3;21255:93;:::i;:::-;21373:2;21368:3;21364:12;21357:19;;21016:366;;;:::o;21388:419::-;21554:4;21592:2;21581:9;21577:18;21569:26;;21641:9;21635:4;21631:20;21627:1;21616:9;21612:17;21605:47;21669:131;21795:4;21669:131;:::i;:::-;21661:139;;21388:419;;;:::o;21813:222::-;21953:34;21949:1;21941:6;21937:14;21930:58;22022:5;22017:2;22009:6;22005:15;21998:30;21813:222;:::o;22041:366::-;22183:3;22204:67;22268:2;22263:3;22204:67;:::i;:::-;22197:74;;22280:93;22369:3;22280:93;:::i;:::-;22398:2;22393:3;22389:12;22382:19;;22041:366;;;:::o;22413:419::-;22579:4;22617:2;22606:9;22602:18;22594:26;;22666:9;22660:4;22656:20;22652:1;22641:9;22637:17;22630:47;22694:131;22820:4;22694:131;:::i;:::-;22686:139;;22413:419;;;:::o;22838:228::-;22978:34;22974:1;22966:6;22962:14;22955:58;23047:11;23042:2;23034:6;23030:15;23023:36;22838:228;:::o;23072:366::-;23214:3;23235:67;23299:2;23294:3;23235:67;:::i;:::-;23228:74;;23311:93;23400:3;23311:93;:::i;:::-;23429:2;23424:3;23420:12;23413:19;;23072:366;;;:::o;23444:419::-;23610:4;23648:2;23637:9;23633:18;23625:26;;23697:9;23691:4;23687:20;23683:1;23672:9;23668:17;23661:47;23725:131;23851:4;23725:131;:::i;:::-;23717:139;;23444:419;;;:::o;23869:169::-;24009:21;24005:1;23997:6;23993:14;23986:45;23869:169;:::o;24044:366::-;24186:3;24207:67;24271:2;24266:3;24207:67;:::i;:::-;24200:74;;24283:93;24372:3;24283:93;:::i;:::-;24401:2;24396:3;24392:12;24385:19;;24044:366;;;:::o;24416:419::-;24582:4;24620:2;24609:9;24605:18;24597:26;;24669:9;24663:4;24659:20;24655:1;24644:9;24640:17;24633:47;24697:131;24823:4;24697:131;:::i;:::-;24689:139;;24416:419;;;:::o;24841:180::-;24889:77;24886:1;24879:88;24986:4;24983:1;24976:15;25010:4;25007:1;25000:15;25027:185;25067:1;25084:20;25102:1;25084:20;:::i;:::-;25079:25;;25118:20;25136:1;25118:20;:::i;:::-;25113:25;;25157:1;25147:35;;25162:18;;:::i;:::-;25147:35;25204:1;25201;25197:9;25192:14;;25027:185;;;;:::o;25218:175::-;25358:27;25354:1;25346:6;25342:14;25335:51;25218:175;:::o;25399:366::-;25541:3;25562:67;25626:2;25621:3;25562:67;:::i;:::-;25555:74;;25638:93;25727:3;25638:93;:::i;:::-;25756:2;25751:3;25747:12;25740:19;;25399:366;;;:::o;25771:419::-;25937:4;25975:2;25964:9;25960:18;25952:26;;26024:9;26018:4;26014:20;26010:1;25999:9;25995:17;25988:47;26052:131;26178:4;26052:131;:::i;:::-;26044:139;;25771:419;;;:::o;26196:191::-;26236:3;26255:20;26273:1;26255:20;:::i;:::-;26250:25;;26289:20;26307:1;26289:20;:::i;:::-;26284:25;;26332:1;26329;26325:9;26318:16;;26353:3;26350:1;26347:10;26344:36;;;26360:18;;:::i;:::-;26344:36;26196:191;;;;:::o;26393:176::-;26533:28;26529:1;26521:6;26517:14;26510:52;26393:176;:::o;26575:366::-;26717:3;26738:67;26802:2;26797:3;26738:67;:::i;:::-;26731:74;;26814:93;26903:3;26814:93;:::i;:::-;26932:2;26927:3;26923:12;26916:19;;26575:366;;;:::o;26947:419::-;27113:4;27151:2;27140:9;27136:18;27128:26;;27200:9;27194:4;27190:20;27186:1;27175:9;27171:17;27164:47;27228:131;27354:4;27228:131;:::i;:::-;27220:139;;26947:419;;;:::o;27372:233::-;27411:3;27434:24;27452:5;27434:24;:::i;:::-;27425:33;;27480:66;27473:5;27470:77;27467:103;;27550:18;;:::i;:::-;27467:103;27597:1;27590:5;27586:13;27579:20;;27372:233;;;:::o;27611:173::-;27751:25;27747:1;27739:6;27735:14;27728:49;27611:173;:::o;27790:366::-;27932:3;27953:67;28017:2;28012:3;27953:67;:::i;:::-;27946:74;;28029:93;28118:3;28029:93;:::i;:::-;28147:2;28142:3;28138:12;28131:19;;27790:366;;;:::o;28162:419::-;28328:4;28366:2;28355:9;28351:18;28343:26;;28415:9;28409:4;28405:20;28401:1;28390:9;28386:17;28379:47;28443:131;28569:4;28443:131;:::i;:::-;28435:139;;28162:419;;;:::o;28587:179::-;28727:31;28723:1;28715:6;28711:14;28704:55;28587:179;:::o;28772:366::-;28914:3;28935:67;28999:2;28994:3;28935:67;:::i;:::-;28928:74;;29011:93;29100:3;29011:93;:::i;:::-;29129:2;29124:3;29120:12;29113:19;;28772:366;;;:::o;29144:419::-;29310:4;29348:2;29337:9;29333:18;29325:26;;29397:9;29391:4;29387:20;29383:1;29372:9;29368:17;29361:47;29425:131;29551:4;29425:131;:::i;:::-;29417:139;;29144:419;;;:::o;29569:180::-;29617:77;29614:1;29607:88;29714:4;29711:1;29704:15;29738:4;29735:1;29728:15;29755:180;29803:77;29800:1;29793:88;29900:4;29897:1;29890:15;29924:4;29921:1;29914:15;29941:143;29998:5;30029:6;30023:13;30014:22;;30045:33;30072:5;30045:33;:::i;:::-;29941:143;;;;:::o;30090:351::-;30160:6;30209:2;30197:9;30188:7;30184:23;30180:32;30177:119;;;30215:79;;:::i;:::-;30177:119;30335:1;30360:64;30416:7;30407:6;30396:9;30392:22;30360:64;:::i;:::-;30350:74;;30306:128;30090:351;;;;:::o;30447:85::-;30492:7;30521:5;30510:16;;30447:85;;;:::o;30538:158::-;30596:9;30629:61;30647:42;30656:32;30682:5;30656:32;:::i;:::-;30647:42;:::i;:::-;30629:61;:::i;:::-;30616:74;;30538:158;;;:::o;30702:147::-;30797:45;30836:5;30797:45;:::i;:::-;30792:3;30785:58;30702:147;;:::o;30855:114::-;30922:6;30956:5;30950:12;30940:22;;30855:114;;;:::o;30975:184::-;31074:11;31108:6;31103:3;31096:19;31148:4;31143:3;31139:14;31124:29;;30975:184;;;;:::o;31165:132::-;31232:4;31255:3;31247:11;;31285:4;31280:3;31276:14;31268:22;;31165:132;;;:::o;31303:108::-;31380:24;31398:5;31380:24;:::i;:::-;31375:3;31368:37;31303:108;;:::o;31417:179::-;31486:10;31507:46;31549:3;31541:6;31507:46;:::i;:::-;31585:4;31580:3;31576:14;31562:28;;31417:179;;;;:::o;31602:113::-;31672:4;31704;31699:3;31695:14;31687:22;;31602:113;;;:::o;31751:732::-;31870:3;31899:54;31947:5;31899:54;:::i;:::-;31969:86;32048:6;32043:3;31969:86;:::i;:::-;31962:93;;32079:56;32129:5;32079:56;:::i;:::-;32158:7;32189:1;32174:284;32199:6;32196:1;32193:13;32174:284;;;32275:6;32269:13;32302:63;32361:3;32346:13;32302:63;:::i;:::-;32295:70;;32388:60;32441:6;32388:60;:::i;:::-;32378:70;;32234:224;32221:1;32218;32214:9;32209:14;;32174:284;;;32178:14;32474:3;32467:10;;31875:608;;;31751:732;;;;:::o;32489:831::-;32752:4;32790:3;32779:9;32775:19;32767:27;;32804:71;32872:1;32861:9;32857:17;32848:6;32804:71;:::i;:::-;32885:80;32961:2;32950:9;32946:18;32937:6;32885:80;:::i;:::-;33012:9;33006:4;33002:20;32997:2;32986:9;32982:18;32975:48;33040:108;33143:4;33134:6;33040:108;:::i;:::-;33032:116;;33158:72;33226:2;33215:9;33211:18;33202:6;33158:72;:::i;:::-;33240:73;33308:3;33297:9;33293:19;33284:6;33240:73;:::i;:::-;32489:831;;;;;;;;:::o
Swarm Source
ipfs://53e4a73f5464aed405781c4a8b059d7a877b3619048880454bb69307823e2b5a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.