Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
7,000,000 PAL
Holders
393
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PAL
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-09 */ //SPDX-License-Identifier: MIT pragma solidity 0.8.17; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 ); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Auth { address internal owner; mapping(address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public onlyOwner { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } /** * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } contract PAL is IERC20, Auth { using SafeMath for uint256; string constant _name = "Pal"; string constant _symbol = "PAL"; uint8 constant _decimals = 18; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; uint256 _totalSupply = 7000000 * (10**_decimals); uint256 public _maxTxAmount = (_totalSupply * 1) / 100; uint256 public _walletMax = (_totalSupply * 1) / 100; bool public restrictWhales = true; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isBuyFeeExempt; mapping(address => bool) public isSellFeeExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) public isWalletLimitExempt; uint256 public liquidityFee = 0; uint256 public marketingFee = 0; uint256 public extraFeeOnSell = 0; uint256 public burnFee = 0; uint256 public totalFee = 0; uint256 public totalFeeIfSelling = 0; address public autoLiquidityReceiver; address public marketingWallet; IDEXRouter public router; address public pair; uint256 public launchedAt; bool public tradingEnable = true; //bool public zenselltax = true; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = (_totalSupply * 5) / 2000; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() Auth(msg.sender) { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = ~uint256(0); isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD] = true; autoLiquidityReceiver = msg.sender; marketingWallet = msg.sender; totalFee = liquidityFee.add(marketingFee); totalFeeIfSelling = totalFee.add(extraFeeOnSell); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function getOwner() external view override returns (address) { return owner; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, ~uint256(0)); } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function changeTxLimit(uint256 newLimit) external authorized { _maxTxAmount = newLimit; } function changeWalletLimit(uint256 newLimit) external authorized { _walletMax = newLimit; } function changeRestrictWhales(bool newValue) external authorized { restrictWhales = newValue; } function changeIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function changeIsSellFeeExempt(address holder, bool exempt) external authorized { isSellFeeExempt[holder] = exempt; } function changeIsBuyFeeExempt(address holder, bool exempt) external authorized { isBuyFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function changeisWalletLimitExempt(address holder, bool exempt) external authorized { isWalletLimitExempt[holder] = exempt; } function changeFees( uint256 newLiqFee, uint256 newMarketingFee, uint256 newExtraSellFee, uint256 newburnFee ) external authorized { liquidityFee = newLiqFee; marketingFee = newMarketingFee; extraFeeOnSell = newExtraSellFee; burnFee = newburnFee; totalFee = liquidityFee.add(marketingFee); require(totalFee < 45); totalFeeIfSelling = totalFee.add(extraFeeOnSell); } function changeFeeReceivers( address newLiquidityReceiver, address newMarketingWallet ) external authorized { autoLiquidityReceiver = newLiquidityReceiver; marketingWallet = newMarketingWallet; } function changeSwapBackSettings( bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly ) external authorized { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; swapAndLiquifyByLimitOnly = swapByLimitOnly; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != ~uint256(0)) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } if (!authorizations[sender] && !authorizations[recipient]) { require(tradingEnable, "Trading not open yet"); } require( amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded" ); if ( msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold ) { swapBack(); } if (!launched() && recipient == pair) { require(_balances[sender] > 0); launch(); } //Exchange tokens _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); if (!isWalletLimitExempt[recipient]) { require(_balances[recipient].add(amount) <= _walletMax); } bool exemptbuysell = false; if (pair == recipient && isSellFeeExempt[sender]) { exemptbuysell = true; } if (pair == sender && isBuyFeeExempt[recipient]) { exemptbuysell = true; } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] && !exemptbuysell ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; if (!isTxLimitExempt[recipient] && restrictWhales) { feeApplicable = 99; } uint256 feeAmount = amount.mul(feeApplicable).div(100); uint256 burnAmount = amount.mul(burnFee).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if (burnFee > 0 && !restrictWhales) { _balances[address(DEAD)] = _balances[address(DEAD)].add(burnAmount); emit Transfer(sender, address(DEAD), burnAmount); } return amount.sub(feeAmount); } function tradingStatus(bool newStatus) public onlyOwner { tradingEnable = newStatus; } function swapBack() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify .mul(liquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance; uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2)); uint256 amountBNBLiquidity = amountBNB .mul(liquidityFee) .div(totalBNBFee) .div(2); uint256 amountBNBMarketing = amountBNB.sub(amountBNBLiquidity); (bool tmpSuccess, ) = payable(marketingWallet).call{ value: amountBNBMarketing, gas: 30000 }(""); // only to supress warning msg tmpSuccess = false; if (amountToLiquify > 0) { router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } } event AutoLiquify(uint256 amountBNB, uint256 amountBOG); }
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":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newExtraSellFee","type":"uint256"},{"internalType":"uint256","name":"newburnFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsBuyFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsSellFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeisWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"extraFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBuyFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSellFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ee919062000b02565b626acfc0620000fe919062000b53565b6005556064600160055462000114919062000b53565b62000120919062000bcd565b6006556064600160055462000136919062000b53565b62000142919062000bcd565b6007556001600860006101000a81548160ff0219169083151502179055506000601055600060115560006012556000601355600060145560006015556001601b60006101000a81548160ff0219169083151502179055506001601b60026101000a81548160ff0219169083151502179055506000601b60036101000a81548160ff0219169083151502179055506107d060058054620001e2919062000b53565b620001ee919062000bcd565b601c55348015620001fe57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000369573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038f919062000c6f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000418573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043e919062000c6f565b306040518363ffffffff1660e01b81526004016200045e92919062000cb2565b6020604051808303816000875af11580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000c6f565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620008256011546010546200090560201b62001d0f1790919060201c565b601481905550620008496012546014546200090560201b62001d0f1790919060201c565b601581905550600554600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620008f7919062000cf0565b60405180910390a362000dcb565b600080828462000916919062000d0d565b9050838110156200095e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009559062000da9565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009f657808604811115620009ce57620009cd62000968565b5b6001851615620009de5780820291505b8081029050620009ee8562000997565b9450620009ae565b94509492505050565b60008262000a11576001905062000ae4565b8162000a21576000905062000ae4565b816001811462000a3a576002811462000a455762000a7b565b600191505062000ae4565b60ff84111562000a5a5762000a5962000968565b5b8360020a91508482111562000a745762000a7362000968565b5b5062000ae4565b5060208310610133831016604e8410600b841016171562000ab55782820a90508381111562000aaf5762000aae62000968565b5b62000ae4565b62000ac48484846001620009a4565b9250905081840481111562000ade5762000add62000968565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b0f8262000aeb565b915062000b1c8362000af5565b925062000b4b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009ff565b905092915050565b600062000b608262000aeb565b915062000b6d8362000aeb565b925082820262000b7d8162000aeb565b9150828204841483151762000b975762000b9662000968565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bda8262000aeb565b915062000be78362000aeb565b92508262000bfa5762000bf962000b9e565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c378262000c0a565b9050919050565b62000c498162000c2a565b811462000c5557600080fd5b50565b60008151905062000c698162000c3e565b92915050565b60006020828403121562000c885762000c8762000c05565b5b600062000c988482850162000c58565b91505092915050565b62000cac8162000c2a565b82525050565b600060408201905062000cc9600083018562000ca1565b62000cd8602083018462000ca1565b9392505050565b62000cea8162000aeb565b82525050565b600060208201905062000d07600083018462000cdf565b92915050565b600062000d1a8262000aeb565b915062000d278362000aeb565b925082820190508082111562000d425762000d4162000968565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000d91601b8362000d48565b915062000d9e8262000d59565b602082019050919050565b6000602082019050818103600083015262000dc48162000d82565b9050919050565b613f0e8062000ddb6000396000f3fe6080604052600436106103035760003560e01c8063841c737f11610190578063ca987b0e116100dc578063e66b1d1e11610095578063f887ea401161006f578063f887ea4014610bdb578063fabe628314610c06578063fce589d814610c2f578063fe9fbb8014610c5a5761030a565b8063e66b1d1e14610b60578063f0b37c0414610b89578063f2fde38b14610bb25761030a565b8063ca987b0e14610a52578063d33edb5d14610a7d578063d8ab930c14610aa6578063d920334e14610acf578063da00097d14610af8578063dd62ed3e14610b235761030a565b8063a8aa1b3111610149578063bf56b37111610123578063bf56b37114610982578063c4f11885146109ad578063c867d60b146109ea578063ca33e64c14610a275761030a565b8063a8aa1b31146108f1578063a9059cbb1461091c578063b6a5d7de146109595761030a565b8063841c737f146107cd578063893d20e81461080a5780638b42507f1461083557806395d89b411461087257806398118cb41461089d578063a3a2e89e146108c85761030a565b80633f4218e01161024f57806369cf17d41161020857806375f0a874116101e257806375f0a874146107235780637d1db4a51461074e5780637db1342c14610779578063807c2d9c146107a25761030a565b806369cf17d4146106905780636b67c4df146106bb57806370a08231146106e65761030a565b80633f4218e01461056e57806344de2e4c146105ab5780634a74bb02146105d6578063571ac8b014610601578063650c42261461063e57806366927dc8146106675761030a565b80631df4ccfc116102bc5780632b112e49116102965780632b112e49146104b25780632f54bf6e146104dd578063313ce5671461051a57806334c70889146105455761030a565b80631df4ccfc146104215780631f2c80f11461044c57806323b872dd146104755761030a565b80630445b6671461030f57806306fdde031461033a578063095ea7b3146103655780630d295980146103a25780631693e8d4146103cb57806318160ddd146103f65761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c97565b6040516103319190613232565b60405180910390f35b34801561034657600080fd5b5061034f610c9d565b60405161035c91906132dd565b60405180910390f35b34801561037157600080fd5b5061038c6004803603810190610387919061338e565b610cda565b60405161039991906133e9565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190613430565b610dcc565b005b3480156103d757600080fd5b506103e0610e31565b6040516103ed91906133e9565b60405180910390f35b34801561040257600080fd5b5061040b610e44565b6040516104189190613232565b60405180910390f35b34801561042d57600080fd5b50610436610e4e565b6040516104439190613232565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e919061345d565b610e54565b005b34801561048157600080fd5b5061049c6004803603810190610497919061349d565b610f22565b6040516104a991906133e9565b60405180910390f35b3480156104be57600080fd5b506104c7611103565b6040516104d49190613232565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff91906134f0565b611185565b60405161051191906133e9565b60405180910390f35b34801561052657600080fd5b5061052f6111de565b60405161053c9190613539565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190613554565b6111e7565b005b34801561057a57600080fd5b50610595600480360381019061059091906134f0565b61126f565b6040516105a291906133e9565b60405180910390f35b3480156105b757600080fd5b506105c061128f565b6040516105cd91906133e9565b60405180910390f35b3480156105e257600080fd5b506105eb6112a2565b6040516105f891906133e9565b60405180910390f35b34801561060d57600080fd5b50610628600480360381019061062391906134f0565b6112b5565b60405161063591906133e9565b60405180910390f35b34801561064a57600080fd5b50610665600480360381019061066091906135a7565b6112ca565b005b34801561067357600080fd5b5061068e6004803603810190610689919061360e565b61137d565b005b34801561069c57600080fd5b506106a5611420565b6040516106b29190613232565b60405180910390f35b3480156106c757600080fd5b506106d0611426565b6040516106dd9190613232565b60405180910390f35b3480156106f257600080fd5b5061070d600480360381019061070891906134f0565b61142c565b60405161071a9190613232565b60405180910390f35b34801561072f57600080fd5b50610738611475565b604051610745919061365d565b60405180910390f35b34801561075a57600080fd5b5061076361149b565b6040516107709190613232565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190613678565b6114a1565b005b3480156107ae57600080fd5b506107b76114f3565b6040516107c49190613232565b60405180910390f35b3480156107d957600080fd5b506107f460048036038101906107ef91906134f0565b6114f9565b60405161080191906133e9565b60405180910390f35b34801561081657600080fd5b5061081f611519565b60405161082c919061365d565b60405180910390f35b34801561084157600080fd5b5061085c600480360381019061085791906134f0565b611542565b60405161086991906133e9565b60405180910390f35b34801561087e57600080fd5b50610887611562565b60405161089491906132dd565b60405180910390f35b3480156108a957600080fd5b506108b261159f565b6040516108bf9190613232565b60405180910390f35b3480156108d457600080fd5b506108ef60048036038101906108ea919061360e565b6115a5565b005b3480156108fd57600080fd5b50610906611648565b604051610913919061365d565b60405180910390f35b34801561092857600080fd5b50610943600480360381019061093e919061338e565b61166e565b60405161095091906133e9565b60405180910390f35b34801561096557600080fd5b50610980600480360381019061097b91906134f0565b611683565b005b34801561098e57600080fd5b50610997611725565b6040516109a49190613232565b60405180910390f35b3480156109b957600080fd5b506109d460048036038101906109cf91906134f0565b61172b565b6040516109e191906133e9565b60405180910390f35b3480156109f657600080fd5b50610a116004803603810190610a0c91906134f0565b61174b565b604051610a1e91906133e9565b60405180910390f35b348015610a3357600080fd5b50610a3c61176b565b604051610a49919061365d565b60405180910390f35b348015610a5e57600080fd5b50610a67611791565b604051610a749190613232565b60405180910390f35b348015610a8957600080fd5b50610aa46004803603810190610a9f919061360e565b611797565b005b348015610ab257600080fd5b50610acd6004803603810190610ac8919061360e565b61183a565b005b348015610adb57600080fd5b50610af66004803603810190610af19190613678565b6118dd565b005b348015610b0457600080fd5b50610b0d61192f565b604051610b1a91906133e9565b60405180910390f35b348015610b2f57600080fd5b50610b4a6004803603810190610b45919061345d565b611942565b604051610b579190613232565b60405180910390f35b348015610b6c57600080fd5b50610b876004803603810190610b829190613430565b6119c9565b005b348015610b9557600080fd5b50610bb06004803603810190610bab91906134f0565b611a2e565b005b348015610bbe57600080fd5b50610bd96004803603810190610bd491906136e3565b611ad1565b005b348015610be757600080fd5b50610bf0611bea565b604051610bfd919061376f565b60405180910390f35b348015610c1257600080fd5b50610c2d6004803603810190610c28919061360e565b611c10565b005b348015610c3b57600080fd5b50610c44611cb3565b604051610c519190613232565b60405180910390f35b348015610c6657600080fd5b50610c816004803603810190610c7c91906134f0565b611cb9565b604051610c8e91906133e9565b60405180910390f35b601c5481565b60606040518060400160405280600381526020017f50616c0000000000000000000000000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610dba9190613232565b60405180910390a36001905092915050565b610dd533611185565b610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906137d6565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b601b60009054906101000a900460ff1681565b6000600554905090565b60145481565b610e5d33611cb9565b610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390613842565b60405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008019600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110ef5761106e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110fa848484611dd1565b90509392505050565b6000611180611133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661142c565b611172611161600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661142c565b6005546125d690919063ffffffff16565b6125d690919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6111f033611cb9565b61122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122690613842565b60405180910390fd5b82601b60026101000a81548160ff02191690831515021790555081601c8190555080601b60036101000a81548160ff021916908315150217905550505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600860009054906101000a900460ff1681565b601b60029054906101000a900460ff1681565b60006112c382600019610cda565b9050919050565b6112d333611cb9565b611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990613842565b60405180910390fd5b83601081905550826011819055508160128190555080601381905550611345601154601054611d0f90919063ffffffff16565b601481905550602d6014541061135a57600080fd5b611371601254601454611d0f90919063ffffffff16565b60158190555050505050565b61138633611cb9565b6113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613842565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b60115481565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6114aa33611cb9565b6114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090613842565b60405180910390fd5b8060078190555050565b60075481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f50414c0000000000000000000000000000000000000000000000000000000000815250905090565b60105481565b6115ae33611cb9565b6115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490613842565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061167b338484611dd1565b905092915050565b61168c33611185565b6116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c2906137d6565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a5481565b600d6020528060005260406000206000915054906101000a900460ff1681565b600f6020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b6117a033611cb9565b6117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690613842565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61184333611cb9565b611882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187990613842565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118e633611cb9565b611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c90613842565b60405180910390fd5b8060068190555050565b601b60039054906101000a900460ff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119d233611cb9565b611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0890613842565b60405180910390fd5b80600860006101000a81548160ff02191690831515021790555050565b611a3733611185565b611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d906137d6565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ada33611185565b611b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b10906137d6565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611bdf9190613883565b60405180910390a150565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c1933611cb9565b611c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4f90613842565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000808284611d1e91906138cd565b905083811015611d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5a9061394d565b60405180910390fd5b8091505092915050565b6000838311158290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac91906132dd565b60405180910390fd5b5060008385611dc4919061396d565b9050809150509392505050565b6000601b60019054906101000a900460ff1615611dfa57611df3848484612620565b90506125cf565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e9e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef357601b60009054906101000a900460ff16611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee9906139ed565b60405180910390fd5b5b60065482111580611f4d5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8390613a59565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611ff75750601b60019054906101000a900460ff16155b801561200f5750601b60029054906101000a900460ff165b801561205c5750601c54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561206a576120696127f3565b5b612072612d12565b1580156120cc5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612126576000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161211d57600080fd5b612125612d1f565b5b6121af826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166122a45760075461229883600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b11156122a357600080fd5b5b60008373ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561234c5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561235657600190505b8473ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156123fc5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561240657600190505b6000600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124ac5750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124b6575081155b6124c057836124cc565b6124cb868686612d28565b5b905061252081600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125c09190613232565b60405180910390a36001925050505b9392505050565b600061261883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d6d565b905092915050565b60006126ab826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061274082600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127e09190613232565b60405180910390a3600190509392505050565b6001601b60016101000a81548160ff0219169083151502179055506000600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006128906002612882601454612874601054876130f290919063ffffffff16565b61316c90919063ffffffff16565b61316c90919063ffffffff16565b905060006128a782846125d690919063ffffffff16565b90506000600267ffffffffffffffff8111156128c6576128c5613a79565b5b6040519080825280602002602001820160405280156128f45781602001602082028036833780820191505090505b509050308160008151811061290c5761290b613aa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d79190613aec565b816001815181106129eb576129ea613aa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a89959493929190613c12565b600060405180830381600087803b158015612aa357600080fd5b505af1158015612ab7573d6000803e3d6000fd5b5050505060004790506000612aec612adb600260105461316c90919063ffffffff16565b6014546125d690919063ffffffff16565b90506000612b2a6002612b1c84612b0e601054886130f290919063ffffffff16565b61316c90919063ffffffff16565b61316c90919063ffffffff16565b90506000612b4182856125d690919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612b8f90613c9d565b600060405180830381858888f193505050503d8060008114612bcd576040519150601f19603f3d011682016040523d82523d6000602084013e612bd2565b606091505b50509050600090506000881115612cec57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308b600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c6c96959493929190613cb2565b60606040518083038185885af1158015612c8a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612caf9190613d28565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068389604051612ce3929190613d7b565b60405180910390a15b5050505050505050506000601b60016101000a81548160ff021916908315150217905550565b600080601a541415905090565b43601a81905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d8857601454612d8c565b6015545b9050600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612df45750600860009054906101000a900460ff165b15612dfe57606390505b6000612e266064612e1884876130f290919063ffffffff16565b61316c90919063ffffffff16565b90506000612e526064612e44601354886130f290919063ffffffff16565b61316c90919063ffffffff16565b9050612ea682600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f469190613232565b60405180910390a36000601354118015612f6d5750600860009054906101000a900460ff16155b156130d357612fe68160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b60096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130ca9190613232565b60405180910390a35b6130e682866125d690919063ffffffff16565b93505050509392505050565b60008083036131045760009050613166565b600082846131129190613da4565b90508284826131219190613e15565b14613161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315890613eb8565b60405180910390fd5b809150505b92915050565b60006131ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b6565b905092915050565b600080831182906131fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f491906132dd565b60405180910390fd5b506000838561320c9190613e15565b9050809150509392505050565b6000819050919050565b61322c81613219565b82525050565b60006020820190506132476000830184613223565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561328757808201518184015260208101905061326c565b60008484015250505050565b6000601f19601f8301169050919050565b60006132af8261324d565b6132b98185613258565b93506132c9818560208601613269565b6132d281613293565b840191505092915050565b600060208201905081810360008301526132f781846132a4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061332f82613304565b9050919050565b61333f81613324565b811461334a57600080fd5b50565b60008135905061335c81613336565b92915050565b61336b81613219565b811461337657600080fd5b50565b60008135905061338881613362565b92915050565b600080604083850312156133a5576133a46132ff565b5b60006133b38582860161334d565b92505060206133c485828601613379565b9150509250929050565b60008115159050919050565b6133e3816133ce565b82525050565b60006020820190506133fe60008301846133da565b92915050565b61340d816133ce565b811461341857600080fd5b50565b60008135905061342a81613404565b92915050565b600060208284031215613446576134456132ff565b5b60006134548482850161341b565b91505092915050565b60008060408385031215613474576134736132ff565b5b60006134828582860161334d565b92505060206134938582860161334d565b9150509250929050565b6000806000606084860312156134b6576134b56132ff565b5b60006134c48682870161334d565b93505060206134d58682870161334d565b92505060406134e686828701613379565b9150509250925092565b600060208284031215613506576135056132ff565b5b60006135148482850161334d565b91505092915050565b600060ff82169050919050565b6135338161351d565b82525050565b600060208201905061354e600083018461352a565b92915050565b60008060006060848603121561356d5761356c6132ff565b5b600061357b8682870161341b565b935050602061358c86828701613379565b925050604061359d8682870161341b565b9150509250925092565b600080600080608085870312156135c1576135c06132ff565b5b60006135cf87828801613379565b94505060206135e087828801613379565b93505060406135f187828801613379565b925050606061360287828801613379565b91505092959194509250565b60008060408385031215613625576136246132ff565b5b60006136338582860161334d565b92505060206136448582860161341b565b9150509250929050565b61365781613324565b82525050565b6000602082019050613672600083018461364e565b92915050565b60006020828403121561368e5761368d6132ff565b5b600061369c84828501613379565b91505092915050565b60006136b082613304565b9050919050565b6136c0816136a5565b81146136cb57600080fd5b50565b6000813590506136dd816136b7565b92915050565b6000602082840312156136f9576136f86132ff565b5b6000613707848285016136ce565b91505092915050565b6000819050919050565b600061373561373061372b84613304565b613710565b613304565b9050919050565b60006137478261371a565b9050919050565b60006137598261373c565b9050919050565b6137698161374e565b82525050565b60006020820190506137846000830184613760565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006137c0600683613258565b91506137cb8261378a565b602082019050919050565b600060208201905081810360008301526137ef816137b3565b9050919050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061382c600b83613258565b9150613837826137f6565b602082019050919050565b6000602082019050818103600083015261385b8161381f565b9050919050565b600061386d8261373c565b9050919050565b61387d81613862565b82525050565b60006020820190506138986000830184613874565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138d882613219565b91506138e383613219565b92508282019050808211156138fb576138fa61389e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613937601b83613258565b915061394282613901565b602082019050919050565b600060208201905081810360008301526139668161392a565b9050919050565b600061397882613219565b915061398383613219565b925082820390508181111561399b5761399a61389e565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006139d7601483613258565b91506139e2826139a1565b602082019050919050565b60006020820190508181036000830152613a06816139ca565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613a43601183613258565b9150613a4e82613a0d565b602082019050919050565b60006020820190508181036000830152613a7281613a36565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613ae681613336565b92915050565b600060208284031215613b0257613b016132ff565b5b6000613b1084828501613ad7565b91505092915050565b6000819050919050565b6000613b3e613b39613b3484613b19565b613710565b613219565b9050919050565b613b4e81613b23565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b8981613324565b82525050565b6000613b9b8383613b80565b60208301905092915050565b6000602082019050919050565b6000613bbf82613b54565b613bc98185613b5f565b9350613bd483613b70565b8060005b83811015613c05578151613bec8882613b8f565b9750613bf783613ba7565b925050600181019050613bd8565b5085935050505092915050565b600060a082019050613c276000830188613223565b613c346020830187613b45565b8181036040830152613c468186613bb4565b9050613c55606083018561364e565b613c626080830184613223565b9695505050505050565b600081905092915050565b50565b6000613c87600083613c6c565b9150613c9282613c77565b600082019050919050565b6000613ca882613c7a565b9150819050919050565b600060c082019050613cc7600083018961364e565b613cd46020830188613223565b613ce16040830187613b45565b613cee6060830186613b45565b613cfb608083018561364e565b613d0860a0830184613223565b979650505050505050565b600081519050613d2281613362565b92915050565b600080600060608486031215613d4157613d406132ff565b5b6000613d4f86828701613d13565b9350506020613d6086828701613d13565b9250506040613d7186828701613d13565b9150509250925092565b6000604082019050613d906000830185613223565b613d9d6020830184613223565b9392505050565b6000613daf82613219565b9150613dba83613219565b9250828202613dc881613219565b91508282048414831517613ddf57613dde61389e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e2082613219565b9150613e2b83613219565b925082613e3b57613e3a613de6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ea2602183613258565b9150613ead82613e46565b604082019050919050565b60006020820190508181036000830152613ed181613e95565b905091905056fea26469706673582212206e7e213ad8b04069330c0de72db4330561122072a90a8ef63acbcc12c0e6c5b864736f6c63430008110033
Deployed Bytecode
0x6080604052600436106103035760003560e01c8063841c737f11610190578063ca987b0e116100dc578063e66b1d1e11610095578063f887ea401161006f578063f887ea4014610bdb578063fabe628314610c06578063fce589d814610c2f578063fe9fbb8014610c5a5761030a565b8063e66b1d1e14610b60578063f0b37c0414610b89578063f2fde38b14610bb25761030a565b8063ca987b0e14610a52578063d33edb5d14610a7d578063d8ab930c14610aa6578063d920334e14610acf578063da00097d14610af8578063dd62ed3e14610b235761030a565b8063a8aa1b3111610149578063bf56b37111610123578063bf56b37114610982578063c4f11885146109ad578063c867d60b146109ea578063ca33e64c14610a275761030a565b8063a8aa1b31146108f1578063a9059cbb1461091c578063b6a5d7de146109595761030a565b8063841c737f146107cd578063893d20e81461080a5780638b42507f1461083557806395d89b411461087257806398118cb41461089d578063a3a2e89e146108c85761030a565b80633f4218e01161024f57806369cf17d41161020857806375f0a874116101e257806375f0a874146107235780637d1db4a51461074e5780637db1342c14610779578063807c2d9c146107a25761030a565b806369cf17d4146106905780636b67c4df146106bb57806370a08231146106e65761030a565b80633f4218e01461056e57806344de2e4c146105ab5780634a74bb02146105d6578063571ac8b014610601578063650c42261461063e57806366927dc8146106675761030a565b80631df4ccfc116102bc5780632b112e49116102965780632b112e49146104b25780632f54bf6e146104dd578063313ce5671461051a57806334c70889146105455761030a565b80631df4ccfc146104215780631f2c80f11461044c57806323b872dd146104755761030a565b80630445b6671461030f57806306fdde031461033a578063095ea7b3146103655780630d295980146103a25780631693e8d4146103cb57806318160ddd146103f65761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c97565b6040516103319190613232565b60405180910390f35b34801561034657600080fd5b5061034f610c9d565b60405161035c91906132dd565b60405180910390f35b34801561037157600080fd5b5061038c6004803603810190610387919061338e565b610cda565b60405161039991906133e9565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190613430565b610dcc565b005b3480156103d757600080fd5b506103e0610e31565b6040516103ed91906133e9565b60405180910390f35b34801561040257600080fd5b5061040b610e44565b6040516104189190613232565b60405180910390f35b34801561042d57600080fd5b50610436610e4e565b6040516104439190613232565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e919061345d565b610e54565b005b34801561048157600080fd5b5061049c6004803603810190610497919061349d565b610f22565b6040516104a991906133e9565b60405180910390f35b3480156104be57600080fd5b506104c7611103565b6040516104d49190613232565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff91906134f0565b611185565b60405161051191906133e9565b60405180910390f35b34801561052657600080fd5b5061052f6111de565b60405161053c9190613539565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190613554565b6111e7565b005b34801561057a57600080fd5b50610595600480360381019061059091906134f0565b61126f565b6040516105a291906133e9565b60405180910390f35b3480156105b757600080fd5b506105c061128f565b6040516105cd91906133e9565b60405180910390f35b3480156105e257600080fd5b506105eb6112a2565b6040516105f891906133e9565b60405180910390f35b34801561060d57600080fd5b50610628600480360381019061062391906134f0565b6112b5565b60405161063591906133e9565b60405180910390f35b34801561064a57600080fd5b50610665600480360381019061066091906135a7565b6112ca565b005b34801561067357600080fd5b5061068e6004803603810190610689919061360e565b61137d565b005b34801561069c57600080fd5b506106a5611420565b6040516106b29190613232565b60405180910390f35b3480156106c757600080fd5b506106d0611426565b6040516106dd9190613232565b60405180910390f35b3480156106f257600080fd5b5061070d600480360381019061070891906134f0565b61142c565b60405161071a9190613232565b60405180910390f35b34801561072f57600080fd5b50610738611475565b604051610745919061365d565b60405180910390f35b34801561075a57600080fd5b5061076361149b565b6040516107709190613232565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190613678565b6114a1565b005b3480156107ae57600080fd5b506107b76114f3565b6040516107c49190613232565b60405180910390f35b3480156107d957600080fd5b506107f460048036038101906107ef91906134f0565b6114f9565b60405161080191906133e9565b60405180910390f35b34801561081657600080fd5b5061081f611519565b60405161082c919061365d565b60405180910390f35b34801561084157600080fd5b5061085c600480360381019061085791906134f0565b611542565b60405161086991906133e9565b60405180910390f35b34801561087e57600080fd5b50610887611562565b60405161089491906132dd565b60405180910390f35b3480156108a957600080fd5b506108b261159f565b6040516108bf9190613232565b60405180910390f35b3480156108d457600080fd5b506108ef60048036038101906108ea919061360e565b6115a5565b005b3480156108fd57600080fd5b50610906611648565b604051610913919061365d565b60405180910390f35b34801561092857600080fd5b50610943600480360381019061093e919061338e565b61166e565b60405161095091906133e9565b60405180910390f35b34801561096557600080fd5b50610980600480360381019061097b91906134f0565b611683565b005b34801561098e57600080fd5b50610997611725565b6040516109a49190613232565b60405180910390f35b3480156109b957600080fd5b506109d460048036038101906109cf91906134f0565b61172b565b6040516109e191906133e9565b60405180910390f35b3480156109f657600080fd5b50610a116004803603810190610a0c91906134f0565b61174b565b604051610a1e91906133e9565b60405180910390f35b348015610a3357600080fd5b50610a3c61176b565b604051610a49919061365d565b60405180910390f35b348015610a5e57600080fd5b50610a67611791565b604051610a749190613232565b60405180910390f35b348015610a8957600080fd5b50610aa46004803603810190610a9f919061360e565b611797565b005b348015610ab257600080fd5b50610acd6004803603810190610ac8919061360e565b61183a565b005b348015610adb57600080fd5b50610af66004803603810190610af19190613678565b6118dd565b005b348015610b0457600080fd5b50610b0d61192f565b604051610b1a91906133e9565b60405180910390f35b348015610b2f57600080fd5b50610b4a6004803603810190610b45919061345d565b611942565b604051610b579190613232565b60405180910390f35b348015610b6c57600080fd5b50610b876004803603810190610b829190613430565b6119c9565b005b348015610b9557600080fd5b50610bb06004803603810190610bab91906134f0565b611a2e565b005b348015610bbe57600080fd5b50610bd96004803603810190610bd491906136e3565b611ad1565b005b348015610be757600080fd5b50610bf0611bea565b604051610bfd919061376f565b60405180910390f35b348015610c1257600080fd5b50610c2d6004803603810190610c28919061360e565b611c10565b005b348015610c3b57600080fd5b50610c44611cb3565b604051610c519190613232565b60405180910390f35b348015610c6657600080fd5b50610c816004803603810190610c7c91906134f0565b611cb9565b604051610c8e91906133e9565b60405180910390f35b601c5481565b60606040518060400160405280600381526020017f50616c0000000000000000000000000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610dba9190613232565b60405180910390a36001905092915050565b610dd533611185565b610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906137d6565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b601b60009054906101000a900460ff1681565b6000600554905090565b60145481565b610e5d33611cb9565b610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390613842565b60405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008019600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110ef5761106e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110fa848484611dd1565b90509392505050565b6000611180611133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661142c565b611172611161600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661142c565b6005546125d690919063ffffffff16565b6125d690919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6111f033611cb9565b61122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122690613842565b60405180910390fd5b82601b60026101000a81548160ff02191690831515021790555081601c8190555080601b60036101000a81548160ff021916908315150217905550505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600860009054906101000a900460ff1681565b601b60029054906101000a900460ff1681565b60006112c382600019610cda565b9050919050565b6112d333611cb9565b611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990613842565b60405180910390fd5b83601081905550826011819055508160128190555080601381905550611345601154601054611d0f90919063ffffffff16565b601481905550602d6014541061135a57600080fd5b611371601254601454611d0f90919063ffffffff16565b60158190555050505050565b61138633611cb9565b6113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613842565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b60115481565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6114aa33611cb9565b6114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090613842565b60405180910390fd5b8060078190555050565b60075481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f50414c0000000000000000000000000000000000000000000000000000000000815250905090565b60105481565b6115ae33611cb9565b6115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490613842565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061167b338484611dd1565b905092915050565b61168c33611185565b6116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c2906137d6565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a5481565b600d6020528060005260406000206000915054906101000a900460ff1681565b600f6020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b6117a033611cb9565b6117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690613842565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61184333611cb9565b611882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187990613842565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118e633611cb9565b611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c90613842565b60405180910390fd5b8060068190555050565b601b60039054906101000a900460ff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119d233611cb9565b611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0890613842565b60405180910390fd5b80600860006101000a81548160ff02191690831515021790555050565b611a3733611185565b611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d906137d6565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ada33611185565b611b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b10906137d6565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611bdf9190613883565b60405180910390a150565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c1933611cb9565b611c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4f90613842565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000808284611d1e91906138cd565b905083811015611d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5a9061394d565b60405180910390fd5b8091505092915050565b6000838311158290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac91906132dd565b60405180910390fd5b5060008385611dc4919061396d565b9050809150509392505050565b6000601b60019054906101000a900460ff1615611dfa57611df3848484612620565b90506125cf565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e9e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef357601b60009054906101000a900460ff16611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee9906139ed565b60405180910390fd5b5b60065482111580611f4d5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8390613a59565b60405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611ff75750601b60019054906101000a900460ff16155b801561200f5750601b60029054906101000a900460ff165b801561205c5750601c54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561206a576120696127f3565b5b612072612d12565b1580156120cc5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612126576000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161211d57600080fd5b612125612d1f565b5b6121af826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166122a45760075461229883600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b11156122a357600080fd5b5b60008373ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561234c5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561235657600190505b8473ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156123fc5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561240657600190505b6000600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124ac5750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124b6575081155b6124c057836124cc565b6124cb868686612d28565b5b905061252081600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125c09190613232565b60405180910390a36001925050505b9392505050565b600061261883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d6d565b905092915050565b60006126ab826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061274082600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127e09190613232565b60405180910390a3600190509392505050565b6001601b60016101000a81548160ff0219169083151502179055506000600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006128906002612882601454612874601054876130f290919063ffffffff16565b61316c90919063ffffffff16565b61316c90919063ffffffff16565b905060006128a782846125d690919063ffffffff16565b90506000600267ffffffffffffffff8111156128c6576128c5613a79565b5b6040519080825280602002602001820160405280156128f45781602001602082028036833780820191505090505b509050308160008151811061290c5761290b613aa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d79190613aec565b816001815181106129eb576129ea613aa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a89959493929190613c12565b600060405180830381600087803b158015612aa357600080fd5b505af1158015612ab7573d6000803e3d6000fd5b5050505060004790506000612aec612adb600260105461316c90919063ffffffff16565b6014546125d690919063ffffffff16565b90506000612b2a6002612b1c84612b0e601054886130f290919063ffffffff16565b61316c90919063ffffffff16565b61316c90919063ffffffff16565b90506000612b4182856125d690919063ffffffff16565b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612b8f90613c9d565b600060405180830381858888f193505050503d8060008114612bcd576040519150601f19603f3d011682016040523d82523d6000602084013e612bd2565b606091505b50509050600090506000881115612cec57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308b600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c6c96959493929190613cb2565b60606040518083038185885af1158015612c8a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612caf9190613d28565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068389604051612ce3929190613d7b565b60405180910390a15b5050505050505050506000601b60016101000a81548160ff021916908315150217905550565b600080601a541415905090565b43601a81905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d8857601454612d8c565b6015545b9050600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612df45750600860009054906101000a900460ff165b15612dfe57606390505b6000612e266064612e1884876130f290919063ffffffff16565b61316c90919063ffffffff16565b90506000612e526064612e44601354886130f290919063ffffffff16565b61316c90919063ffffffff16565b9050612ea682600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f469190613232565b60405180910390a36000601354118015612f6d5750600860009054906101000a900460ff16155b156130d357612fe68160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b60096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130ca9190613232565b60405180910390a35b6130e682866125d690919063ffffffff16565b93505050509392505050565b60008083036131045760009050613166565b600082846131129190613da4565b90508284826131219190613e15565b14613161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315890613eb8565b60405180910390fd5b809150505b92915050565b60006131ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b6565b905092915050565b600080831182906131fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f491906132dd565b60405180910390fd5b506000838561320c9190613e15565b9050809150509392505050565b6000819050919050565b61322c81613219565b82525050565b60006020820190506132476000830184613223565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561328757808201518184015260208101905061326c565b60008484015250505050565b6000601f19601f8301169050919050565b60006132af8261324d565b6132b98185613258565b93506132c9818560208601613269565b6132d281613293565b840191505092915050565b600060208201905081810360008301526132f781846132a4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061332f82613304565b9050919050565b61333f81613324565b811461334a57600080fd5b50565b60008135905061335c81613336565b92915050565b61336b81613219565b811461337657600080fd5b50565b60008135905061338881613362565b92915050565b600080604083850312156133a5576133a46132ff565b5b60006133b38582860161334d565b92505060206133c485828601613379565b9150509250929050565b60008115159050919050565b6133e3816133ce565b82525050565b60006020820190506133fe60008301846133da565b92915050565b61340d816133ce565b811461341857600080fd5b50565b60008135905061342a81613404565b92915050565b600060208284031215613446576134456132ff565b5b60006134548482850161341b565b91505092915050565b60008060408385031215613474576134736132ff565b5b60006134828582860161334d565b92505060206134938582860161334d565b9150509250929050565b6000806000606084860312156134b6576134b56132ff565b5b60006134c48682870161334d565b93505060206134d58682870161334d565b92505060406134e686828701613379565b9150509250925092565b600060208284031215613506576135056132ff565b5b60006135148482850161334d565b91505092915050565b600060ff82169050919050565b6135338161351d565b82525050565b600060208201905061354e600083018461352a565b92915050565b60008060006060848603121561356d5761356c6132ff565b5b600061357b8682870161341b565b935050602061358c86828701613379565b925050604061359d8682870161341b565b9150509250925092565b600080600080608085870312156135c1576135c06132ff565b5b60006135cf87828801613379565b94505060206135e087828801613379565b93505060406135f187828801613379565b925050606061360287828801613379565b91505092959194509250565b60008060408385031215613625576136246132ff565b5b60006136338582860161334d565b92505060206136448582860161341b565b9150509250929050565b61365781613324565b82525050565b6000602082019050613672600083018461364e565b92915050565b60006020828403121561368e5761368d6132ff565b5b600061369c84828501613379565b91505092915050565b60006136b082613304565b9050919050565b6136c0816136a5565b81146136cb57600080fd5b50565b6000813590506136dd816136b7565b92915050565b6000602082840312156136f9576136f86132ff565b5b6000613707848285016136ce565b91505092915050565b6000819050919050565b600061373561373061372b84613304565b613710565b613304565b9050919050565b60006137478261371a565b9050919050565b60006137598261373c565b9050919050565b6137698161374e565b82525050565b60006020820190506137846000830184613760565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006137c0600683613258565b91506137cb8261378a565b602082019050919050565b600060208201905081810360008301526137ef816137b3565b9050919050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061382c600b83613258565b9150613837826137f6565b602082019050919050565b6000602082019050818103600083015261385b8161381f565b9050919050565b600061386d8261373c565b9050919050565b61387d81613862565b82525050565b60006020820190506138986000830184613874565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138d882613219565b91506138e383613219565b92508282019050808211156138fb576138fa61389e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613937601b83613258565b915061394282613901565b602082019050919050565b600060208201905081810360008301526139668161392a565b9050919050565b600061397882613219565b915061398383613219565b925082820390508181111561399b5761399a61389e565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006139d7601483613258565b91506139e2826139a1565b602082019050919050565b60006020820190508181036000830152613a06816139ca565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613a43601183613258565b9150613a4e82613a0d565b602082019050919050565b60006020820190508181036000830152613a7281613a36565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613ae681613336565b92915050565b600060208284031215613b0257613b016132ff565b5b6000613b1084828501613ad7565b91505092915050565b6000819050919050565b6000613b3e613b39613b3484613b19565b613710565b613219565b9050919050565b613b4e81613b23565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b8981613324565b82525050565b6000613b9b8383613b80565b60208301905092915050565b6000602082019050919050565b6000613bbf82613b54565b613bc98185613b5f565b9350613bd483613b70565b8060005b83811015613c05578151613bec8882613b8f565b9750613bf783613ba7565b925050600181019050613bd8565b5085935050505092915050565b600060a082019050613c276000830188613223565b613c346020830187613b45565b8181036040830152613c468186613bb4565b9050613c55606083018561364e565b613c626080830184613223565b9695505050505050565b600081905092915050565b50565b6000613c87600083613c6c565b9150613c9282613c77565b600082019050919050565b6000613ca882613c7a565b9150819050919050565b600060c082019050613cc7600083018961364e565b613cd46020830188613223565b613ce16040830187613b45565b613cee6060830186613b45565b613cfb608083018561364e565b613d0860a0830184613223565b979650505050505050565b600081519050613d2281613362565b92915050565b600080600060608486031215613d4157613d406132ff565b5b6000613d4f86828701613d13565b9350506020613d6086828701613d13565b9250506040613d7186828701613d13565b9150509250925092565b6000604082019050613d906000830185613223565b613d9d6020830184613223565b9392505050565b6000613daf82613219565b9150613dba83613219565b9250828202613dc881613219565b91508282048414831517613ddf57613dde61389e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e2082613219565b9150613e2b83613219565b925082613e3b57613e3a613de6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ea2602183613258565b9150613ead82613e46565b604082019050919050565b60006020820190508181036000830152613ed181613e95565b905091905056fea26469706673582212206e7e213ad8b04069330c0de72db4330561122072a90a8ef63acbcc12c0e6c5b864736f6c63430008110033
Deployed Bytecode Sourcemap
5634:11817:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7239:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8274:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9267:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15704:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7028:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8584:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6776:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11465:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12231:416;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8794:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5004:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8482:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11714:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6352:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6198:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7138:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9523:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10979:478;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10482:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6701:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6662:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8944:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6898:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6076:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9936:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6137:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6402:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8694:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6509:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8376:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6624:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10166:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6968:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12035:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4677:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6996:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6455:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6564:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6855:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6810;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10320:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10804:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9825:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7185:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9071:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10049:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4847:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6937:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10642:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6741:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5178:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7239:56;;;;:::o;8274:94::-;8322:13;8355:5;;;;;;;;;;;;;;;;;8348:12;;8274:94;:::o;9267:248::-;9369:4;9426:6;9391:11;:23;9403:10;9391:23;;;;;;;;;;;;;;;:32;9415:7;9391:32;;;;;;;;;;;;;;;:41;;;;9469:7;9448:37;;9457:10;9448:37;;;9478:6;9448:37;;;;;;:::i;:::-;;;;;;;;9503:4;9496:11;;9267:248;;;;:::o;15704:100::-;4375:19;4383:10;4375:7;:19::i;:::-;4367:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15787:9:::1;15771:13;;:25;;;;;;;;;;;;;;;;;;15704:100:::0;:::o;7028:32::-;;;;;;;;;;;;;:::o;8584:102::-;8639:7;8666:12;;8659:19;;8584:102;:::o;6776:27::-;;;;:::o;11465:241::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11631:20:::1;11607:21;;:44;;;;;;;;;;;;;;;;;;11680:18;11662:15;;:36;;;;;;;;;;;;;;;;;;11465:241:::0;;:::o;12231:416::-;12365:4;12430:1;12421:11;12386;:19;12398:6;12386:19;;;;;;;;;;;;;;;:31;12406:10;12386:31;;;;;;;;;;;;;;;;:46;12382:200;;12483:87;12537:6;12483:87;;;;;;;;;;;;;;;;;:11;:19;12495:6;12483:19;;;;;;;;;;;;;;;:31;12503:10;12483:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;12449:11;:19;12461:6;12449:19;;;;;;;;;;;;;;;:31;12469:10;12449:31;;;;;;;;;;;;;;;:121;;;;12382:200;12599:40;12613:6;12621:9;12632:6;12599:13;:40::i;:::-;12592:47;;12231:416;;;;;:::o;8794:142::-;8847:7;8874:54;8912:15;8922:4;;;;;;;;;;;8912:9;:15::i;:::-;8874:33;8891:15;8901:4;;;;;;;;;;;8891:9;:15::i;:::-;8874:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;8867:61;;8794:142;:::o;5004:103::-;5059:4;5094:5;;;;;;;;;;;5083:16;;:7;:16;;;5076:23;;5004:103;;;:::o;8482:94::-;8534:5;5806:2;8552:16;;8482:94;:::o;11714:309::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11904:14:::1;11880:21;;:38;;;;;;;;;;;;;;;;;;11945:16;11929:13;:32;;;;12000:15;11972:25;;:43;;;;;;;;;;;;;;;;;;11714:309:::0;;;:::o;6352:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;6198:33::-;;;;;;;;;;;;;:::o;7138:40::-;;;;;;;;;;;;;:::o;9523:116::-;9578:4;9602:29;9610:7;9628:1;9619:11;9602:7;:29::i;:::-;9595:36;;9523:116;;;:::o;10979:478::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11178:9:::1;11163:12;:24;;;;11214:15;11199:12;:30;;;;11257:15;11240:14;:32;;;;11293:10;11283:7;:20;;;;11327:30;11344:12;;11327;;:16;;:30;;;;:::i;:::-;11316:8;:41;;;;11387:2;11376:8;;:13;11368:22;;;::::0;::::1;;11421:28;11434:14;;11421:8;;:12;;:28;;;;:::i;:::-;11401:17;:48;;;;10979:478:::0;;;;:::o;10482:152::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10620:6:::1;10595:14;:22;10610:6;10595:22;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10482:152:::0;;:::o;6701:33::-;;;;:::o;6662:31::-;;;;:::o;8944:119::-;9010:7;9037:9;:18;9047:7;9037:18;;;;;;;;;;;;;;;;9030:25;;8944:119;;;:::o;6898:30::-;;;;;;;;;;;;;:::o;6076:54::-;;;;:::o;9936:105::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10025:8:::1;10012:10;:21;;;;9936:105:::0;:::o;6137:52::-;;;;:::o;6402:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;8694:92::-;8746:7;8773:5;;;;;;;;;;;8766:12;;8694:92;:::o;6509:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;8376:98::-;8426:13;8459:7;;;;;;;;;;;;;;;;;8452:14;;8376:98;:::o;6624:31::-;;;;:::o;10166:146::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10298:6:::1;10276:11;:19;10288:6;10276:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10166:146:::0;;:::o;6968:19::-;;;;;;;;;;;;;:::o;12035:188::-;12142:4;12171:44;12185:10;12197:9;12208:6;12171:13;:44::i;:::-;12164:51;;12035:188;;;;:::o;4677:94::-;4375:19;4383:10;4375:7;:19::i;:::-;4367:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4759:4:::1;4737:14:::0;:19:::1;4752:3;4737:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4677:94:::0;:::o;6996:25::-;;;;:::o;6455:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;6564:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;6855:36::-;;;;;;;;;;;;;:::o;6810:::-;;;;:::o;10320:154::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10460:6:::1;10434:15;:23;10450:6;10434:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10320:154:::0;;:::o;10804:162::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10952:6:::1;10922:19;:27;10942:6;10922:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;10804:162:::0;;:::o;9825:103::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9912:8:::1;9897:12;:23;;;;9825:103:::0;:::o;7185:45::-;;;;;;;;;;;;;:::o;9071:188::-;9191:7;9223:11;:19;9235:6;9223:19;;;;;;;;;;;;;;;:28;9243:7;9223:28;;;;;;;;;;;;;;;;9216:35;;9071:188;;;;:::o;10049:109::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10142:8:::1;10125:14;;:25;;;;;;;;;;;;;;;;;;10049:109:::0;:::o;4847:97::-;4375:19;4383:10;4375:7;:19::i;:::-;4367:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4931:5:::1;4909:14;:19;4924:3;4909:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4847:97:::0;:::o;5404:173::-;4375:19;4383:10;4375:7;:19::i;:::-;4367:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5488:3:::1;5480:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;5524:4;5502:14:::0;:19:::1;5517:3;5502:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;5544:25;5565:3;5544:25;;;;;;:::i;:::-;;;;;;;;5404:173:::0;:::o;6937:24::-;;;;;;;;;;;;;:::o;10642:154::-;4553:24;4566:10;4553:12;:24::i;:::-;4545:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10782:6:::1;10756:15;:23;10772:6;10756:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10642:154:::0;;:::o;6741:26::-;;;;:::o;5178:107::-;5234:4;5258:14;:19;5273:3;5258:19;;;;;;;;;;;;;;;;;;;;;;;;;5251:26;;5178:107;;;:::o;83:179::-;141:7;161:9;177:1;173;:5;;;;:::i;:::-;161:17;;202:1;197;:6;;189:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;253:1;246:8;;;83:179;;;;:::o;414:224::-;534:7;567:1;562;:6;;570:12;554:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;594:9;610:1;606;:5;;;;:::i;:::-;594:17;;629:1;622:8;;;414:224;;;;;:::o;12655:1764::-;12781:4;12802:16;;;;;;;;;;;12798:97;;;12842:41;12857:6;12865:9;12876:6;12842:14;:41::i;:::-;12835:48;;;;12798:97;12912:14;:22;12927:6;12912:22;;;;;;;;;;;;;;;;;;;;;;;;;12911:23;:53;;;;;12939:14;:25;12954:9;12939:25;;;;;;;;;;;;;;;;;;;;;;;;;12938:26;12911:53;12907:132;;;12989:13;;;;;;;;;;;12981:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12907:132;13083:12;;13073:6;:22;;:49;;;;13099:15;:23;13115:6;13099:23;;;;;;;;;;;;;;;;;;;;;;;;;13073:49;13051:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;13212:4;;;;;;;;;;;13198:18;;:10;:18;;;;:52;;;;;13234:16;;;;;;;;;;;13233:17;13198:52;:90;;;;;13267:21;;;;;;;;;;;13198:90;:148;;;;;13333:13;;13305:9;:24;13323:4;13305:24;;;;;;;;;;;;;;;;:41;;13198:148;13180:215;;;13373:10;:8;:10::i;:::-;13180:215;13412:10;:8;:10::i;:::-;13411:11;:32;;;;;13439:4;;;;;;;;;;;13426:17;;:9;:17;;;13411:32;13407:118;;;13488:1;13468:9;:17;13478:6;13468:17;;;;;;;;;;;;;;;;:21;13460:30;;;;;;13505:8;:6;:8::i;:::-;13407:118;13584:90;13620:6;13584:90;;;;;;;;;;;;;;;;;:9;:17;13594:6;13584:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;13564:9;:17;13574:6;13564:17;;;;;;;;;;;;;;;:110;;;;13692:19;:30;13712:9;13692:30;;;;;;;;;;;;;;;;;;;;;;;;;13687:119;;13783:10;;13747:32;13772:6;13747:9;:20;13757:9;13747:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;13739:55;;;;;;13687:119;13818:18;13867:9;13859:17;;:4;;;;;;;;;;;:17;;;:44;;;;;13880:15;:23;13896:6;13880:23;;;;;;;;;;;;;;;;;;;;;;;;;13859:44;13855:97;;;13936:4;13920:20;;13855:97;13974:6;13966:14;;:4;;;;;;;;;;;:14;;;:43;;;;;13984:14;:25;13999:9;13984:25;;;;;;;;;;;;;;;;;;;;;;;;;13966:43;13962:96;;;14042:4;14026:20;;13962:96;14070:19;14093:11;:19;14105:6;14093:19;;;;;;;;;;;;;;;;;;;;;;;;;14092:20;:60;;;;;14130:11;:22;14142:9;14130:22;;;;;;;;;;;;;;;;;;;;;;;;;14129:23;14092:60;:91;;;;;14170:13;14169:14;14092:91;:163;;14249:6;14092:163;;;14199:34;14207:6;14215:9;14226:6;14199:7;:34::i;:::-;14092:163;14070:185;;14291:37;14316:11;14291:9;:20;14301:9;14291:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14268:9;:20;14278:9;14268:20;;;;;;;;;;;;;;;:60;;;;14366:9;14349:40;;14358:6;14349:40;;;14377:11;14349:40;;;;;;:::i;:::-;;;;;;;;14407:4;14400:11;;;;12655:1764;;;;;;:::o;270:136::-;328:7;355:43;359:1;362;355:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;348:50;;270:136;;;;:::o;14427:401::-;14554:4;14591:90;14627:6;14591:90;;;;;;;;;;;;;;;;;:9;:17;14601:6;14591:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;14571:9;:17;14581:6;14571:17;;;;;;;;;;;;;;;:110;;;;14715:32;14740:6;14715:9;:20;14725:9;14715:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14692:9;:20;14702:9;14692:20;;;;;;;;;;;;;;;:55;;;;14780:9;14763:35;;14772:6;14763:35;;;14791:6;14763:35;;;;;;:::i;:::-;;;;;;;;14816:4;14809:11;;14427:401;;;;;:::o;15812:1572::-;7357:4;7338:16;;:23;;;;;;;;;;;;;;;;;;15864::::1;15890:9;:24;15908:4;15890:24;;;;;;;;;;;;;;;;15864:50;;15925:23;15951:96;16045:1;15951:75;16017:8;;15951:47;15985:12;;15951:15;:33;;:47;;;;:::i;:::-;:65;;:75;;;;:::i;:::-;:93;;:96;;;;:::i;:::-;15925:122;;16058:20;16081:36;16101:15;16081;:19;;:36;;;;:::i;:::-;16058:59;;16130:21;16168:1;16154:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16130:40;;16199:4;16181;16186:1;16181:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16225:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16215:4;16220:1;16215:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16251:6;;;;;;;;;;;:57;;;16323:12;16350:1;16366:4;16393;16413:15;16251:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16452:17;16472:21;16452:41;;16506:19;16528:33;16541:19;16558:1;16541:12;;:16;;:19;;;;:::i;:::-;16528:8;;:12;;:33;;;;:::i;:::-;16506:55;;16574:26;16603:93;16694:1;16603:72;16663:11;16603:41;16631:12;;16603:9;:27;;:41;;;;:::i;:::-;:59;;:72;;;;:::i;:::-;:90;;:93;;;;:::i;:::-;16574:122;;16717:26;16746:33;16760:18;16746:9;:13;;:33;;;;:::i;:::-;16717:62;;16799:15;16828;;;;;;;;;;;16820:29;;16871:18;16909:5;16820:109;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16798:131;;;16995:5;16982:18;;17035:1;17017:15;:19;17013:364;;;17053:6;;;;;;;;;;;:22;;;17083:18;17129:4;17153:15;17187:1;17207::::0;17227:21:::1;;;;;;;;;;;17267:15;17053:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17317:48;17329:18;17349:15;17317:48;;;;;;;:::i;:::-;;;;;;;;17013:364;15853:1531;;;;;;;;;7403:5:::0;7384:16;;:24;;;;;;;;;;;;;;;;;;15812:1572::o;9648:90::-;9691:4;9729:1;9715:10;;:15;;9708:22;;9648:90;:::o;9746:71::-;9797:12;9784:10;:25;;;;9746:71::o;14836:860::-;14956:7;14976:21;15008:9;15000:17;;:4;;;;;;;;;;;:17;;;:74;;15066:8;;15000:74;;;15033:17;;15000:74;14976:98;;15090:15;:26;15106:9;15090:26;;;;;;;;;;;;;;;;;;;;;;;;;15089:27;:45;;;;;15120:14;;;;;;;;;;;15089:45;15085:96;;;15167:2;15151:18;;15085:96;15191:17;15211:34;15241:3;15211:25;15222:13;15211:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;15191:54;;15256:18;15277:28;15301:3;15277:19;15288:7;;15277:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15256:49;;15345:39;15374:9;15345;:24;15363:4;15345:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15318:9;:24;15336:4;15318:24;;;;;;;;;;;;;;;:66;;;;15425:4;15400:42;;15409:6;15400:42;;;15432:9;15400:42;;;;;;:::i;:::-;;;;;;;;15469:1;15459:7;;:11;:30;;;;;15475:14;;;;;;;;;;;15474:15;15459:30;15455:193;;;15533:40;15562:10;15533:9;:24;15551:4;;;;;;;;;;;15533:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;15506:9;:24;15524:4;;;;;;;;;;;15506:24;;;;;;;;;;;;;;;:67;;;;15618:4;;;;;;;;;;;15593:43;;15602:6;15593:43;;;15625:10;15593:43;;;;;;:::i;:::-;;;;;;;;15455:193;15667:21;15678:9;15667:6;:10;;:21;;;;:::i;:::-;15660:28;;;;;14836:860;;;;;:::o;646:246::-;704:7;733:1;728;:6;724:47;;758:1;751:8;;;;724:47;781:9;797:1;793;:5;;;;:::i;:::-;781:17;;826:1;821;817;:5;;;;:::i;:::-;:10;809:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;883:1;876:8;;;646:246;;;;;:::o;900:132::-;958:7;985:39;989:1;992;985:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;978:46;;900:132;;;;:::o;1040:223::-;1160:7;1192:1;1188;:5;1195:12;1180:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1219:9;1235:1;1231;:5;;;;:::i;:::-;1219:17;;1254:1;1247:8;;;1040:223;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:323::-;4115:6;4164:2;4152:9;4143:7;4139:23;4135:32;4132:119;;;4170:79;;:::i;:::-;4132:119;4290:1;4315:50;4357:7;4348:6;4337:9;4333:22;4315:50;:::i;:::-;4305:60;;4261:114;4059:323;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:329::-;5552:6;5601:2;5589:9;5580:7;5576:23;5572:32;5569:119;;;5607:79;;:::i;:::-;5569:119;5727:1;5752:53;5797:7;5788:6;5777:9;5773:22;5752:53;:::i;:::-;5742:63;;5698:117;5493:329;;;;:::o;5828:86::-;5863:7;5903:4;5896:5;5892:16;5881:27;;5828:86;;;:::o;5920:112::-;6003:22;6019:5;6003:22;:::i;:::-;5998:3;5991:35;5920:112;;:::o;6038:214::-;6127:4;6165:2;6154:9;6150:18;6142:26;;6178:67;6242:1;6231:9;6227:17;6218:6;6178:67;:::i;:::-;6038:214;;;;:::o;6258:607::-;6329:6;6337;6345;6394:2;6382:9;6373:7;6369:23;6365:32;6362:119;;;6400:79;;:::i;:::-;6362:119;6520:1;6545:50;6587:7;6578:6;6567:9;6563:22;6545:50;:::i;:::-;6535:60;;6491:114;6644:2;6670:53;6715:7;6706:6;6695:9;6691:22;6670:53;:::i;:::-;6660:63;;6615:118;6772:2;6798:50;6840:7;6831:6;6820:9;6816:22;6798:50;:::i;:::-;6788:60;;6743:115;6258:607;;;;;:::o;6871:765::-;6957:6;6965;6973;6981;7030:3;7018:9;7009:7;7005:23;7001:33;6998:120;;;7037:79;;:::i;:::-;6998:120;7157:1;7182:53;7227:7;7218:6;7207:9;7203:22;7182:53;:::i;:::-;7172:63;;7128:117;7284:2;7310:53;7355:7;7346:6;7335:9;7331:22;7310:53;:::i;:::-;7300:63;;7255:118;7412:2;7438:53;7483:7;7474:6;7463:9;7459:22;7438:53;:::i;:::-;7428:63;;7383:118;7540:2;7566:53;7611:7;7602:6;7591:9;7587:22;7566:53;:::i;:::-;7556:63;;7511:118;6871:765;;;;;;;:::o;7642:468::-;7707:6;7715;7764:2;7752:9;7743:7;7739:23;7735:32;7732:119;;;7770:79;;:::i;:::-;7732:119;7890:1;7915:53;7960:7;7951:6;7940:9;7936:22;7915:53;:::i;:::-;7905:63;;7861:117;8017:2;8043:50;8085:7;8076:6;8065:9;8061:22;8043:50;:::i;:::-;8033:60;;7988:115;7642:468;;;;;:::o;8116:118::-;8203:24;8221:5;8203:24;:::i;:::-;8198:3;8191:37;8116:118;;:::o;8240:222::-;8333:4;8371:2;8360:9;8356:18;8348:26;;8384:71;8452:1;8441:9;8437:17;8428:6;8384:71;:::i;:::-;8240:222;;;;:::o;8468:329::-;8527:6;8576:2;8564:9;8555:7;8551:23;8547:32;8544:119;;;8582:79;;:::i;:::-;8544:119;8702:1;8727:53;8772:7;8763:6;8752:9;8748:22;8727:53;:::i;:::-;8717:63;;8673:117;8468:329;;;;:::o;8803:104::-;8848:7;8877:24;8895:5;8877:24;:::i;:::-;8866:35;;8803:104;;;:::o;8913:138::-;8994:32;9020:5;8994:32;:::i;:::-;8987:5;8984:43;8974:71;;9041:1;9038;9031:12;8974:71;8913:138;:::o;9057:155::-;9111:5;9149:6;9136:20;9127:29;;9165:41;9200:5;9165:41;:::i;:::-;9057:155;;;;:::o;9218:345::-;9285:6;9334:2;9322:9;9313:7;9309:23;9305:32;9302:119;;;9340:79;;:::i;:::-;9302:119;9460:1;9485:61;9538:7;9529:6;9518:9;9514:22;9485:61;:::i;:::-;9475:71;;9431:125;9218:345;;;;:::o;9569:60::-;9597:3;9618:5;9611:12;;9569:60;;;:::o;9635:142::-;9685:9;9718:53;9736:34;9745:24;9763:5;9745:24;:::i;:::-;9736:34;:::i;:::-;9718:53;:::i;:::-;9705:66;;9635:142;;;:::o;9783:126::-;9833:9;9866:37;9897:5;9866:37;:::i;:::-;9853:50;;9783:126;;;:::o;9915:144::-;9983:9;10016:37;10047:5;10016:37;:::i;:::-;10003:50;;9915:144;;;:::o;10065:167::-;10170:55;10219:5;10170:55;:::i;:::-;10165:3;10158:68;10065:167;;:::o;10238:258::-;10349:4;10387:2;10376:9;10372:18;10364:26;;10400:89;10486:1;10475:9;10471:17;10462:6;10400:89;:::i;:::-;10238:258;;;;:::o;10502:156::-;10642:8;10638:1;10630:6;10626:14;10619:32;10502:156;:::o;10664:365::-;10806:3;10827:66;10891:1;10886:3;10827:66;:::i;:::-;10820:73;;10902:93;10991:3;10902:93;:::i;:::-;11020:2;11015:3;11011:12;11004:19;;10664:365;;;:::o;11035:419::-;11201:4;11239:2;11228:9;11224:18;11216:26;;11288:9;11282:4;11278:20;11274:1;11263:9;11259:17;11252:47;11316:131;11442:4;11316:131;:::i;:::-;11308:139;;11035:419;;;:::o;11460:161::-;11600:13;11596:1;11588:6;11584:14;11577:37;11460:161;:::o;11627:366::-;11769:3;11790:67;11854:2;11849:3;11790:67;:::i;:::-;11783:74;;11866:93;11955:3;11866:93;:::i;:::-;11984:2;11979:3;11975:12;11968:19;;11627:366;;;:::o;11999:419::-;12165:4;12203:2;12192:9;12188:18;12180:26;;12252:9;12246:4;12242:20;12238:1;12227:9;12223:17;12216:47;12280:131;12406:4;12280:131;:::i;:::-;12272:139;;11999:419;;;:::o;12424:134::-;12482:9;12515:37;12546:5;12515:37;:::i;:::-;12502:50;;12424:134;;;:::o;12564:147::-;12659:45;12698:5;12659:45;:::i;:::-;12654:3;12647:58;12564:147;;:::o;12717:238::-;12818:4;12856:2;12845:9;12841:18;12833:26;;12869:79;12945:1;12934:9;12930:17;12921:6;12869:79;:::i;:::-;12717:238;;;;:::o;12961:180::-;13009:77;13006:1;12999:88;13106:4;13103:1;13096:15;13130:4;13127:1;13120:15;13147:191;13187:3;13206:20;13224:1;13206:20;:::i;:::-;13201:25;;13240:20;13258:1;13240:20;:::i;:::-;13235:25;;13283:1;13280;13276:9;13269:16;;13304:3;13301:1;13298:10;13295:36;;;13311:18;;:::i;:::-;13295:36;13147:191;;;;:::o;13344:177::-;13484:29;13480:1;13472:6;13468:14;13461:53;13344:177;:::o;13527:366::-;13669:3;13690:67;13754:2;13749:3;13690:67;:::i;:::-;13683:74;;13766:93;13855:3;13766:93;:::i;:::-;13884:2;13879:3;13875:12;13868:19;;13527:366;;;:::o;13899:419::-;14065:4;14103:2;14092:9;14088:18;14080:26;;14152:9;14146:4;14142:20;14138:1;14127:9;14123:17;14116:47;14180:131;14306:4;14180:131;:::i;:::-;14172:139;;13899:419;;;:::o;14324:194::-;14364:4;14384:20;14402:1;14384:20;:::i;:::-;14379:25;;14418:20;14436:1;14418:20;:::i;:::-;14413:25;;14462:1;14459;14455:9;14447:17;;14486:1;14480:4;14477:11;14474:37;;;14491:18;;:::i;:::-;14474:37;14324:194;;;;:::o;14524:170::-;14664:22;14660:1;14652:6;14648:14;14641:46;14524:170;:::o;14700:366::-;14842:3;14863:67;14927:2;14922:3;14863:67;:::i;:::-;14856:74;;14939:93;15028:3;14939:93;:::i;:::-;15057:2;15052:3;15048:12;15041:19;;14700:366;;;:::o;15072:419::-;15238:4;15276:2;15265:9;15261:18;15253:26;;15325:9;15319:4;15315:20;15311:1;15300:9;15296:17;15289:47;15353:131;15479:4;15353:131;:::i;:::-;15345:139;;15072:419;;;:::o;15497:167::-;15637:19;15633:1;15625:6;15621:14;15614:43;15497:167;:::o;15670:366::-;15812:3;15833:67;15897:2;15892:3;15833:67;:::i;:::-;15826:74;;15909:93;15998:3;15909:93;:::i;:::-;16027:2;16022:3;16018:12;16011:19;;15670:366;;;:::o;16042:419::-;16208:4;16246:2;16235:9;16231:18;16223:26;;16295:9;16289:4;16285:20;16281:1;16270:9;16266:17;16259:47;16323:131;16449:4;16323:131;:::i;:::-;16315:139;;16042:419;;;:::o;16467:180::-;16515:77;16512:1;16505:88;16612:4;16609:1;16602:15;16636:4;16633:1;16626:15;16653:180;16701:77;16698:1;16691:88;16798:4;16795:1;16788:15;16822:4;16819:1;16812:15;16839:143;16896:5;16927:6;16921:13;16912:22;;16943:33;16970:5;16943:33;:::i;:::-;16839:143;;;;:::o;16988:351::-;17058:6;17107:2;17095:9;17086:7;17082:23;17078:32;17075:119;;;17113:79;;:::i;:::-;17075:119;17233:1;17258:64;17314:7;17305:6;17294:9;17290:22;17258:64;:::i;:::-;17248:74;;17204:128;16988:351;;;;:::o;17345:85::-;17390:7;17419:5;17408:16;;17345:85;;;:::o;17436:158::-;17494:9;17527:61;17545:42;17554:32;17580:5;17554:32;:::i;:::-;17545:42;:::i;:::-;17527:61;:::i;:::-;17514:74;;17436:158;;;:::o;17600:147::-;17695:45;17734:5;17695:45;:::i;:::-;17690:3;17683:58;17600:147;;:::o;17753:114::-;17820:6;17854:5;17848:12;17838:22;;17753:114;;;:::o;17873:184::-;17972:11;18006:6;18001:3;17994:19;18046:4;18041:3;18037:14;18022:29;;17873:184;;;;:::o;18063:132::-;18130:4;18153:3;18145:11;;18183:4;18178:3;18174:14;18166:22;;18063:132;;;:::o;18201:108::-;18278:24;18296:5;18278:24;:::i;:::-;18273:3;18266:37;18201:108;;:::o;18315:179::-;18384:10;18405:46;18447:3;18439:6;18405:46;:::i;:::-;18483:4;18478:3;18474:14;18460:28;;18315:179;;;;:::o;18500:113::-;18570:4;18602;18597:3;18593:14;18585:22;;18500:113;;;:::o;18649:732::-;18768:3;18797:54;18845:5;18797:54;:::i;:::-;18867:86;18946:6;18941:3;18867:86;:::i;:::-;18860:93;;18977:56;19027:5;18977:56;:::i;:::-;19056:7;19087:1;19072:284;19097:6;19094:1;19091:13;19072:284;;;19173:6;19167:13;19200:63;19259:3;19244:13;19200:63;:::i;:::-;19193:70;;19286:60;19339:6;19286:60;:::i;:::-;19276:70;;19132:224;19119:1;19116;19112:9;19107:14;;19072:284;;;19076:14;19372:3;19365:10;;18773:608;;;18649:732;;;;:::o;19387:831::-;19650:4;19688:3;19677:9;19673:19;19665:27;;19702:71;19770:1;19759:9;19755:17;19746:6;19702:71;:::i;:::-;19783:80;19859:2;19848:9;19844:18;19835:6;19783:80;:::i;:::-;19910:9;19904:4;19900:20;19895:2;19884:9;19880:18;19873:48;19938:108;20041:4;20032:6;19938:108;:::i;:::-;19930:116;;20056:72;20124:2;20113:9;20109:18;20100:6;20056:72;:::i;:::-;20138:73;20206:3;20195:9;20191:19;20182:6;20138:73;:::i;:::-;19387:831;;;;;;;;:::o;20224:147::-;20325:11;20362:3;20347:18;;20224:147;;;;:::o;20377:114::-;;:::o;20497:398::-;20656:3;20677:83;20758:1;20753:3;20677:83;:::i;:::-;20670:90;;20769:93;20858:3;20769:93;:::i;:::-;20887:1;20882:3;20878:11;20871:18;;20497:398;;;:::o;20901:379::-;21085:3;21107:147;21250:3;21107:147;:::i;:::-;21100:154;;21271:3;21264:10;;20901:379;;;:::o;21286:807::-;21535:4;21573:3;21562:9;21558:19;21550:27;;21587:71;21655:1;21644:9;21640:17;21631:6;21587:71;:::i;:::-;21668:72;21736:2;21725:9;21721:18;21712:6;21668:72;:::i;:::-;21750:80;21826:2;21815:9;21811:18;21802:6;21750:80;:::i;:::-;21840;21916:2;21905:9;21901:18;21892:6;21840:80;:::i;:::-;21930:73;21998:3;21987:9;21983:19;21974:6;21930:73;:::i;:::-;22013;22081:3;22070:9;22066:19;22057:6;22013:73;:::i;:::-;21286:807;;;;;;;;;:::o;22099:143::-;22156:5;22187:6;22181:13;22172:22;;22203:33;22230:5;22203:33;:::i;:::-;22099:143;;;;:::o;22248:663::-;22336:6;22344;22352;22401:2;22389:9;22380:7;22376:23;22372:32;22369:119;;;22407:79;;:::i;:::-;22369:119;22527:1;22552:64;22608:7;22599:6;22588:9;22584:22;22552:64;:::i;:::-;22542:74;;22498:128;22665:2;22691:64;22747:7;22738:6;22727:9;22723:22;22691:64;:::i;:::-;22681:74;;22636:129;22804:2;22830:64;22886:7;22877:6;22866:9;22862:22;22830:64;:::i;:::-;22820:74;;22775:129;22248:663;;;;;:::o;22917:332::-;23038:4;23076:2;23065:9;23061:18;23053:26;;23089:71;23157:1;23146:9;23142:17;23133:6;23089:71;:::i;:::-;23170:72;23238:2;23227:9;23223:18;23214:6;23170:72;:::i;:::-;22917:332;;;;;:::o;23255:410::-;23295:7;23318:20;23336:1;23318:20;:::i;:::-;23313:25;;23352:20;23370:1;23352:20;:::i;:::-;23347:25;;23407:1;23404;23400:9;23429:30;23447:11;23429:30;:::i;:::-;23418:41;;23608:1;23599:7;23595:15;23592:1;23589:22;23569:1;23562:9;23542:83;23519:139;;23638:18;;:::i;:::-;23519:139;23303:362;23255:410;;;;:::o;23671:180::-;23719:77;23716:1;23709:88;23816:4;23813:1;23806:15;23840:4;23837:1;23830:15;23857:185;23897:1;23914:20;23932:1;23914:20;:::i;:::-;23909:25;;23948:20;23966:1;23948:20;:::i;:::-;23943:25;;23987:1;23977:35;;23992:18;;:::i;:::-;23977:35;24034:1;24031;24027:9;24022:14;;23857:185;;;;:::o;24048:220::-;24188:34;24184:1;24176:6;24172:14;24165:58;24257:3;24252:2;24244:6;24240:15;24233:28;24048:220;:::o;24274:366::-;24416:3;24437:67;24501:2;24496:3;24437:67;:::i;:::-;24430:74;;24513:93;24602:3;24513:93;:::i;:::-;24631:2;24626:3;24622:12;24615:19;;24274:366;;;:::o;24646:419::-;24812:4;24850:2;24839:9;24835:18;24827:26;;24899:9;24893:4;24889:20;24885:1;24874:9;24870:17;24863:47;24927:131;25053:4;24927:131;:::i;:::-;24919:139;;24646:419;;;:::o
Swarm Source
ipfs://6e7e213ad8b04069330c0de72db4330561122072a90a8ef63acbcc12c0e6c5b8
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.