ERC-20
Overview
Max Total Supply
100,000,000 PWB
Holders
13
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 Source Code Verified (Exact Match)
Contract Name:
PepeWifBeard
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-17 */ // SPDX-License-Identifier: Unlicensed //Web - https://pepewifbeard.vip/ //TG - https://t.me/PepeWifBeard_ERC20 //X - https://X.com/Pepe_Wif_Beard pragma solidity 0.8.25; interface ERC20 { 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP {} contract PepeWifBeard is Ownable, ERC20 { address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "PepeWifBeard"; string constant _symbol = "PWB"; uint8 constant _decimals = 18; uint256 _totalSupply = 1e8 * 10**_decimals; uint256 public _maxTxAmount = 2e6 * 10**_decimals; uint256 public _maxWalletAmount = 2e6 * 10**_decimals; uint256 public swapThreshold = 5e5 * 10**_decimals; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; uint256 public buyFee = 25; uint256 public sellFee = 25; uint256 private transferFee = 0; uint256 private lastSwap; uint256 private tradingStartTime; address private marketingFeeReceiver; address private developmentFeeReceiver; address private reservesFeeReceiver; struct TaxRatio { uint256 marketing; uint256 development; uint256 reserves; } TaxRatio public taxBreakdown = TaxRatio(100, 0, 0); TaxRatio private taxRatio; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event maxWalletUpdated(uint256 indexed maxWalletAmount); event maxTxUpdated(uint256 indexed maxTxAmount); event maxLimitsRemoved(uint256 indexed maxWalletToken, uint256 indexed maxTxAmount); event exemptFees(address indexed holder, bool indexed exempt); event exemptTxLimit(address indexed holder, bool indexed exempt); event feesUpdated(uint256 indexed buyFee, uint256 indexed sellFee); event feesWalletsUpdated(address indexed marketingFeeReceiver, address indexed devFeeReceiver, address indexed infrastructureFeeReceiver); event swapbackSettingsUpdated(bool indexed enabled, uint256 indexed amount); event tradingEnabled(bool indexed enabled, uint256 indexed startTime , uint256 indexed lastTokenSwap); constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; marketingFeeReceiver = 0xf8FE85954feaf59574FfBf39BBb3b56E859ff68F; developmentFeeReceiver = 0xf8FE85954feaf59574FfBf39BBb3b56E859ff68F; reservesFeeReceiver = 0xf8FE85954feaf59574FfBf39BBb3b56E859ff68F; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[marketingFeeReceiver] = true; isTxLimitExempt[developmentFeeReceiver] = true; isTxLimitExempt[reservesFeeReceiver] = true; isTxLimitExempt[address(this)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} 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 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) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if(currentAllowance != type(uint256).max){ require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _allowances[sender][_msgSender()] = currentAllowance - amount; } } return _transferFrom(sender, recipient, amount); } function setMaxWallet(uint256 maxWalletAmount) external onlyOwner { require(maxWalletAmount >= 1e6, "Max wallet cannot be less than 0.5%."); _maxWalletAmount = maxWalletAmount * 10**_decimals; emit maxWalletUpdated(_maxWalletAmount); } function setMaxTx(uint256 maxTxAmount) external onlyOwner { require(maxTxAmount >= 5e5, "Max tx cannot be less than 0.3%." ); _maxTxAmount = maxTxAmount * 10**_decimals; emit maxTxUpdated(_maxTxAmount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(sender != owner()){ require(TradingOpen,"Trading not open yet"); } if (sender != owner() || (recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient])){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletAmount,"Maximum Wallet size has been reached");} checkTxLimit(sender, amount); if( lastSwap != block.number && _balances[address(this)] >= swapThreshold && swapEnabled && !inSwap && recipient == pair ){ swapBack(); lastSwap = block.number; } uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] += amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "Tx Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 feeAmount = 0; if(recipient == pair) { feeAmount = (amount * sellFee) / 100; } else if(sender == pair) { feeAmount = (amount * buyFee) / 100; }else{ feeAmount = (amount * transferFee) / 100; } _balances[address(this)] += feeAmount; emit Transfer(sender, address(this), feeAmount); uint256 notFeeAmount = amount - feeAmount; return notFeeAmount; } function removeMaxLimits() external onlyOwner { _maxWalletAmount = _totalSupply; _maxTxAmount = _totalSupply; emit maxLimitsRemoved(_maxWalletAmount, _maxTxAmount); } function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool) { require(address(tokenAddress) != address(this), "Cannot withdraw PWB tokens"); if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(msg.sender, tokens); } function startTrading() external onlyOwner { require(!TradingOpen,"Trading already Enabled."); TradingOpen = true; tradingStartTime = block.timestamp; lastSwap = block.number; emit tradingEnabled(TradingOpen, tradingStartTime, lastSwap); } function swapBack() internal swapping { taxRatio = taxBreakdown; uint256 amountToSwap = swapThreshold; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 totalETHFee = address(this).balance; uint256 marketingEthAmount = (totalETHFee * taxRatio.marketing) / 100; uint256 developmentEthAmount = (totalETHFee * taxRatio.development) / 100; uint256 reservesEthAmount = totalETHFee - marketingEthAmount - developmentEthAmount; (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: marketingEthAmount}(""); (tmpSuccess,) = payable(developmentFeeReceiver).call{value: developmentEthAmount}(""); (tmpSuccess,) = payable(reservesFeeReceiver).call{value: reservesEthAmount}(""); tmpSuccess = false; } function exemptAll(address holder, bool exempt) external onlyOwner { require(holder != address(0), "Holder is the zero address"); isFeeExempt[holder] = exempt; isTxLimitExempt[holder] = exempt; emit exemptFees(holder, exempt); } function setTxLimitExempt(address holder, bool exempt) external onlyOwner { require(holder != address(0), "Holder is the zero address"); isTxLimitExempt[holder] = exempt; emit exemptTxLimit(holder, exempt); } function updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner { buyFee = _buyFee; sellFee = _sellFee; emit feesUpdated(buyFee, sellFee); } function updateFeeWallets( address _marketingFeeReceiver, address _developmentFeeReceiver, address _reservesFeeReceiver) external onlyOwner { require(_marketingFeeReceiver != address(0) && _developmentFeeReceiver != address(0) && _reservesFeeReceiver != address(0), "Fee receiver cannot be zero address"); marketingFeeReceiver = _marketingFeeReceiver; developmentFeeReceiver = _developmentFeeReceiver; reservesFeeReceiver = _reservesFeeReceiver; emit feesWalletsUpdated(marketingFeeReceiver, developmentFeeReceiver, reservesFeeReceiver); } function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner { require( _amount <= 5e5 && _amount >= 1e5, "Swap amount can not be more than 0.5% or less than 0.1%"); swapEnabled = _enabled; swapThreshold = _amount * 10**_decimals; emit swapbackSettingsUpdated(_enabled, _amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - balanceOf(DEAD)- balanceOf(ZERO); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"feesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"devFeeReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"infrastructureFeeReceiver","type":"address"}],"name":"feesWalletsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxLimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"maxWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapbackSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"startTime","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"lastTokenSwap","type":"uint256"}],"name":"tradingEnabled","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxBreakdown","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_developmentFeeReceiver","type":"address"},{"internalType":"address","name":"_reservesFeeReceiver","type":"address"}],"name":"updateFeeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a6100129190610b5a565b6305f5e1006100219190610ba4565b6002556012600a6100329190610b5a565b621e84806100409190610ba4565b6003556012600a6100519190610b5a565b621e848061005f9190610ba4565b6004556012600a6100709190610b5a565b6207a12061007e9190610ba4565b6005556019600a556019600b555f600c556040518060600160405280606481526020015f81526020015f81525060125f820151815f0155602082015181600101556040820151816002015550505f601a60146101000a81548160ff0219169083151502179055506001601a60156101000a81548160ff02191690831515021790555034801561010b575f80fd5b505f61011b6109e260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610275573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102999190610c43565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610342573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103669190610c43565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016103c1929190610c7d565b6020604051808303815f875af11580156103dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104019190610c43565b601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555073f8fe85954feaf59574ffbf39bbb3b56e859ff68f600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f8fe85954feaf59574ffbf39bbb3b56e859ff68f60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f8fe85954feaf59574ffbf39bbb3b56e859ff68f60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060025460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040516109d59190610cb3565b60405180910390a3610ccc565b5f33905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610a6b57808604811115610a4757610a466109e9565b5b6001851615610a565780820291505b8081029050610a6485610a16565b9450610a2b565b94509492505050565b5f82610a835760019050610b3e565b81610a90575f9050610b3e565b8160018114610aa65760028114610ab057610adf565b6001915050610b3e565b60ff841115610ac257610ac16109e9565b5b8360020a915084821115610ad957610ad86109e9565b5b50610b3e565b5060208310610133831016604e8410600b8410161715610b145782820a905083811115610b0f57610b0e6109e9565b5b610b3e565b610b218484846001610a22565b92509050818404811115610b3857610b376109e9565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610b6482610b45565b9150610b6f83610b4e565b9250610b9c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610a74565b905092915050565b5f610bae82610b45565b9150610bb983610b45565b9250828202610bc781610b45565b91508282048414831517610bde57610bdd6109e9565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c1282610be9565b9050919050565b610c2281610c08565b8114610c2c575f80fd5b50565b5f81519050610c3d81610c19565b92915050565b5f60208284031215610c5857610c57610be5565b5b5f610c6584828501610c2f565b91505092915050565b610c7781610c08565b82525050565b5f604082019050610c905f830185610c6e565b610c9d6020830184610c6e565b9392505050565b610cad81610b45565b82525050565b5f602082019050610cc65f830184610ca4565b92915050565b613e6480610cd95f395ff3fe608060405260043610610207575f3560e01c806370a0823111610117578063a8aa1b311161009f578063ccf8c0361161006e578063ccf8c03614610726578063dd62ed3e1461074e578063f2fde38b1461078a578063f6a78e17146107b2578063f887ea40146107c85761020e565b8063a8aa1b311461066e578063a9059cbb14610698578063b2bdfa7b146106d4578063bc337182146106fe5761020e565b8063893d20e8116100e6578063893d20e8146105a05780638d7a8ba7146105ca5780638da5cb5b146105f2578063937ebc301461061c57806395d89b41146106445761020e565b806370a08231146104e8578063715018a61461052457806377b54bad1461053a5780637d1db4a5146105765761020e565b80632b112e491161019a5780634706240211610169578063470624021461041a5780635d0044ca146104445780636c0a24eb1461046c5780636db79437146104965780636ddd1713146104be5761020e565b80632b112e49146103705780632b14ca561461039a5780632b6f6a17146103c4578063313ce567146103f05761020e565b8063095ea7b3116101d6578063095ea7b3146102b857806318160ddd146102f457806323b872dd1461031e578063293230b81461035a5761020e565b806304368f65146102125780630445b6671461023a57806306fdde031461026457806308fd3d051461028e5761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b5061023860048036038101906102339190612dd7565b6107f2565b005b348015610245575f80fd5b5061024e610948565b60405161025b9190612e24565b60405180910390f35b34801561026f575f80fd5b5061027861094e565b6040516102859190612ead565b60405180910390f35b348015610299575f80fd5b506102a261098b565b6040516102af9190612edc565b60405180910390f35b3480156102c3575f80fd5b506102de60048036038101906102d99190612f4f565b61099e565b6040516102eb9190612edc565b60405180910390f35b3480156102ff575f80fd5b50610308610a8b565b6040516103159190612e24565b60405180910390f35b348015610329575f80fd5b50610344600480360381019061033f9190612f8d565b610a94565b6040516103519190612edc565b60405180910390f35b348015610365575f80fd5b5061036e610c1e565b005b34801561037b575f80fd5b50610384610d71565b6040516103919190612e24565b60405180910390f35b3480156103a5575f80fd5b506103ae610da2565b6040516103bb9190612e24565b60405180910390f35b3480156103cf575f80fd5b506103d8610da8565b6040516103e793929190612fdd565b60405180910390f35b3480156103fb575f80fd5b50610404610dbf565b604051610411919061302d565b60405180910390f35b348015610425575f80fd5b5061042e610dc7565b60405161043b9190612e24565b60405180910390f35b34801561044f575f80fd5b5061046a60048036038101906104659190613046565b610dcd565b005b348015610477575f80fd5b50610480610ef8565b60405161048d9190612e24565b60405180910390f35b3480156104a1575f80fd5b506104bc60048036038101906104b79190613071565b610efe565b005b3480156104c9575f80fd5b506104d2610fd6565b6040516104df9190612edc565b60405180910390f35b3480156104f3575f80fd5b5061050e600480360381019061050991906130af565b610fe9565b60405161051b9190612e24565b60405180910390f35b34801561052f575f80fd5b5061053861102f565b005b348015610545575f80fd5b50610560600480360381019061055b9190612f4f565b61117d565b60405161056d9190612edc565b60405180910390f35b348015610581575f80fd5b5061058a611385565b6040516105979190612e24565b60405180910390f35b3480156105ab575f80fd5b506105b461138b565b6040516105c191906130e9565b60405180910390f35b3480156105d5575f80fd5b506105f060048036038101906105eb9190613102565b611399565b005b3480156105fd575f80fd5b50610606611539565b60405161061391906130e9565b60405180910390f35b348015610627575f80fd5b50610642600480360381019061063d9190613140565b611560565b005b34801561064f575f80fd5b5061065861186c565b6040516106659190612ead565b60405180910390f35b348015610679575f80fd5b506106826118a9565b60405161068f91906130e9565b60405180910390f35b3480156106a3575f80fd5b506106be60048036038101906106b99190612f4f565b6118ce565b6040516106cb9190612edc565b60405180910390f35b3480156106df575f80fd5b506106e86118e2565b6040516106f591906130e9565b60405180910390f35b348015610709575f80fd5b50610724600480360381019061071f9190613046565b611905565b005b348015610731575f80fd5b5061074c60048036038101906107479190613102565b611a30565b005b348015610759575f80fd5b50610774600480360381019061076f9190613190565b611c24565b6040516107819190612e24565b60405180910390f35b348015610795575f80fd5b506107b060048036038101906107ab91906130af565b611ca6565b005b3480156107bd575f80fd5b506107c6611e63565b005b3480156107d3575f80fd5b506107dc611f3d565b6040516107e99190613229565b60405180910390f35b6107fa611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d9061328c565b60405180910390fd5b6207a120811115801561089c5750620186a08110155b6108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d29061331a565b60405180910390fd5b81601a60156101000a81548160ff0219169083151502179055506012600a6109039190613494565b8161090e91906134de565b600581905550808215157fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd960405160405180910390a35050565b60055481565b60606040518060400160405280600c81526020017f5065706557696642656172640000000000000000000000000000000000000000815250905090565b601a60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a799190612e24565b60405180910390a36001905092915050565b5f600254905090565b5f8060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610adc611f62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c095782811015610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b799061358f565b60405180910390fd5b82810360075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610bcb611f62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610c14858585611f69565b9150509392505050565b610c26611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca99061328c565b60405180910390fd5b601a60149054906101000a900460ff1615610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf9906135f7565b60405180910390fd5b6001601a60146101000a81548160ff02191690831515021790555042600e8190555043600d81905550600d54600e54601a60149054906101000a900460ff1615157f6a88444adba589164a0c0f1f33a72555328570cbb508a11c3213089c63c6378b60405160405180910390a4565b5f610d7b5f610fe9565b610d8661dead610fe9565b600254610d939190613615565b610d9d9190613615565b905090565b600b5481565b6012805f0154908060010154908060020154905083565b5f6012905090565b600a5481565b610dd5611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e589061328c565b60405180910390fd5b620f4240811015610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e906136b8565b60405180910390fd5b6012600a610eb59190613494565b81610ec091906134de565b6004819055506004547ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c3560405160405180910390a250565b60045481565b610f06611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f899061328c565b60405180910390fd5b81600a8190555080600b81905550600b54600a547f3708aaa16bcac28f689a62245e6afcba1ccda04df915fc9f43b0c1a7570d1b5e60405160405180910390a35050565b601a60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611037611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba9061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f611186611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112099061328c565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127790613720565b60405180910390fd5b5f8203611302578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112c091906130e9565b602060405180830381865afa1580156112db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ff9190613752565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161133d92919061377d565b6020604051808303815f875af1158015611359573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137d91906137b8565b905092915050565b60035481565b5f611394611539565b905090565b6113a1611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114249061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114929061382d565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377560405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611568611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115eb9061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561165c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561169457505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca906138bb565b60405180910390fd5b82600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fabe0d5e54c3b508d0c57b7b623c2be48ed55805564807278933d61d0012eec2460405160405180910390a4505050565b60606040518060400160405280600381526020017f5057420000000000000000000000000000000000000000000000000000000000815250905090565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6118da338484611f69565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61190d611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611999576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119909061328c565b60405180910390fd5b6207a1208110156119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d690613923565b60405180910390fd5b6012600a6119ed9190613494565b816119f891906134de565b6003819055506003547f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c504160405160405180910390a250565b611a38611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb9061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b299061382d565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734660405160405180910390a35050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611cae611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d319061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9f906139b1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e6b611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee9061328c565b60405180910390fd5b6002546004819055506002546003819055506003546004547fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa960405160405180910390a3565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f601a60169054906101000a900460ff1615611f9157611f8a848484612566565b905061255f565b611f99611539565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461201b57601a60149054906101000a900460ff1661201a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201190613a19565b60405180910390fd5b5b612023611539565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415806121c857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120c2575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561211b5750601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121745750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121c7575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b1561222b575f6121d784610fe9565b905060045483826121e89190613a37565b1115612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222090613ada565b60405180910390fd5b505b61223584836126f3565b43600d5414158015612286575060055460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b801561229e5750601a60159054906101000a900460ff165b80156122b75750601a60169054906101000a900460ff16155b801561230f5750601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156123245761231c61278d565b43600d819055505b5f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f90613b68565b60405180910390fd5b82810360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612488575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61249c57612497868587612b8b565b61249e565b835b90508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124ec9190613a37565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125509190612e24565b60405180910390a36001925050505b9392505050565b5f8060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156125eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e290613b68565b60405180910390fd5b82810360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461267b9190613a37565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126df9190612e24565b60405180910390a360019150509392505050565b6003548111158061274a575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090613bd0565b60405180910390fd5b5050565b6001601a60166101000a81548160ff021916908315150217905550601260155f820154815f015560018201548160010155600282015481600201559050505f60055490505f600267ffffffffffffffff8111156127ed576127ec613bee565b5b60405190808252806020026020018201604052801561281b5781602001602082028036833780820191505090505b50905030815f8151811061283257612831613c1b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106128a2576128a1613c1b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161293e959493929190613d38565b5f604051808303815f87803b158015612955575f80fd5b505af1158015612967573d5f803e3d5ffd5b505050505f4790505f606460155f01548361298291906134de565b61298c9190613dbd565b90505f6064601560010154846129a291906134de565b6129ac9190613dbd565b90505f8183856129bc9190613615565b6129c69190613615565b90505f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612a0e90613e1a565b5f6040518083038185875af1925050503d805f8114612a48576040519150601f19603f3d011682016040523d82523d5f602084013e612a4d565b606091505b5050905060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612a9690613e1a565b5f6040518083038185875af1925050503d805f8114612ad0576040519150601f19603f3d011682016040523d82523d5f602084013e612ad5565b606091505b50508091505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612b2090613e1a565b5f6040518083038185875af1925050503d805f8114612b5a576040519150601f19603f3d011682016040523d82523d5f602084013e612b5f565b606091505b5050809150505f9050505050505050505f601a60166101000a81548160ff021916908315150217905550565b5f805f9050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c05576064600b5485612bf491906134de565b612bfe9190613dbd565b9050612c98565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612c7a576064600a5485612c6991906134de565b612c739190613dbd565b9050612c97565b6064600c5485612c8a91906134de565b612c949190613dbd565b90505b5b8060065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612ce49190613a37565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d489190612e24565b60405180910390a35f8185612d5d9190613615565b905080925050509392505050565b5f80fd5b5f8115159050919050565b612d8381612d6f565b8114612d8d575f80fd5b50565b5f81359050612d9e81612d7a565b92915050565b5f819050919050565b612db681612da4565b8114612dc0575f80fd5b50565b5f81359050612dd181612dad565b92915050565b5f8060408385031215612ded57612dec612d6b565b5b5f612dfa85828601612d90565b9250506020612e0b85828601612dc3565b9150509250929050565b612e1e81612da4565b82525050565b5f602082019050612e375f830184612e15565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612e7f82612e3d565b612e898185612e47565b9350612e99818560208601612e57565b612ea281612e65565b840191505092915050565b5f6020820190508181035f830152612ec58184612e75565b905092915050565b612ed681612d6f565b82525050565b5f602082019050612eef5f830184612ecd565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f1e82612ef5565b9050919050565b612f2e81612f14565b8114612f38575f80fd5b50565b5f81359050612f4981612f25565b92915050565b5f8060408385031215612f6557612f64612d6b565b5b5f612f7285828601612f3b565b9250506020612f8385828601612dc3565b9150509250929050565b5f805f60608486031215612fa457612fa3612d6b565b5b5f612fb186828701612f3b565b9350506020612fc286828701612f3b565b9250506040612fd386828701612dc3565b9150509250925092565b5f606082019050612ff05f830186612e15565b612ffd6020830185612e15565b61300a6040830184612e15565b949350505050565b5f60ff82169050919050565b61302781613012565b82525050565b5f6020820190506130405f83018461301e565b92915050565b5f6020828403121561305b5761305a612d6b565b5b5f61306884828501612dc3565b91505092915050565b5f806040838503121561308757613086612d6b565b5b5f61309485828601612dc3565b92505060206130a585828601612dc3565b9150509250929050565b5f602082840312156130c4576130c3612d6b565b5b5f6130d184828501612f3b565b91505092915050565b6130e381612f14565b82525050565b5f6020820190506130fc5f8301846130da565b92915050565b5f806040838503121561311857613117612d6b565b5b5f61312585828601612f3b565b925050602061313685828601612d90565b9150509250929050565b5f805f6060848603121561315757613156612d6b565b5b5f61316486828701612f3b565b935050602061317586828701612f3b565b925050604061318686828701612f3b565b9150509250925092565b5f80604083850312156131a6576131a5612d6b565b5b5f6131b385828601612f3b565b92505060206131c485828601612f3b565b9150509250929050565b5f819050919050565b5f6131f16131ec6131e784612ef5565b6131ce565b612ef5565b9050919050565b5f613202826131d7565b9050919050565b5f613213826131f8565b9050919050565b61322381613209565b82525050565b5f60208201905061323c5f83018461321a565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613276602083612e47565b915061328182613242565b602082019050919050565b5f6020820190508181035f8301526132a38161326a565b9050919050565b7f5377617020616d6f756e742063616e206e6f74206265206d6f7265207468616e5f8201527f20302e3525206f72206c657373207468616e20302e3125000000000000000000602082015250565b5f613304603783612e47565b915061330f826132aa565b604082019050919050565b5f6020820190508181035f830152613331816132f8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156133ba5780860481111561339657613395613338565b5b60018516156133a55780820291505b80810290506133b385613365565b945061337a565b94509492505050565b5f826133d2576001905061348d565b816133df575f905061348d565b81600181146133f557600281146133ff5761342e565b600191505061348d565b60ff84111561341157613410613338565b5b8360020a91508482111561342857613427613338565b5b5061348d565b5060208310610133831016604e8410600b84101617156134635782820a90508381111561345e5761345d613338565b5b61348d565b6134708484846001613371565b9250905081840481111561348757613486613338565b5b81810290505b9392505050565b5f61349e82612da4565b91506134a983613012565b92506134d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846133c3565b905092915050565b5f6134e882612da4565b91506134f383612da4565b925082820261350181612da4565b9150828204841483151761351857613517613338565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613579602883612e47565b91506135848261351f565b604082019050919050565b5f6020820190508181035f8301526135a68161356d565b9050919050565b7f54726164696e6720616c726561647920456e61626c65642e00000000000000005f82015250565b5f6135e1601883612e47565b91506135ec826135ad565b602082019050919050565b5f6020820190508181035f83015261360e816135d5565b9050919050565b5f61361f82612da4565b915061362a83612da4565b925082820390508181111561364257613641613338565b5b92915050565b7f4d61782077616c6c65742063616e6e6f74206265206c657373207468616e20305f8201527f2e35252e00000000000000000000000000000000000000000000000000000000602082015250565b5f6136a2602483612e47565b91506136ad82613648565b604082019050919050565b5f6020820190508181035f8301526136cf81613696565b9050919050565b7f43616e6e6f742077697468647261772050574220746f6b656e730000000000005f82015250565b5f61370a601a83612e47565b9150613715826136d6565b602082019050919050565b5f6020820190508181035f830152613737816136fe565b9050919050565b5f8151905061374c81612dad565b92915050565b5f6020828403121561376757613766612d6b565b5b5f6137748482850161373e565b91505092915050565b5f6040820190506137905f8301856130da565b61379d6020830184612e15565b9392505050565b5f815190506137b281612d7a565b92915050565b5f602082840312156137cd576137cc612d6b565b5b5f6137da848285016137a4565b91505092915050565b7f486f6c64657220697320746865207a65726f20616464726573730000000000005f82015250565b5f613817601a83612e47565b9150613822826137e3565b602082019050919050565b5f6020820190508181035f8301526138448161380b565b9050919050565b7f4665652072656365697665722063616e6e6f74206265207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138a5602383612e47565b91506138b08261384b565b604082019050919050565b5f6020820190508181035f8301526138d281613899565b9050919050565b7f4d61782074782063616e6e6f74206265206c657373207468616e20302e33252e5f82015250565b5f61390d602083612e47565b9150613918826138d9565b602082019050919050565b5f6020820190508181035f83015261393a81613901565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61399b602683612e47565b91506139a682613941565b604082019050919050565b5f6020820190508181035f8301526139c88161398f565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613a03601483612e47565b9150613a0e826139cf565b602082019050919050565b5f6020820190508181035f830152613a30816139f7565b9050919050565b5f613a4182612da4565b9150613a4c83612da4565b9250828201905080821115613a6457613a63613338565b5b92915050565b7f4d6178696d756d2057616c6c65742073697a6520686173206265656e207265615f8201527f6368656400000000000000000000000000000000000000000000000000000000602082015250565b5f613ac4602483612e47565b9150613acf82613a6a565b604082019050919050565b5f6020820190508181035f830152613af181613ab8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613b52602683612e47565b9150613b5d82613af8565b604082019050919050565b5f6020820190508181035f830152613b7f81613b46565b9050919050565b7f5478204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613bba601183612e47565b9150613bc582613b86565b602082019050919050565b5f6020820190508181035f830152613be781613bae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613c6b613c66613c6184613c48565b6131ce565b612da4565b9050919050565b613c7b81613c51565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cb381612f14565b82525050565b5f613cc48383613caa565b60208301905092915050565b5f602082019050919050565b5f613ce682613c81565b613cf08185613c8b565b9350613cfb83613c9b565b805f5b83811015613d2b578151613d128882613cb9565b9750613d1d83613cd0565b925050600181019050613cfe565b5085935050505092915050565b5f60a082019050613d4b5f830188612e15565b613d586020830187613c72565b8181036040830152613d6a8186613cdc565b9050613d7960608301856130da565b613d866080830184612e15565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613dc782612da4565b9150613dd283612da4565b925082613de257613de1613d90565b5b828204905092915050565b5f81905092915050565b50565b5f613e055f83613ded565b9150613e1082613df7565b5f82019050919050565b5f613e2482613dfa565b915081905091905056fea26469706673582212202d2da6ffda0696cb597cd775b7717eee543a9abffe2b53a9eeb897179c131d6b64736f6c63430008190033
Deployed Bytecode
0x608060405260043610610207575f3560e01c806370a0823111610117578063a8aa1b311161009f578063ccf8c0361161006e578063ccf8c03614610726578063dd62ed3e1461074e578063f2fde38b1461078a578063f6a78e17146107b2578063f887ea40146107c85761020e565b8063a8aa1b311461066e578063a9059cbb14610698578063b2bdfa7b146106d4578063bc337182146106fe5761020e565b8063893d20e8116100e6578063893d20e8146105a05780638d7a8ba7146105ca5780638da5cb5b146105f2578063937ebc301461061c57806395d89b41146106445761020e565b806370a08231146104e8578063715018a61461052457806377b54bad1461053a5780637d1db4a5146105765761020e565b80632b112e491161019a5780634706240211610169578063470624021461041a5780635d0044ca146104445780636c0a24eb1461046c5780636db79437146104965780636ddd1713146104be5761020e565b80632b112e49146103705780632b14ca561461039a5780632b6f6a17146103c4578063313ce567146103f05761020e565b8063095ea7b3116101d6578063095ea7b3146102b857806318160ddd146102f457806323b872dd1461031e578063293230b81461035a5761020e565b806304368f65146102125780630445b6671461023a57806306fdde031461026457806308fd3d051461028e5761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b5061023860048036038101906102339190612dd7565b6107f2565b005b348015610245575f80fd5b5061024e610948565b60405161025b9190612e24565b60405180910390f35b34801561026f575f80fd5b5061027861094e565b6040516102859190612ead565b60405180910390f35b348015610299575f80fd5b506102a261098b565b6040516102af9190612edc565b60405180910390f35b3480156102c3575f80fd5b506102de60048036038101906102d99190612f4f565b61099e565b6040516102eb9190612edc565b60405180910390f35b3480156102ff575f80fd5b50610308610a8b565b6040516103159190612e24565b60405180910390f35b348015610329575f80fd5b50610344600480360381019061033f9190612f8d565b610a94565b6040516103519190612edc565b60405180910390f35b348015610365575f80fd5b5061036e610c1e565b005b34801561037b575f80fd5b50610384610d71565b6040516103919190612e24565b60405180910390f35b3480156103a5575f80fd5b506103ae610da2565b6040516103bb9190612e24565b60405180910390f35b3480156103cf575f80fd5b506103d8610da8565b6040516103e793929190612fdd565b60405180910390f35b3480156103fb575f80fd5b50610404610dbf565b604051610411919061302d565b60405180910390f35b348015610425575f80fd5b5061042e610dc7565b60405161043b9190612e24565b60405180910390f35b34801561044f575f80fd5b5061046a60048036038101906104659190613046565b610dcd565b005b348015610477575f80fd5b50610480610ef8565b60405161048d9190612e24565b60405180910390f35b3480156104a1575f80fd5b506104bc60048036038101906104b79190613071565b610efe565b005b3480156104c9575f80fd5b506104d2610fd6565b6040516104df9190612edc565b60405180910390f35b3480156104f3575f80fd5b5061050e600480360381019061050991906130af565b610fe9565b60405161051b9190612e24565b60405180910390f35b34801561052f575f80fd5b5061053861102f565b005b348015610545575f80fd5b50610560600480360381019061055b9190612f4f565b61117d565b60405161056d9190612edc565b60405180910390f35b348015610581575f80fd5b5061058a611385565b6040516105979190612e24565b60405180910390f35b3480156105ab575f80fd5b506105b461138b565b6040516105c191906130e9565b60405180910390f35b3480156105d5575f80fd5b506105f060048036038101906105eb9190613102565b611399565b005b3480156105fd575f80fd5b50610606611539565b60405161061391906130e9565b60405180910390f35b348015610627575f80fd5b50610642600480360381019061063d9190613140565b611560565b005b34801561064f575f80fd5b5061065861186c565b6040516106659190612ead565b60405180910390f35b348015610679575f80fd5b506106826118a9565b60405161068f91906130e9565b60405180910390f35b3480156106a3575f80fd5b506106be60048036038101906106b99190612f4f565b6118ce565b6040516106cb9190612edc565b60405180910390f35b3480156106df575f80fd5b506106e86118e2565b6040516106f591906130e9565b60405180910390f35b348015610709575f80fd5b50610724600480360381019061071f9190613046565b611905565b005b348015610731575f80fd5b5061074c60048036038101906107479190613102565b611a30565b005b348015610759575f80fd5b50610774600480360381019061076f9190613190565b611c24565b6040516107819190612e24565b60405180910390f35b348015610795575f80fd5b506107b060048036038101906107ab91906130af565b611ca6565b005b3480156107bd575f80fd5b506107c6611e63565b005b3480156107d3575f80fd5b506107dc611f3d565b6040516107e99190613229565b60405180910390f35b6107fa611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d9061328c565b60405180910390fd5b6207a120811115801561089c5750620186a08110155b6108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d29061331a565b60405180910390fd5b81601a60156101000a81548160ff0219169083151502179055506012600a6109039190613494565b8161090e91906134de565b600581905550808215157fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd960405160405180910390a35050565b60055481565b60606040518060400160405280600c81526020017f5065706557696642656172640000000000000000000000000000000000000000815250905090565b601a60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a799190612e24565b60405180910390a36001905092915050565b5f600254905090565b5f8060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610adc611f62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c095782811015610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b799061358f565b60405180910390fd5b82810360075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610bcb611f62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610c14858585611f69565b9150509392505050565b610c26611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca99061328c565b60405180910390fd5b601a60149054906101000a900460ff1615610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf9906135f7565b60405180910390fd5b6001601a60146101000a81548160ff02191690831515021790555042600e8190555043600d81905550600d54600e54601a60149054906101000a900460ff1615157f6a88444adba589164a0c0f1f33a72555328570cbb508a11c3213089c63c6378b60405160405180910390a4565b5f610d7b5f610fe9565b610d8661dead610fe9565b600254610d939190613615565b610d9d9190613615565b905090565b600b5481565b6012805f0154908060010154908060020154905083565b5f6012905090565b600a5481565b610dd5611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e589061328c565b60405180910390fd5b620f4240811015610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e906136b8565b60405180910390fd5b6012600a610eb59190613494565b81610ec091906134de565b6004819055506004547ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c3560405160405180910390a250565b60045481565b610f06611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f899061328c565b60405180910390fd5b81600a8190555080600b81905550600b54600a547f3708aaa16bcac28f689a62245e6afcba1ccda04df915fc9f43b0c1a7570d1b5e60405160405180910390a35050565b601a60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611037611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba9061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f611186611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112099061328c565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127790613720565b60405180910390fd5b5f8203611302578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112c091906130e9565b602060405180830381865afa1580156112db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ff9190613752565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161133d92919061377d565b6020604051808303815f875af1158015611359573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137d91906137b8565b905092915050565b60035481565b5f611394611539565b905090565b6113a1611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114249061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114929061382d565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377560405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611568611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115eb9061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561165c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561169457505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca906138bb565b60405180910390fd5b82600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fabe0d5e54c3b508d0c57b7b623c2be48ed55805564807278933d61d0012eec2460405160405180910390a4505050565b60606040518060400160405280600381526020017f5057420000000000000000000000000000000000000000000000000000000000815250905090565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6118da338484611f69565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61190d611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611999576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119909061328c565b60405180910390fd5b6207a1208110156119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d690613923565b60405180910390fd5b6012600a6119ed9190613494565b816119f891906134de565b6003819055506003547f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c504160405160405180910390a250565b611a38611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abb9061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b299061382d565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734660405160405180910390a35050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611cae611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d319061328c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9f906139b1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e6b611f62565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee9061328c565b60405180910390fd5b6002546004819055506002546003819055506003546004547fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa960405160405180910390a3565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f601a60169054906101000a900460ff1615611f9157611f8a848484612566565b905061255f565b611f99611539565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461201b57601a60149054906101000a900460ff1661201a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201190613a19565b60405180910390fd5b5b612023611539565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415806121c857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120c2575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561211b5750601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121745750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121c7575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b1561222b575f6121d784610fe9565b905060045483826121e89190613a37565b1115612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222090613ada565b60405180910390fd5b505b61223584836126f3565b43600d5414158015612286575060055460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b801561229e5750601a60159054906101000a900460ff165b80156122b75750601a60169054906101000a900460ff16155b801561230f5750601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156123245761231c61278d565b43600d819055505b5f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f90613b68565b60405180910390fd5b82810360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612488575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61249c57612497868587612b8b565b61249e565b835b90508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124ec9190613a37565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125509190612e24565b60405180910390a36001925050505b9392505050565b5f8060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156125eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e290613b68565b60405180910390fd5b82810360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461267b9190613a37565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126df9190612e24565b60405180910390a360019150509392505050565b6003548111158061274a575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090613bd0565b60405180910390fd5b5050565b6001601a60166101000a81548160ff021916908315150217905550601260155f820154815f015560018201548160010155600282015481600201559050505f60055490505f600267ffffffffffffffff8111156127ed576127ec613bee565b5b60405190808252806020026020018201604052801561281b5781602001602082028036833780820191505090505b50905030815f8151811061283257612831613c1b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106128a2576128a1613c1b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161293e959493929190613d38565b5f604051808303815f87803b158015612955575f80fd5b505af1158015612967573d5f803e3d5ffd5b505050505f4790505f606460155f01548361298291906134de565b61298c9190613dbd565b90505f6064601560010154846129a291906134de565b6129ac9190613dbd565b90505f8183856129bc9190613615565b6129c69190613615565b90505f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612a0e90613e1a565b5f6040518083038185875af1925050503d805f8114612a48576040519150601f19603f3d011682016040523d82523d5f602084013e612a4d565b606091505b5050905060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612a9690613e1a565b5f6040518083038185875af1925050503d805f8114612ad0576040519150601f19603f3d011682016040523d82523d5f602084013e612ad5565b606091505b50508091505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612b2090613e1a565b5f6040518083038185875af1925050503d805f8114612b5a576040519150601f19603f3d011682016040523d82523d5f602084013e612b5f565b606091505b5050809150505f9050505050505050505f601a60166101000a81548160ff021916908315150217905550565b5f805f9050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c05576064600b5485612bf491906134de565b612bfe9190613dbd565b9050612c98565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612c7a576064600a5485612c6991906134de565b612c739190613dbd565b9050612c97565b6064600c5485612c8a91906134de565b612c949190613dbd565b90505b5b8060065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612ce49190613a37565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d489190612e24565b60405180910390a35f8185612d5d9190613615565b905080925050509392505050565b5f80fd5b5f8115159050919050565b612d8381612d6f565b8114612d8d575f80fd5b50565b5f81359050612d9e81612d7a565b92915050565b5f819050919050565b612db681612da4565b8114612dc0575f80fd5b50565b5f81359050612dd181612dad565b92915050565b5f8060408385031215612ded57612dec612d6b565b5b5f612dfa85828601612d90565b9250506020612e0b85828601612dc3565b9150509250929050565b612e1e81612da4565b82525050565b5f602082019050612e375f830184612e15565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612e7f82612e3d565b612e898185612e47565b9350612e99818560208601612e57565b612ea281612e65565b840191505092915050565b5f6020820190508181035f830152612ec58184612e75565b905092915050565b612ed681612d6f565b82525050565b5f602082019050612eef5f830184612ecd565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f1e82612ef5565b9050919050565b612f2e81612f14565b8114612f38575f80fd5b50565b5f81359050612f4981612f25565b92915050565b5f8060408385031215612f6557612f64612d6b565b5b5f612f7285828601612f3b565b9250506020612f8385828601612dc3565b9150509250929050565b5f805f60608486031215612fa457612fa3612d6b565b5b5f612fb186828701612f3b565b9350506020612fc286828701612f3b565b9250506040612fd386828701612dc3565b9150509250925092565b5f606082019050612ff05f830186612e15565b612ffd6020830185612e15565b61300a6040830184612e15565b949350505050565b5f60ff82169050919050565b61302781613012565b82525050565b5f6020820190506130405f83018461301e565b92915050565b5f6020828403121561305b5761305a612d6b565b5b5f61306884828501612dc3565b91505092915050565b5f806040838503121561308757613086612d6b565b5b5f61309485828601612dc3565b92505060206130a585828601612dc3565b9150509250929050565b5f602082840312156130c4576130c3612d6b565b5b5f6130d184828501612f3b565b91505092915050565b6130e381612f14565b82525050565b5f6020820190506130fc5f8301846130da565b92915050565b5f806040838503121561311857613117612d6b565b5b5f61312585828601612f3b565b925050602061313685828601612d90565b9150509250929050565b5f805f6060848603121561315757613156612d6b565b5b5f61316486828701612f3b565b935050602061317586828701612f3b565b925050604061318686828701612f3b565b9150509250925092565b5f80604083850312156131a6576131a5612d6b565b5b5f6131b385828601612f3b565b92505060206131c485828601612f3b565b9150509250929050565b5f819050919050565b5f6131f16131ec6131e784612ef5565b6131ce565b612ef5565b9050919050565b5f613202826131d7565b9050919050565b5f613213826131f8565b9050919050565b61322381613209565b82525050565b5f60208201905061323c5f83018461321a565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613276602083612e47565b915061328182613242565b602082019050919050565b5f6020820190508181035f8301526132a38161326a565b9050919050565b7f5377617020616d6f756e742063616e206e6f74206265206d6f7265207468616e5f8201527f20302e3525206f72206c657373207468616e20302e3125000000000000000000602082015250565b5f613304603783612e47565b915061330f826132aa565b604082019050919050565b5f6020820190508181035f830152613331816132f8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156133ba5780860481111561339657613395613338565b5b60018516156133a55780820291505b80810290506133b385613365565b945061337a565b94509492505050565b5f826133d2576001905061348d565b816133df575f905061348d565b81600181146133f557600281146133ff5761342e565b600191505061348d565b60ff84111561341157613410613338565b5b8360020a91508482111561342857613427613338565b5b5061348d565b5060208310610133831016604e8410600b84101617156134635782820a90508381111561345e5761345d613338565b5b61348d565b6134708484846001613371565b9250905081840481111561348757613486613338565b5b81810290505b9392505050565b5f61349e82612da4565b91506134a983613012565b92506134d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846133c3565b905092915050565b5f6134e882612da4565b91506134f383612da4565b925082820261350181612da4565b9150828204841483151761351857613517613338565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613579602883612e47565b91506135848261351f565b604082019050919050565b5f6020820190508181035f8301526135a68161356d565b9050919050565b7f54726164696e6720616c726561647920456e61626c65642e00000000000000005f82015250565b5f6135e1601883612e47565b91506135ec826135ad565b602082019050919050565b5f6020820190508181035f83015261360e816135d5565b9050919050565b5f61361f82612da4565b915061362a83612da4565b925082820390508181111561364257613641613338565b5b92915050565b7f4d61782077616c6c65742063616e6e6f74206265206c657373207468616e20305f8201527f2e35252e00000000000000000000000000000000000000000000000000000000602082015250565b5f6136a2602483612e47565b91506136ad82613648565b604082019050919050565b5f6020820190508181035f8301526136cf81613696565b9050919050565b7f43616e6e6f742077697468647261772050574220746f6b656e730000000000005f82015250565b5f61370a601a83612e47565b9150613715826136d6565b602082019050919050565b5f6020820190508181035f830152613737816136fe565b9050919050565b5f8151905061374c81612dad565b92915050565b5f6020828403121561376757613766612d6b565b5b5f6137748482850161373e565b91505092915050565b5f6040820190506137905f8301856130da565b61379d6020830184612e15565b9392505050565b5f815190506137b281612d7a565b92915050565b5f602082840312156137cd576137cc612d6b565b5b5f6137da848285016137a4565b91505092915050565b7f486f6c64657220697320746865207a65726f20616464726573730000000000005f82015250565b5f613817601a83612e47565b9150613822826137e3565b602082019050919050565b5f6020820190508181035f8301526138448161380b565b9050919050565b7f4665652072656365697665722063616e6e6f74206265207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138a5602383612e47565b91506138b08261384b565b604082019050919050565b5f6020820190508181035f8301526138d281613899565b9050919050565b7f4d61782074782063616e6e6f74206265206c657373207468616e20302e33252e5f82015250565b5f61390d602083612e47565b9150613918826138d9565b602082019050919050565b5f6020820190508181035f83015261393a81613901565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61399b602683612e47565b91506139a682613941565b604082019050919050565b5f6020820190508181035f8301526139c88161398f565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613a03601483612e47565b9150613a0e826139cf565b602082019050919050565b5f6020820190508181035f830152613a30816139f7565b9050919050565b5f613a4182612da4565b9150613a4c83612da4565b9250828201905080821115613a6457613a63613338565b5b92915050565b7f4d6178696d756d2057616c6c65742073697a6520686173206265656e207265615f8201527f6368656400000000000000000000000000000000000000000000000000000000602082015250565b5f613ac4602483612e47565b9150613acf82613a6a565b604082019050919050565b5f6020820190508181035f830152613af181613ab8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613b52602683612e47565b9150613b5d82613af8565b604082019050919050565b5f6020820190508181035f830152613b7f81613b46565b9050919050565b7f5478204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613bba601183612e47565b9150613bc582613b86565b602082019050919050565b5f6020820190508181035f830152613be781613bae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613c6b613c66613c6184613c48565b6131ce565b612da4565b9050919050565b613c7b81613c51565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cb381612f14565b82525050565b5f613cc48383613caa565b60208301905092915050565b5f602082019050919050565b5f613ce682613c81565b613cf08185613c8b565b9350613cfb83613c9b565b805f5b83811015613d2b578151613d128882613cb9565b9750613d1d83613cd0565b925050600181019050613cfe565b5085935050505092915050565b5f60a082019050613d4b5f830188612e15565b613d586020830187613c72565b8181036040830152613d6a8186613cdc565b9050613d7960608301856130da565b613d866080830184612e15565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613dc782612da4565b9150613dd283612da4565b925082613de257613de1613d90565b5b828204905092915050565b5f81905092915050565b50565b5f613e055f83613ded565b9150613e1082613df7565b5f82019050919050565b5f613e2482613dfa565b915081905091905056fea26469706673582212202d2da6ffda0696cb597cd775b7717eee543a9abffe2b53a9eeb897179c131d6b64736f6c63430008190033
Deployed Bytecode Sourcemap
3703:12180:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15388:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4212:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7387:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5110:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7809:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7117:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8197:522;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12689:289;;;;;;;;;;;;;:::i;:::-;;15743:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4520:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4917:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;7211:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4486:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8727:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4152:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14601:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5154:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7557:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1791:150;;;;;;;;;;;;;:::i;:::-;;12315:364;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4096:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7473:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14353:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1577:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14791:589;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7297:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5078:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8033:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1293:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9009:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14076:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7668:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1949:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12108:199;;;;;;;;;;;;;:::i;:::-;;5008:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15388:343;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15500:3:::1;15489:7;:14;;:32;;;;;15518:3;15507:7;:14;;15489:32;15480:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;15607:8;15593:11;;:22;;;;;;;;;;;;;;;;;;4029:2;15652;:13;;;;:::i;:::-;15642:7;:23;;;;:::i;:::-;15626:13;:39;;;;15715:7;15705:8;15681:42;;;;;;;;;;;;15388:343:::0;;:::o;4212:50::-;;;;:::o;7387:80::-;7435:13;7459:5;;;;;;;;;;;;;;;;;7452:12;;7387:80;:::o;5110:31::-;;;;;;;;;;;;;:::o;7809:216::-;7884:4;7936:6;7901:11;:23;7913:10;7901:23;;;;;;;;;;;;;;;:32;7925:7;7901:32;;;;;;;;;;;;;;;:41;;;;7979:7;7958:37;;7967:10;7958:37;;;7988:6;7958:37;;;;;;:::i;:::-;;;;;;;;8013:4;8006:11;;7809:216;;;;:::o;7117:88::-;7172:7;7190:12;;7183:19;;7117:88;:::o;8197:522::-;8297:4;8314:24;8341:11;:19;8353:6;8341:19;;;;;;;;;;;;;;;:33;8361:12;:10;:12::i;:::-;8341:33;;;;;;;;;;;;;;;;8314:60;;8408:17;8388:16;:37;8385:267;;8469:6;8449:16;:26;;8441:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8619:6;8600:16;:25;8564:11;:19;8576:6;8564:19;;;;;;;;;;;;;;;:33;8584:12;:10;:12::i;:::-;8564:33;;;;;;;;;;;;;;;:61;;;;8385:267;8671:40;8685:6;8693:9;8704:6;8671:13;:40::i;:::-;8664:47;;;8197:522;;;;;:::o;12689:289::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12752:11:::1;;;;;;;;;;;12751:12;12743:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12816:4;12802:11;;:18;;;;;;;;;;;;;;;;;;12850:15;12831:16;:34;;;;12887:12;12876:8;:23;;;;12961:8;;12943:16;;12930:11;;;;;;;;;;;12915:55;;;;;;;;;;;;12689:289::o:0;15743:135::-;15796:7;15855:15;3868:42;15855:9;:15::i;:::-;15838;3795:42;15838:9;:15::i;:::-;15823:12;;:30;;;;:::i;:::-;:47;;;;:::i;:::-;15816:54;;15743:135;:::o;4520:28::-;;;;:::o;4917:50::-;;;;;;;;;;;;;;;;;;;:::o;7211:80::-;7263:5;4029:2;7272:16;;7211:80;:::o;4486:27::-;;;;:::o;8727:274::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8831:3:::1;8812:15;:22;;8804:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4029:2;8923;:13;;;;:::i;:::-;8905:15;:31;;;;:::i;:::-;8886:16;:50;;;;8969:16;;8952:34;;;;;;;;;;8727:274:::0;:::o;4152:53::-;;;;:::o;14601:182::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14695:7:::1;14686:6;:16;;;;14723:8;14713:7;:18;;;;14767:7;;14759:6;;14747:28;;;;;;;;;;14601:182:::0;;:::o;5154:30::-;;;;;;;;;;;;;:::o;7557:105::-;7623:7;7641:9;:18;7651:7;7641:18;;;;;;;;;;;;;;;;7634:25;;7557:105;;;:::o;1791:150::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1900:1:::1;1863:40;;1884:6;::::0;::::1;;;;;;;;1863:40;;;;;;;;;;;;1931:1;1914:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1791:150::o:0;12315:364::-;12406:4;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12464:4:::1;12431:38;;12439:12;12431:38;;::::0;12423:77:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12524:1;12514:6;:11:::0;12511:95:::1;;12556:12;12550:29;;;12588:4;12550:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12541:53;;12511:95;12629:12;12623:28;;;12652:10;12664:6;12623:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12616:55;;12315:364:::0;;;;:::o;4096:49::-;;;;:::o;7473:78::-;7525:7;7542;:5;:7::i;:::-;7535:14;;7473:78;:::o;14353:240::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14464:1:::1;14446:20;;:6;:20;;::::0;14438:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14534:6;14508:15;:23;14524:6;14508:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14578:6;14556:29;;14570:6;14556:29;;;;;;;;;;;;14353:240:::0;;:::o;1577:79::-;1615:7;1642:6;;;;;;;;;;;1635:13;;1577:79;:::o;14791:589::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14983:1:::1;14950:35;;:21;:35;;;;:76;;;;;15024:1;14989:37;;:23;:37;;;;14950:76;:114;;;;;15062:1;15030:34;;:20;:34;;;;14950:114;14942:162;;;;;;;;;;;;:::i;:::-;;;;;;;;;15138:21;15115:20;;:44;;;;;;;;;;;;;;;;;;15195:23;15170:22;;:48;;;;;;;;;;;;;;;;;;15251:20;15229:19;;:42;;;;;;;;;;;;;;;;;;15352:19;;;;;;;;;;;15287:85;;15328:22;;;;;;;;;;;15287:85;;15306:20;;;;;;;;;;;15287:85;;;;;;;;;;;;14791:589:::0;;;:::o;7297:84::-;7347:13;7371:7;;;;;;;;;;;;;;;;;7364:14;;7297:84;:::o;5078:19::-;;;;;;;;;;;;;:::o;8033:156::-;8113:4;8137:44;8151:10;8163:9;8174:6;8137:13;:44::i;:::-;8130:51;;8033:156;;;;:::o;1293:21::-;;;;;;;;;;;;:::o;9009:237::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9101:3:::1;9086:11;:18;;9078:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4029:2;9183;:13;;;;:::i;:::-;9169:11;:27;;;;:::i;:::-;9154:12;:42;;;;9225:12;;9212:26;;;;;;;;;;9009:237:::0;:::o;14076:269::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14180:1:::1;14162:20;;:6;:20;;::::0;14154:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14246:6;14224:11;:19;14236:6;14224:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14289:6;14263:15;:23;14279:6;14263:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14330:6;14311:26;;14322:6;14311:26;;;;;;;;;;;;14076:269:::0;;:::o;7668:133::-;7752:7;7770:11;:19;7782:6;7770:19;;;;;;;;;;;;;;;:28;7790:7;7770:28;;;;;;;;;;;;;;;;7763:35;;7668:133;;;;:::o;1949:244::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2058:1:::1;2038:22;;:8;:22;;::::0;2030:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2148:8;2119:38;;2140:6;::::0;::::1;;;;;;;;2119:38;;;;;;;;;;;;2177:8;2168:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1949:244:::0;:::o;12108:199::-;1714:12;:10;:12::i;:::-;1704:22;;:6;;;;;;;;;;:22;;;1696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12185:12:::1;;12166:16;:31;;;;12223:12;;12208;:27;;;;12286:12;;12268:16;;12251:48;;;;;;;;;;12108:199::o:0;5008:24::-;;;;;;;;;;;;;:::o;1136:115::-;1189:15;1232:10;1217:26;;1136:115;:::o;9254:1501::-;9346:4;9368:6;;;;;;;;;;;9365:63;;;9384:41;9399:6;9407:9;9418:6;9384:14;:41::i;:::-;9377:48;;;;9365:63;9453:7;:5;:7::i;:::-;9443:17;;:6;:17;;;9440:104;;9484:11;;;;;;;;;;;9476:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;9440:104;9577:7;:5;:7::i;:::-;9567:17;;:6;:17;;;;:169;;;;9610:4;9589:26;;:9;:26;;;;:57;;;;;3795:42;9620:26;;:9;:26;;;;9589:57;:78;;;;;9663:4;;;;;;;;;;;9650:17;;:9;:17;;;;9589:78;:115;;;;;9684:20;;;;;;;;;;;9671:33;;:9;:33;;;;9589:115;:146;;;;;9709:15;:26;9725:9;9709:26;;;;;;;;;;;;;;;;;;;;;;;;;9708:27;9589:146;9567:169;9563:336;;;9752:18;9773:20;9783:9;9773;:20::i;:::-;9752:41;;9841:16;;9830:6;9817:10;:19;;;;:::i;:::-;9816:41;;9808:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;9737:162;9563:336;9932:28;9945:6;9953;9932:12;:28::i;:::-;10002:12;9990:8;;:24;;:82;;;;;10059:13;;10031:9;:24;10049:4;10031:24;;;;;;;;;;;;;;;;:41;;9990:82;:110;;;;;10089:11;;;;;;;;;;;9990:110;:134;;;;;10118:6;;;;;;;;;;;10117:7;9990:134;:168;;;;;10154:4;;;;;;;;;;;10141:17;;:9;:17;;;9990:168;9973:276;;;10185:10;:8;:10::i;:::-;10221:12;10210:8;:23;;;;9973:276;10269:21;10293:9;:17;10303:6;10293:17;;;;;;;;;;;;;;;;10269:41;;10346:6;10329:13;:23;;10321:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10467:6;10451:13;:22;10431:9;:17;10441:6;10431:17;;;;;;;;;;;;;;;:42;;;;10497:22;10523:11;:19;10535:6;10523:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10546:11;:22;10558:9;10546:22;;;;;;;;;;;;;;;;;;;;;;;;;10523:45;10522:93;;10581:34;10589:6;10597;10605:9;10581:7;:34::i;:::-;10522:93;;;10572:6;10522:93;10497:118;;10650:14;10626:9;:20;10636:9;10626:20;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;10699:9;10682:43;;10691:6;10682:43;;;10710:14;10682:43;;;;;;:::i;:::-;;;;;;;;10743:4;10736:11;;;;9254:1501;;;;;;:::o;10767:447::-;10860:4;10877:21;10901:9;:17;10911:6;10901:17;;;;;;;;;;;;;;;;10877:41;;10954:6;10937:13;:23;;10929:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11075:6;11059:13;:22;11039:9;:17;11049:6;11039:17;;;;;;;;;;;;;;;:42;;;;11127:6;11103:9;:20;11113:9;11103:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11166:9;11149:35;;11158:6;11149:35;;;11177:6;11149:35;;;;;;:::i;:::-;;;;;;;;11202:4;11195:11;;;10767:447;;;;;:::o;11222:166::-;11319:12;;11309:6;:22;;:49;;;;11335:15;:23;11351:6;11335:23;;;;;;;;;;;;;;;;;;;;;;;;;11309:49;11301:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11222:166;;:::o;12986:1082::-;5240:4;5231:6;;:13;;;;;;;;;;;;;;;;;;13046:12:::1;13035:8;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;13071:20;13094:13;;13071:36;;13120:21;13158:1;13144:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13120:40;;13189:4;13171;13176:1;13171:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13215:4;;;;;;;;;;;13205;13210:1;13205:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;13232:6;;;;;;;;;;;:57;;;13304:12;13331:1;13347:4;13374;13394:15;13232:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13433:19;13455:21;13433:43;;13487:26;13553:3;13531:8;:18;;;13517:11;:32;;;;:::i;:::-;13516:40;;;;:::i;:::-;13487:69;;13567:28;13637:3;13613:8;:20;;;13599:11;:34;;;;:::i;:::-;13598:42;;;;:::i;:::-;13567:73;;13651:25;13714:20;13693:18;13679:11;:32;;;;:::i;:::-;:55;;;;:::i;:::-;13651:83;;13748:15;13776:20;;;;;;;;;;;13768:34;;13810:18;13768:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13747:86;;;13868:22;;;;;;;;;;;13860:36;;13904:20;13860:69;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13844:85;;;;;13964:19;;;;;;;;;;;13956:33;;13997:17;13956:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13940:79;;;;;14053:5;14040:18;;13024:1044;;;;;;;5258:5:::0;5249:6;;:14;;;;;;;;;;;;;;;;;;12986:1082::o;11518:582::-;11604:7;11624:17;11644:1;11624:21;;11674:4;;;;;;;;;;;11661:17;;:9;:17;;;11658:243;;11728:3;11717:7;;11708:6;:16;;;;:::i;:::-;11707:24;;;;:::i;:::-;11695:36;;11658:243;;;11762:4;;;;;;;;;;;11752:14;;:6;:14;;;11749:152;;11815:3;11805:6;;11796;:15;;;;:::i;:::-;11795:23;;;;:::i;:::-;11783:35;;11749:152;;;11886:3;11871:11;;11862:6;:20;;;;:::i;:::-;11861:28;;;;:::i;:::-;11849:40;;11749:152;11658:243;11941:9;11913;:24;11931:4;11913:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11991:4;11966:42;;11975:6;11966:42;;;11998:9;11966:42;;;;;;:::i;:::-;;;;;;;;12019:20;12051:9;12042:6;:18;;;;:::i;:::-;12019:41;;12080:12;12073:19;;;;11518:582;;;;;:::o;88:117:1:-;197:1;194;187:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:468::-;1112:6;1120;1169:2;1157:9;1148:7;1144:23;1140:32;1137:119;;;1175:79;;:::i;:::-;1137:119;1295:1;1320:50;1362:7;1353:6;1342:9;1338:22;1320:50;:::i;:::-;1310:60;;1266:114;1419:2;1445:53;1490:7;1481:6;1470:9;1466:22;1445:53;:::i;:::-;1435:63;;1390:118;1047:468;;;;;:::o;1521:118::-;1608:24;1626:5;1608:24;:::i;:::-;1603:3;1596:37;1521:118;;:::o;1645:222::-;1738:4;1776:2;1765:9;1761:18;1753:26;;1789:71;1857:1;1846:9;1842:17;1833:6;1789:71;:::i;:::-;1645:222;;;;:::o;1873:99::-;1925:6;1959:5;1953:12;1943:22;;1873:99;;;:::o;1978:169::-;2062:11;2096:6;2091:3;2084:19;2136:4;2131:3;2127:14;2112:29;;1978:169;;;;:::o;2153:139::-;2242:6;2237:3;2232;2226:23;2283:1;2274:6;2269:3;2265:16;2258:27;2153:139;;;:::o;2298:102::-;2339:6;2390:2;2386:7;2381:2;2374:5;2370:14;2366:28;2356:38;;2298:102;;;:::o;2406:377::-;2494:3;2522:39;2555:5;2522:39;:::i;:::-;2577:71;2641:6;2636:3;2577:71;:::i;:::-;2570:78;;2657:65;2715:6;2710:3;2703:4;2696:5;2692:16;2657:65;:::i;:::-;2747:29;2769:6;2747:29;:::i;:::-;2742:3;2738:39;2731:46;;2498:285;2406:377;;;;:::o;2789:313::-;2902:4;2940:2;2929:9;2925:18;2917:26;;2989:9;2983:4;2979:20;2975:1;2964:9;2960:17;2953:47;3017:78;3090:4;3081:6;3017:78;:::i;:::-;3009:86;;2789:313;;;;:::o;3108:109::-;3189:21;3204:5;3189:21;:::i;:::-;3184:3;3177:34;3108:109;;:::o;3223:210::-;3310:4;3348:2;3337:9;3333:18;3325:26;;3361:65;3423:1;3412:9;3408:17;3399:6;3361:65;:::i;:::-;3223:210;;;;:::o;3439:126::-;3476:7;3516:42;3509:5;3505:54;3494:65;;3439:126;;;:::o;3571:96::-;3608:7;3637:24;3655:5;3637:24;:::i;:::-;3626:35;;3571:96;;;:::o;3673:122::-;3746:24;3764:5;3746:24;:::i;:::-;3739:5;3736:35;3726:63;;3785:1;3782;3775:12;3726:63;3673:122;:::o;3801:139::-;3847:5;3885:6;3872:20;3863:29;;3901:33;3928:5;3901:33;:::i;:::-;3801:139;;;;:::o;3946:474::-;4014:6;4022;4071:2;4059:9;4050:7;4046:23;4042:32;4039:119;;;4077:79;;:::i;:::-;4039:119;4197:1;4222:53;4267:7;4258:6;4247:9;4243:22;4222:53;:::i;:::-;4212:63;;4168:117;4324:2;4350:53;4395:7;4386:6;4375:9;4371:22;4350:53;:::i;:::-;4340:63;;4295:118;3946:474;;;;;:::o;4426:619::-;4503:6;4511;4519;4568:2;4556:9;4547:7;4543:23;4539:32;4536:119;;;4574:79;;:::i;:::-;4536:119;4694:1;4719:53;4764:7;4755:6;4744:9;4740:22;4719:53;:::i;:::-;4709:63;;4665:117;4821:2;4847:53;4892:7;4883:6;4872:9;4868:22;4847:53;:::i;:::-;4837:63;;4792:118;4949:2;4975:53;5020:7;5011:6;5000:9;4996:22;4975:53;:::i;:::-;4965:63;;4920:118;4426:619;;;;;:::o;5051:442::-;5200:4;5238:2;5227:9;5223:18;5215:26;;5251:71;5319:1;5308:9;5304:17;5295:6;5251:71;:::i;:::-;5332:72;5400:2;5389:9;5385:18;5376:6;5332:72;:::i;:::-;5414;5482:2;5471:9;5467:18;5458:6;5414:72;:::i;:::-;5051:442;;;;;;:::o;5499:86::-;5534:7;5574:4;5567:5;5563:16;5552:27;;5499:86;;;:::o;5591:112::-;5674:22;5690:5;5674:22;:::i;:::-;5669:3;5662:35;5591:112;;:::o;5709:214::-;5798:4;5836:2;5825:9;5821:18;5813:26;;5849:67;5913:1;5902:9;5898:17;5889:6;5849:67;:::i;:::-;5709:214;;;;:::o;5929:329::-;5988:6;6037:2;6025:9;6016:7;6012:23;6008:32;6005:119;;;6043:79;;:::i;:::-;6005:119;6163:1;6188:53;6233:7;6224:6;6213:9;6209:22;6188:53;:::i;:::-;6178:63;;6134:117;5929:329;;;;:::o;6264:474::-;6332:6;6340;6389:2;6377:9;6368:7;6364:23;6360:32;6357:119;;;6395:79;;:::i;:::-;6357:119;6515:1;6540:53;6585:7;6576:6;6565:9;6561:22;6540:53;:::i;:::-;6530:63;;6486:117;6642:2;6668:53;6713:7;6704:6;6693:9;6689:22;6668:53;:::i;:::-;6658:63;;6613:118;6264:474;;;;;:::o;6744:329::-;6803:6;6852:2;6840:9;6831:7;6827:23;6823:32;6820:119;;;6858:79;;:::i;:::-;6820:119;6978:1;7003:53;7048:7;7039:6;7028:9;7024:22;7003:53;:::i;:::-;6993:63;;6949:117;6744:329;;;;:::o;7079:118::-;7166:24;7184:5;7166:24;:::i;:::-;7161:3;7154:37;7079:118;;:::o;7203:222::-;7296:4;7334:2;7323:9;7319:18;7311:26;;7347:71;7415:1;7404:9;7400:17;7391:6;7347:71;:::i;:::-;7203:222;;;;:::o;7431:468::-;7496:6;7504;7553:2;7541:9;7532:7;7528:23;7524:32;7521:119;;;7559:79;;:::i;:::-;7521:119;7679:1;7704:53;7749:7;7740:6;7729:9;7725:22;7704:53;:::i;:::-;7694:63;;7650:117;7806:2;7832:50;7874:7;7865:6;7854:9;7850:22;7832:50;:::i;:::-;7822:60;;7777:115;7431:468;;;;;:::o;7905:619::-;7982:6;7990;7998;8047:2;8035:9;8026:7;8022:23;8018:32;8015:119;;;8053:79;;:::i;:::-;8015:119;8173:1;8198:53;8243:7;8234:6;8223:9;8219:22;8198:53;:::i;:::-;8188:63;;8144:117;8300:2;8326:53;8371:7;8362:6;8351:9;8347:22;8326:53;:::i;:::-;8316:63;;8271:118;8428:2;8454:53;8499:7;8490:6;8479:9;8475:22;8454:53;:::i;:::-;8444:63;;8399:118;7905:619;;;;;:::o;8530:474::-;8598:6;8606;8655:2;8643:9;8634:7;8630:23;8626:32;8623:119;;;8661:79;;:::i;:::-;8623:119;8781:1;8806:53;8851:7;8842:6;8831:9;8827:22;8806:53;:::i;:::-;8796:63;;8752:117;8908:2;8934:53;8979:7;8970:6;8959:9;8955:22;8934:53;:::i;:::-;8924:63;;8879:118;8530:474;;;;;:::o;9010:60::-;9038:3;9059:5;9052:12;;9010:60;;;:::o;9076:142::-;9126:9;9159:53;9177:34;9186:24;9204:5;9186:24;:::i;:::-;9177:34;:::i;:::-;9159:53;:::i;:::-;9146:66;;9076:142;;;:::o;9224:126::-;9274:9;9307:37;9338:5;9307:37;:::i;:::-;9294:50;;9224:126;;;:::o;9356:144::-;9424:9;9457:37;9488:5;9457:37;:::i;:::-;9444:50;;9356:144;;;:::o;9506:167::-;9611:55;9660:5;9611:55;:::i;:::-;9606:3;9599:68;9506:167;;:::o;9679:258::-;9790:4;9828:2;9817:9;9813:18;9805:26;;9841:89;9927:1;9916:9;9912:17;9903:6;9841:89;:::i;:::-;9679:258;;;;:::o;9943:182::-;10083:34;10079:1;10071:6;10067:14;10060:58;9943:182;:::o;10131:366::-;10273:3;10294:67;10358:2;10353:3;10294:67;:::i;:::-;10287:74;;10370:93;10459:3;10370:93;:::i;:::-;10488:2;10483:3;10479:12;10472:19;;10131:366;;;:::o;10503:419::-;10669:4;10707:2;10696:9;10692:18;10684:26;;10756:9;10750:4;10746:20;10742:1;10731:9;10727:17;10720:47;10784:131;10910:4;10784:131;:::i;:::-;10776:139;;10503:419;;;:::o;10928:242::-;11068:34;11064:1;11056:6;11052:14;11045:58;11137:25;11132:2;11124:6;11120:15;11113:50;10928:242;:::o;11176:366::-;11318:3;11339:67;11403:2;11398:3;11339:67;:::i;:::-;11332:74;;11415:93;11504:3;11415:93;:::i;:::-;11533:2;11528:3;11524:12;11517:19;;11176:366;;;:::o;11548:419::-;11714:4;11752:2;11741:9;11737:18;11729:26;;11801:9;11795:4;11791:20;11787:1;11776:9;11772:17;11765:47;11829:131;11955:4;11829:131;:::i;:::-;11821:139;;11548:419;;;:::o;11973:180::-;12021:77;12018:1;12011:88;12118:4;12115:1;12108:15;12142:4;12139:1;12132:15;12159:102;12201:8;12248:5;12245:1;12241:13;12220:34;;12159:102;;;:::o;12267:848::-;12328:5;12335:4;12359:6;12350:15;;12383:5;12374:14;;12397:712;12418:1;12408:8;12405:15;12397:712;;;12513:4;12508:3;12504:14;12498:4;12495:24;12492:50;;;12522:18;;:::i;:::-;12492:50;12572:1;12562:8;12558:16;12555:451;;;12987:4;12980:5;12976:16;12967:25;;12555:451;13037:4;13031;13027:15;13019:23;;13067:32;13090:8;13067:32;:::i;:::-;13055:44;;12397:712;;;12267:848;;;;;;;:::o;13121:1073::-;13175:5;13366:8;13356:40;;13387:1;13378:10;;13389:5;;13356:40;13415:4;13405:36;;13432:1;13423:10;;13434:5;;13405:36;13501:4;13549:1;13544:27;;;;13585:1;13580:191;;;;13494:277;;13544:27;13562:1;13553:10;;13564:5;;;13580:191;13625:3;13615:8;13612:17;13609:43;;;13632:18;;:::i;:::-;13609:43;13681:8;13678:1;13674:16;13665:25;;13716:3;13709:5;13706:14;13703:40;;;13723:18;;:::i;:::-;13703:40;13756:5;;;13494:277;;13880:2;13870:8;13867:16;13861:3;13855:4;13852:13;13848:36;13830:2;13820:8;13817:16;13812:2;13806:4;13803:12;13799:35;13783:111;13780:246;;;13936:8;13930:4;13926:19;13917:28;;13971:3;13964:5;13961:14;13958:40;;;13978:18;;:::i;:::-;13958:40;14011:5;;13780:246;14051:42;14089:3;14079:8;14073:4;14070:1;14051:42;:::i;:::-;14036:57;;;;14125:4;14120:3;14116:14;14109:5;14106:25;14103:51;;;14134:18;;:::i;:::-;14103:51;14183:4;14176:5;14172:16;14163:25;;13121:1073;;;;;;:::o;14200:281::-;14258:5;14282:23;14300:4;14282:23;:::i;:::-;14274:31;;14326:25;14342:8;14326:25;:::i;:::-;14314:37;;14370:104;14407:66;14397:8;14391:4;14370:104;:::i;:::-;14361:113;;14200:281;;;;:::o;14487:410::-;14527:7;14550:20;14568:1;14550:20;:::i;:::-;14545:25;;14584:20;14602:1;14584:20;:::i;:::-;14579:25;;14639:1;14636;14632:9;14661:30;14679:11;14661:30;:::i;:::-;14650:41;;14840:1;14831:7;14827:15;14824:1;14821:22;14801:1;14794:9;14774:83;14751:139;;14870:18;;:::i;:::-;14751:139;14535:362;14487:410;;;;:::o;14903:227::-;15043:34;15039:1;15031:6;15027:14;15020:58;15112:10;15107:2;15099:6;15095:15;15088:35;14903:227;:::o;15136:366::-;15278:3;15299:67;15363:2;15358:3;15299:67;:::i;:::-;15292:74;;15375:93;15464:3;15375:93;:::i;:::-;15493:2;15488:3;15484:12;15477:19;;15136:366;;;:::o;15508:419::-;15674:4;15712:2;15701:9;15697:18;15689:26;;15761:9;15755:4;15751:20;15747:1;15736:9;15732:17;15725:47;15789:131;15915:4;15789:131;:::i;:::-;15781:139;;15508:419;;;:::o;15933:174::-;16073:26;16069:1;16061:6;16057:14;16050:50;15933:174;:::o;16113:366::-;16255:3;16276:67;16340:2;16335:3;16276:67;:::i;:::-;16269:74;;16352:93;16441:3;16352:93;:::i;:::-;16470:2;16465:3;16461:12;16454:19;;16113:366;;;:::o;16485:419::-;16651:4;16689:2;16678:9;16674:18;16666:26;;16738:9;16732:4;16728:20;16724:1;16713:9;16709:17;16702:47;16766:131;16892:4;16766:131;:::i;:::-;16758:139;;16485:419;;;:::o;16910:194::-;16950:4;16970:20;16988:1;16970:20;:::i;:::-;16965:25;;17004:20;17022:1;17004:20;:::i;:::-;16999:25;;17048:1;17045;17041:9;17033:17;;17072:1;17066:4;17063:11;17060:37;;;17077:18;;:::i;:::-;17060:37;16910:194;;;;:::o;17110:223::-;17250:34;17246:1;17238:6;17234:14;17227:58;17319:6;17314:2;17306:6;17302:15;17295:31;17110:223;:::o;17339:366::-;17481:3;17502:67;17566:2;17561:3;17502:67;:::i;:::-;17495:74;;17578:93;17667:3;17578:93;:::i;:::-;17696:2;17691:3;17687:12;17680:19;;17339:366;;;:::o;17711:419::-;17877:4;17915:2;17904:9;17900:18;17892:26;;17964:9;17958:4;17954:20;17950:1;17939:9;17935:17;17928:47;17992:131;18118:4;17992:131;:::i;:::-;17984:139;;17711:419;;;:::o;18136:176::-;18276:28;18272:1;18264:6;18260:14;18253:52;18136:176;:::o;18318:366::-;18460:3;18481:67;18545:2;18540:3;18481:67;:::i;:::-;18474:74;;18557:93;18646:3;18557:93;:::i;:::-;18675:2;18670:3;18666:12;18659:19;;18318:366;;;:::o;18690:419::-;18856:4;18894:2;18883:9;18879:18;18871:26;;18943:9;18937:4;18933:20;18929:1;18918:9;18914:17;18907:47;18971:131;19097:4;18971:131;:::i;:::-;18963:139;;18690:419;;;:::o;19115:143::-;19172:5;19203:6;19197:13;19188:22;;19219:33;19246:5;19219:33;:::i;:::-;19115:143;;;;:::o;19264:351::-;19334:6;19383:2;19371:9;19362:7;19358:23;19354:32;19351:119;;;19389:79;;:::i;:::-;19351:119;19509:1;19534:64;19590:7;19581:6;19570:9;19566:22;19534:64;:::i;:::-;19524:74;;19480:128;19264:351;;;;:::o;19621:332::-;19742:4;19780:2;19769:9;19765:18;19757:26;;19793:71;19861:1;19850:9;19846:17;19837:6;19793:71;:::i;:::-;19874:72;19942:2;19931:9;19927:18;19918:6;19874:72;:::i;:::-;19621:332;;;;;:::o;19959:137::-;20013:5;20044:6;20038:13;20029:22;;20060:30;20084:5;20060:30;:::i;:::-;19959:137;;;;:::o;20102:345::-;20169:6;20218:2;20206:9;20197:7;20193:23;20189:32;20186:119;;;20224:79;;:::i;:::-;20186:119;20344:1;20369:61;20422:7;20413:6;20402:9;20398:22;20369:61;:::i;:::-;20359:71;;20315:125;20102:345;;;;:::o;20453:176::-;20593:28;20589:1;20581:6;20577:14;20570:52;20453:176;:::o;20635:366::-;20777:3;20798:67;20862:2;20857:3;20798:67;:::i;:::-;20791:74;;20874:93;20963:3;20874:93;:::i;:::-;20992:2;20987:3;20983:12;20976:19;;20635:366;;;:::o;21007:419::-;21173:4;21211:2;21200:9;21196:18;21188:26;;21260:9;21254:4;21250:20;21246:1;21235:9;21231:17;21224:47;21288:131;21414:4;21288:131;:::i;:::-;21280:139;;21007:419;;;:::o;21432:222::-;21572:34;21568:1;21560:6;21556:14;21549:58;21641:5;21636:2;21628:6;21624:15;21617:30;21432:222;:::o;21660:366::-;21802:3;21823:67;21887:2;21882:3;21823:67;:::i;:::-;21816:74;;21899:93;21988:3;21899:93;:::i;:::-;22017:2;22012:3;22008:12;22001:19;;21660:366;;;:::o;22032:419::-;22198:4;22236:2;22225:9;22221:18;22213:26;;22285:9;22279:4;22275:20;22271:1;22260:9;22256:17;22249:47;22313:131;22439:4;22313:131;:::i;:::-;22305:139;;22032:419;;;:::o;22457:182::-;22597:34;22593:1;22585:6;22581:14;22574:58;22457:182;:::o;22645:366::-;22787:3;22808:67;22872:2;22867:3;22808:67;:::i;:::-;22801:74;;22884:93;22973:3;22884:93;:::i;:::-;23002:2;22997:3;22993:12;22986:19;;22645:366;;;:::o;23017:419::-;23183:4;23221:2;23210:9;23206:18;23198:26;;23270:9;23264:4;23260:20;23256:1;23245:9;23241:17;23234:47;23298:131;23424:4;23298:131;:::i;:::-;23290:139;;23017:419;;;:::o;23442:225::-;23582:34;23578:1;23570:6;23566:14;23559:58;23651:8;23646:2;23638:6;23634:15;23627:33;23442:225;:::o;23673:366::-;23815:3;23836:67;23900:2;23895:3;23836:67;:::i;:::-;23829:74;;23912:93;24001:3;23912:93;:::i;:::-;24030:2;24025:3;24021:12;24014:19;;23673:366;;;:::o;24045:419::-;24211:4;24249:2;24238:9;24234:18;24226:26;;24298:9;24292:4;24288:20;24284:1;24273:9;24269:17;24262:47;24326:131;24452:4;24326:131;:::i;:::-;24318:139;;24045:419;;;:::o;24470:170::-;24610:22;24606:1;24598:6;24594:14;24587:46;24470:170;:::o;24646:366::-;24788:3;24809:67;24873:2;24868:3;24809:67;:::i;:::-;24802:74;;24885:93;24974:3;24885:93;:::i;:::-;25003:2;24998:3;24994:12;24987:19;;24646:366;;;:::o;25018:419::-;25184:4;25222:2;25211:9;25207:18;25199:26;;25271:9;25265:4;25261:20;25257:1;25246:9;25242:17;25235:47;25299:131;25425:4;25299:131;:::i;:::-;25291:139;;25018:419;;;:::o;25443:191::-;25483:3;25502:20;25520:1;25502:20;:::i;:::-;25497:25;;25536:20;25554:1;25536:20;:::i;:::-;25531:25;;25579:1;25576;25572:9;25565:16;;25600:3;25597:1;25594:10;25591:36;;;25607:18;;:::i;:::-;25591:36;25443:191;;;;:::o;25640:223::-;25780:34;25776:1;25768:6;25764:14;25757:58;25849:6;25844:2;25836:6;25832:15;25825:31;25640:223;:::o;25869:366::-;26011:3;26032:67;26096:2;26091:3;26032:67;:::i;:::-;26025:74;;26108:93;26197:3;26108:93;:::i;:::-;26226:2;26221:3;26217:12;26210:19;;25869:366;;;:::o;26241:419::-;26407:4;26445:2;26434:9;26430:18;26422:26;;26494:9;26488:4;26484:20;26480:1;26469:9;26465:17;26458:47;26522:131;26648:4;26522:131;:::i;:::-;26514:139;;26241:419;;;:::o;26666:225::-;26806:34;26802:1;26794:6;26790:14;26783:58;26875:8;26870:2;26862:6;26858:15;26851:33;26666:225;:::o;26897:366::-;27039:3;27060:67;27124:2;27119:3;27060:67;:::i;:::-;27053:74;;27136:93;27225:3;27136:93;:::i;:::-;27254:2;27249:3;27245:12;27238:19;;26897:366;;;:::o;27269:419::-;27435:4;27473:2;27462:9;27458:18;27450:26;;27522:9;27516:4;27512:20;27508:1;27497:9;27493:17;27486:47;27550:131;27676:4;27550:131;:::i;:::-;27542:139;;27269:419;;;:::o;27694:167::-;27834:19;27830:1;27822:6;27818:14;27811:43;27694:167;:::o;27867:366::-;28009:3;28030:67;28094:2;28089:3;28030:67;:::i;:::-;28023:74;;28106:93;28195:3;28106:93;:::i;:::-;28224:2;28219:3;28215:12;28208:19;;27867:366;;;:::o;28239:419::-;28405:4;28443:2;28432:9;28428:18;28420:26;;28492:9;28486:4;28482:20;28478:1;28467:9;28463:17;28456:47;28520:131;28646:4;28520:131;:::i;:::-;28512:139;;28239:419;;;:::o;28664:180::-;28712:77;28709:1;28702:88;28809:4;28806:1;28799:15;28833:4;28830:1;28823:15;28850:180;28898:77;28895:1;28888:88;28995:4;28992:1;28985:15;29019:4;29016:1;29009:15;29036:85;29081:7;29110:5;29099:16;;29036:85;;;:::o;29127:158::-;29185:9;29218:61;29236:42;29245:32;29271:5;29245:32;:::i;:::-;29236:42;:::i;:::-;29218:61;:::i;:::-;29205:74;;29127:158;;;:::o;29291:147::-;29386:45;29425:5;29386:45;:::i;:::-;29381:3;29374:58;29291:147;;:::o;29444:114::-;29511:6;29545:5;29539:12;29529:22;;29444:114;;;:::o;29564:184::-;29663:11;29697:6;29692:3;29685:19;29737:4;29732:3;29728:14;29713:29;;29564:184;;;;:::o;29754:132::-;29821:4;29844:3;29836:11;;29874:4;29869:3;29865:14;29857:22;;29754:132;;;:::o;29892:108::-;29969:24;29987:5;29969:24;:::i;:::-;29964:3;29957:37;29892:108;;:::o;30006:179::-;30075:10;30096:46;30138:3;30130:6;30096:46;:::i;:::-;30174:4;30169:3;30165:14;30151:28;;30006:179;;;;:::o;30191:113::-;30261:4;30293;30288:3;30284:14;30276:22;;30191:113;;;:::o;30340:732::-;30459:3;30488:54;30536:5;30488:54;:::i;:::-;30558:86;30637:6;30632:3;30558:86;:::i;:::-;30551:93;;30668:56;30718:5;30668:56;:::i;:::-;30747:7;30778:1;30763:284;30788:6;30785:1;30782:13;30763:284;;;30864:6;30858:13;30891:63;30950:3;30935:13;30891:63;:::i;:::-;30884:70;;30977:60;31030:6;30977:60;:::i;:::-;30967:70;;30823:224;30810:1;30807;30803:9;30798:14;;30763:284;;;30767:14;31063:3;31056:10;;30464:608;;;30340:732;;;;:::o;31078:831::-;31341:4;31379:3;31368:9;31364:19;31356:27;;31393:71;31461:1;31450:9;31446:17;31437:6;31393:71;:::i;:::-;31474:80;31550:2;31539:9;31535:18;31526:6;31474:80;:::i;:::-;31601:9;31595:4;31591:20;31586:2;31575:9;31571:18;31564:48;31629:108;31732:4;31723:6;31629:108;:::i;:::-;31621:116;;31747:72;31815:2;31804:9;31800:18;31791:6;31747:72;:::i;:::-;31829:73;31897:3;31886:9;31882:19;31873:6;31829:73;:::i;:::-;31078:831;;;;;;;;:::o;31915:180::-;31963:77;31960:1;31953:88;32060:4;32057:1;32050:15;32084:4;32081:1;32074:15;32101:185;32141:1;32158:20;32176:1;32158:20;:::i;:::-;32153:25;;32192:20;32210:1;32192:20;:::i;:::-;32187:25;;32231:1;32221:35;;32236:18;;:::i;:::-;32221:35;32278:1;32275;32271:9;32266:14;;32101:185;;;;:::o;32292:147::-;32393:11;32430:3;32415:18;;32292:147;;;;:::o;32445:114::-;;:::o;32565:398::-;32724:3;32745:83;32826:1;32821:3;32745:83;:::i;:::-;32738:90;;32837:93;32926:3;32837:93;:::i;:::-;32955:1;32950:3;32946:11;32939:18;;32565:398;;;:::o;32969:379::-;33153:3;33175:147;33318:3;33175:147;:::i;:::-;33168:154;;33339:3;33332:10;;32969:379;;;:::o
Swarm Source
ipfs://2d2da6ffda0696cb597cd775b7717eee543a9abffe2b53a9eeb897179c131d6b
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.